[feat] generation times

This commit is contained in:
kwaroran
2023-12-18 08:51:31 +09:00
parent 8ac8e2f7ff
commit 2f66297c3c
7 changed files with 78 additions and 4 deletions

View File

@@ -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})

View 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;
}

View File

@@ -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',