[feat] generation times
This commit is contained in:
@@ -24,6 +24,7 @@ import { getGenerationModelString } from "./models/modelString";
|
||||
import { sendPeerChar } from "../sync/multiuser";
|
||||
import { runInlayScreen } from "./inlayScreen";
|
||||
import { runCharacterJS } from "../plugins/embedscript";
|
||||
import { addRerolls } from "./prereroll";
|
||||
|
||||
export interface OpenAIChat{
|
||||
role: 'system'|'user'|'assistant'|'function'
|
||||
@@ -943,6 +944,7 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
|
||||
const msgs = (req.type === 'success') ? [['char',req.result]] as const
|
||||
: (req.type === 'multiline') ? req.result
|
||||
: []
|
||||
let mrerolls:string[] = []
|
||||
for(let i=0;i<msgs.length;i++){
|
||||
let msg = msgs[i]
|
||||
let mess = msg[1]
|
||||
@@ -976,7 +978,7 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
|
||||
db.characters[selectedChar].chats[selectedChat].message[msgIndex].data = p
|
||||
}
|
||||
}
|
||||
else{
|
||||
else if(i===0){
|
||||
db.characters[selectedChar].chats[selectedChat].message.push({
|
||||
role: msg[0],
|
||||
data: result,
|
||||
@@ -993,11 +995,18 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
|
||||
db.characters[selectedChar].chats[selectedChat].message[ind].data = p
|
||||
}
|
||||
}
|
||||
else{
|
||||
mrerolls.push(result)
|
||||
}
|
||||
db.characters[selectedChar].reloadKeys += 1
|
||||
await sayTTS(currentChar, result)
|
||||
setDatabase(db)
|
||||
}
|
||||
|
||||
if(mrerolls.length > 0){
|
||||
addRerolls(generationId, mrerolls)
|
||||
}
|
||||
|
||||
currentChat = db.characters[selectedChar].chats[selectedChat]
|
||||
|
||||
const triggerResult = await runTrigger(currentChar, 'output', {chat:currentChat})
|
||||
|
||||
29
src/ts/process/prereroll.ts
Normal file
29
src/ts/process/prereroll.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
let rerolls:{[key:string]:string[]} = {};
|
||||
let rerollIndex:{[key:string]:number} = {};
|
||||
|
||||
export function Prereroll(genId:string){
|
||||
if(rerolls[genId]){
|
||||
let index = rerollIndex[genId];
|
||||
index += 1;
|
||||
rerollIndex[genId] = index;
|
||||
return rerolls[genId][index] ?? null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
export function PreUnreroll(genId:string){
|
||||
if(rerolls[genId]){
|
||||
let index = rerollIndex[genId];
|
||||
index -= 1;
|
||||
if(index < 0){
|
||||
return null
|
||||
}
|
||||
rerollIndex[genId] = index;
|
||||
return rerolls[genId][index] ?? null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function addRerolls(genId:string, values:string[]){
|
||||
rerolls[genId] = values;
|
||||
rerollIndex[genId] = 0;
|
||||
}
|
||||
@@ -478,6 +478,11 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
||||
if(risuIdentify){
|
||||
headers["X-Proxy-Risu"] = 'RisuAI'
|
||||
}
|
||||
const multiGen = (db.genTime > 1 && aiModel.startsWith('gpt'))
|
||||
if(multiGen){
|
||||
// @ts-ignore
|
||||
body.n = db.genTime
|
||||
}
|
||||
let throughProxi = (!isTauri) && (!isNodeServer) && (!db.usePlainFetch)
|
||||
if(db.useStreaming && arg.useStreaming){
|
||||
body.stream = true
|
||||
@@ -578,6 +583,15 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
||||
const dat = res.data as any
|
||||
if(res.ok){
|
||||
try {
|
||||
if(multiGen && dat.choices){
|
||||
return {
|
||||
type: 'multiline',
|
||||
result: dat.choices.map((v) => {
|
||||
return ["char",v.message.content]
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
const msg:OpenAIChatFull = (dat.choices[0].message)
|
||||
return {
|
||||
type: 'success',
|
||||
|
||||
Reference in New Issue
Block a user