Add thoughts
This commit is contained in:
@@ -16,7 +16,7 @@ export enum LLMFlags{
|
|||||||
poolSupported,
|
poolSupported,
|
||||||
hasVideoInput,
|
hasVideoInput,
|
||||||
OAICompletionTokens,
|
OAICompletionTokens,
|
||||||
DeveloperRole
|
DeveloperRole,
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum LLMProvider{
|
export enum LLMProvider{
|
||||||
@@ -809,6 +809,16 @@ export const LLMModels: LLMModel[] = [
|
|||||||
tokenizer: LLMTokenizer.GoogleCloud,
|
tokenizer: LLMTokenizer.GoogleCloud,
|
||||||
recommended: true
|
recommended: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Gemini Flash 2.0 Thinking 1219",
|
||||||
|
id: 'gemini-2.0-flash-thinking-exp-1219',
|
||||||
|
provider: LLMProvider.GoogleCloud,
|
||||||
|
format: LLMFormat.GoogleCloud,
|
||||||
|
flags: [LLMFlags.hasImageInput, LLMFlags.hasFirstSystemPrompt, LLMFlags.poolSupported, LLMFlags.hasAudioInput, LLMFlags.hasVideoInput, LLMFlags.hasStreaming],
|
||||||
|
parameters: ['temperature', 'top_k', 'top_p', 'presence_penalty', 'frequency_penalty'],
|
||||||
|
tokenizer: LLMTokenizer.GoogleCloud,
|
||||||
|
recommended: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Gemini Pro 1.5",
|
name: "Gemini Pro 1.5",
|
||||||
id: 'gemini-1.5-pro-latest',
|
id: 'gemini-1.5-pro-latest',
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { getModuleAssets, getModuleLorebooks } from './process/modules';
|
|||||||
import type { OpenAIChat } from './process/index.svelte';
|
import type { OpenAIChat } from './process/index.svelte';
|
||||||
import hljs from 'highlight.js/lib/core'
|
import hljs from 'highlight.js/lib/core'
|
||||||
import 'highlight.js/styles/atom-one-dark.min.css'
|
import 'highlight.js/styles/atom-one-dark.min.css'
|
||||||
|
import { language } from 'src/lang';
|
||||||
|
|
||||||
const markdownItOptions = {
|
const markdownItOptions = {
|
||||||
html: true,
|
html: true,
|
||||||
@@ -495,6 +496,11 @@ export interface simpleCharacterArgument{
|
|||||||
triggerscript?: triggerscript[]
|
triggerscript?: triggerscript[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parseThoughts(data:string){
|
||||||
|
return data.replace(/<Thoughts>(.+)<\/Thoughts>/gms, (full, txt) => {
|
||||||
|
return `<details><summary>${language.cot}</summary>${txt}</details>`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export async function ParseMarkdown(
|
export async function ParseMarkdown(
|
||||||
data:string,
|
data:string,
|
||||||
@@ -506,18 +512,24 @@ export async function ParseMarkdown(
|
|||||||
let firstParsed = ''
|
let firstParsed = ''
|
||||||
const additionalAssetMode = (mode === 'back') ? 'back' : 'normal'
|
const additionalAssetMode = (mode === 'back') ? 'back' : 'normal'
|
||||||
let char = (typeof(charArg) === 'string') ? (findCharacterbyId(charArg)) : (charArg)
|
let char = (typeof(charArg) === 'string') ? (findCharacterbyId(charArg)) : (charArg)
|
||||||
|
|
||||||
if(char && char.type !== 'group'){
|
if(char && char.type !== 'group'){
|
||||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'pre')
|
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'pre')
|
||||||
firstParsed = data
|
firstParsed = data
|
||||||
}
|
}
|
||||||
|
|
||||||
if(char){
|
if(char){
|
||||||
data = (await processScriptFull(char, data, 'editdisplay', chatID, cbsConditions)).data
|
data = (await processScriptFull(char, data, 'editdisplay', chatID, cbsConditions)).data
|
||||||
}
|
}
|
||||||
|
|
||||||
if(firstParsed !== data && char && char.type !== 'group'){
|
if(firstParsed !== data && char && char.type !== 'group'){
|
||||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'post')
|
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'post')
|
||||||
}
|
}
|
||||||
|
|
||||||
data = await parseInlayAssets(data ?? '')
|
data = await parseInlayAssets(data ?? '')
|
||||||
|
|
||||||
|
data = parseThoughts(data)
|
||||||
|
|
||||||
data = encodeStyle(data)
|
data = encodeStyle(data)
|
||||||
if(mode === 'normal'){
|
if(mode === 'normal'){
|
||||||
data = await renderHighlightableMarkdown(data)
|
data = await renderHighlightableMarkdown(data)
|
||||||
|
|||||||
@@ -752,12 +752,7 @@ export async function sendChat(chatProcessIndex = -1,arg:{
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(usingPromptTemplate && DBState.db.promptSettings.maxThoughtTagDepth !== -1){
|
formatedChat = formatedChat.replace(/<Thoughts>(.+?)<\/Thoughts>/gm, '')
|
||||||
const depth = ms.length - index
|
|
||||||
if(depth >= DBState.db.promptSettings.maxThoughtTagDepth){
|
|
||||||
formatedChat = formatedChat.replace(/<Thoughts>(.+?)<\/Thoughts>/gm, '')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const chat:OpenAIChat = {
|
const chat:OpenAIChat = {
|
||||||
role: role,
|
role: role,
|
||||||
|
|||||||
@@ -1665,8 +1665,28 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
|||||||
const data = JSON.parse(reformatted)
|
const data = JSON.parse(reformatted)
|
||||||
|
|
||||||
let r = ''
|
let r = ''
|
||||||
|
let r2 = ''
|
||||||
|
let bump = false
|
||||||
for(const d of data){
|
for(const d of data){
|
||||||
r += d.candidates[0].content.parts[0].text
|
const parts = d.candidates[0].content?.parts
|
||||||
|
for(let i=0;i<parts.length;i++){
|
||||||
|
const part = parts[i]
|
||||||
|
if(i === 1){
|
||||||
|
bump = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!bump){
|
||||||
|
r += part.text
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
r2 += part.text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(data)
|
||||||
|
if(r2){
|
||||||
|
r = `<Thoughts>${r}</Thoughts>\n\n${r2}`
|
||||||
}
|
}
|
||||||
control.enqueue({
|
control.enqueue({
|
||||||
'0': r
|
'0': r
|
||||||
@@ -1697,11 +1717,14 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let fullRes = ''
|
let r = ''
|
||||||
|
let r2 = ''
|
||||||
const processDataItem = (data:any) => {
|
const processDataItem = (data:any) => {
|
||||||
if(data?.candidates?.[0]?.content?.parts?.[0]?.text){
|
if(data?.candidates?.[0]?.content?.parts?.[0]?.text){
|
||||||
fullRes += data.candidates[0].content.parts[0].text
|
r += data.candidates[0].content.parts[0].text
|
||||||
|
}
|
||||||
|
if(data?.candidates?.[0]?.content?.parts?.[1]?.text){
|
||||||
|
r2 += data.candidates[0].content.parts[1].text
|
||||||
}
|
}
|
||||||
else if(data?.errors){
|
else if(data?.errors){
|
||||||
return {
|
return {
|
||||||
@@ -1726,9 +1749,14 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
|||||||
processDataItem(res.data)
|
processDataItem(res.data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(r2){
|
||||||
|
r = `<Thoughts>${r}</Thoughts>\n\n${r2}`
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
result: fullRes
|
result: r
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user