Add thoughts
This commit is contained in:
@@ -16,7 +16,7 @@ export enum LLMFlags{
|
||||
poolSupported,
|
||||
hasVideoInput,
|
||||
OAICompletionTokens,
|
||||
DeveloperRole
|
||||
DeveloperRole,
|
||||
}
|
||||
|
||||
export enum LLMProvider{
|
||||
@@ -809,6 +809,16 @@ export const LLMModels: LLMModel[] = [
|
||||
tokenizer: LLMTokenizer.GoogleCloud,
|
||||
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",
|
||||
id: 'gemini-1.5-pro-latest',
|
||||
|
||||
@@ -14,6 +14,7 @@ import { getModuleAssets, getModuleLorebooks } from './process/modules';
|
||||
import type { OpenAIChat } from './process/index.svelte';
|
||||
import hljs from 'highlight.js/lib/core'
|
||||
import 'highlight.js/styles/atom-one-dark.min.css'
|
||||
import { language } from 'src/lang';
|
||||
|
||||
const markdownItOptions = {
|
||||
html: true,
|
||||
@@ -495,6 +496,11 @@ export interface simpleCharacterArgument{
|
||||
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(
|
||||
data:string,
|
||||
@@ -506,18 +512,24 @@ export async function ParseMarkdown(
|
||||
let firstParsed = ''
|
||||
const additionalAssetMode = (mode === 'back') ? 'back' : 'normal'
|
||||
let char = (typeof(charArg) === 'string') ? (findCharacterbyId(charArg)) : (charArg)
|
||||
|
||||
if(char && char.type !== 'group'){
|
||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'pre')
|
||||
firstParsed = data
|
||||
}
|
||||
|
||||
if(char){
|
||||
data = (await processScriptFull(char, data, 'editdisplay', chatID, cbsConditions)).data
|
||||
}
|
||||
|
||||
if(firstParsed !== data && char && char.type !== 'group'){
|
||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'post')
|
||||
}
|
||||
|
||||
data = await parseInlayAssets(data ?? '')
|
||||
|
||||
data = parseThoughts(data)
|
||||
|
||||
data = encodeStyle(data)
|
||||
if(mode === 'normal'){
|
||||
data = await renderHighlightableMarkdown(data)
|
||||
|
||||
@@ -752,12 +752,7 @@ export async function sendChat(chatProcessIndex = -1,arg:{
|
||||
break
|
||||
}
|
||||
}
|
||||
if(usingPromptTemplate && DBState.db.promptSettings.maxThoughtTagDepth !== -1){
|
||||
const depth = ms.length - index
|
||||
if(depth >= DBState.db.promptSettings.maxThoughtTagDepth){
|
||||
formatedChat = formatedChat.replace(/<Thoughts>(.+?)<\/Thoughts>/gm, '')
|
||||
}
|
||||
}
|
||||
formatedChat = formatedChat.replace(/<Thoughts>(.+?)<\/Thoughts>/gm, '')
|
||||
|
||||
const chat:OpenAIChat = {
|
||||
role: role,
|
||||
|
||||
@@ -1665,8 +1665,28 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
||||
const data = JSON.parse(reformatted)
|
||||
|
||||
let r = ''
|
||||
let r2 = ''
|
||||
let bump = false
|
||||
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({
|
||||
'0': r
|
||||
@@ -1697,11 +1717,14 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
||||
}
|
||||
}
|
||||
|
||||
let fullRes = ''
|
||||
|
||||
let r = ''
|
||||
let r2 = ''
|
||||
const processDataItem = (data:any) => {
|
||||
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){
|
||||
return {
|
||||
@@ -1726,9 +1749,14 @@ async function requestGoogleCloudVertex(arg:RequestDataArgumentExtended):Promise
|
||||
processDataItem(res.data)
|
||||
}
|
||||
|
||||
|
||||
if(r2){
|
||||
r = `<Thoughts>${r}</Thoughts>\n\n${r2}`
|
||||
}
|
||||
|
||||
return {
|
||||
type: 'success',
|
||||
result: fullRes
|
||||
result: r
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user