[fix] prompt template and autosuggest
This commit is contained in:
@@ -77,16 +77,14 @@
|
|||||||
|
|
||||||
if($DataBase.subModel === "textgen_webui"){
|
if($DataBase.subModel === "textgen_webui"){
|
||||||
promptbody = [
|
promptbody = [
|
||||||
|
...lastMessages.map(({ role, data }) => ({
|
||||||
|
role: role === "user" ? "user" as const : "assistant" as const,
|
||||||
|
content: data,
|
||||||
|
})),
|
||||||
{
|
{
|
||||||
role: 'system',
|
role: 'system',
|
||||||
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
|
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
|
||||||
},
|
},
|
||||||
{
|
|
||||||
role: 'user',
|
|
||||||
content: lastMessages.map(({ role, data }) => `${
|
|
||||||
role === 'char' ? currentChar.name : $DataBase.username
|
|
||||||
}: ${data}`).join("\n\n") + `\n\n${$DataBase.username}:`
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -383,7 +383,7 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
|
|||||||
let blockingUrl = db.textgenWebUIBlockingURL.replace(/\/api.*/, "/api/v1/generate")
|
let blockingUrl = db.textgenWebUIBlockingURL.replace(/\/api.*/, "/api/v1/generate")
|
||||||
let bodyTemplate:any
|
let bodyTemplate:any
|
||||||
const suggesting = model === "submodel"
|
const suggesting = model === "submodel"
|
||||||
const proompt = stringlizeChatOba(formated, suggesting)
|
const proompt = stringlizeChatOba(formated, currentChar.name, suggesting)
|
||||||
const stopStrings = getStopStrings(suggesting)
|
const stopStrings = getStopStrings(suggesting)
|
||||||
console.log(proompt)
|
console.log(proompt)
|
||||||
console.log(stopStrings)
|
console.log(stopStrings)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ function appendWhitespace(prefix:string, seperator:string=" ") {
|
|||||||
}
|
}
|
||||||
return prefix
|
return prefix
|
||||||
}
|
}
|
||||||
export function stringlizeChatOba(formated:OpenAIChat[], suggesting:boolean=false){
|
export function stringlizeChatOba(formated:OpenAIChat[], characterName:string='', suggesting:boolean=false){
|
||||||
const db = get(DataBase)
|
const db = get(DataBase)
|
||||||
let resultString:string[] = []
|
let resultString:string[] = []
|
||||||
let { header, systemPrefix, userPrefix, assistantPrefix, seperator } = db.ooba.formating;
|
let { header, systemPrefix, userPrefix, assistantPrefix, seperator } = db.ooba.formating;
|
||||||
@@ -45,21 +45,24 @@ export function stringlizeChatOba(formated:OpenAIChat[], suggesting:boolean=fals
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
let prefix = ""
|
let prefix = ""
|
||||||
|
let name = ""
|
||||||
if(form.role === 'user'){
|
if(form.role === 'user'){
|
||||||
prefix = appendWhitespace(userPrefix, seperator)
|
prefix = appendWhitespace(userPrefix, seperator)
|
||||||
|
name = `${db.username}: `
|
||||||
}
|
}
|
||||||
else if(form.role === 'assistant'){
|
else if(form.role === 'assistant'){
|
||||||
prefix = appendWhitespace(assistantPrefix, seperator)
|
prefix = appendWhitespace(assistantPrefix, seperator)
|
||||||
|
name = `${characterName}: `
|
||||||
}
|
}
|
||||||
else if(form.role === 'system'){
|
else if(form.role === 'system'){
|
||||||
prefix = appendWhitespace(systemPrefix, seperator)
|
prefix = appendWhitespace(systemPrefix, seperator)
|
||||||
}
|
}
|
||||||
resultString.push(prefix + form.content)
|
resultString.push(prefix + name + form.content)
|
||||||
}
|
}
|
||||||
if (suggesting){
|
if (suggesting){
|
||||||
resultString.push(appendWhitespace(assistantPrefix, seperator) + "\n" + db.autoSuggestPrefix)
|
resultString.push(appendWhitespace(assistantPrefix, seperator) + "\n" + db.autoSuggestPrefix)
|
||||||
} else {
|
} else {
|
||||||
resultString.push(assistantPrefix)
|
resultString.push(assistantPrefix + `${characterName}:`)
|
||||||
}
|
}
|
||||||
return resultString.join(seperator)
|
return resultString.join(seperator)
|
||||||
}
|
}
|
||||||
@@ -81,6 +84,8 @@ export function getStopStrings(suggesting:boolean=false){
|
|||||||
"<|end",
|
"<|end",
|
||||||
"<|im_end",
|
"<|im_end",
|
||||||
userPrefix,
|
userPrefix,
|
||||||
|
`*${username}'`,
|
||||||
|
`*${username} `,
|
||||||
`\n${username} `,
|
`\n${username} `,
|
||||||
`${username}:`,
|
`${username}:`,
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -28,15 +28,5 @@ Out Examples:
|
|||||||
|
|
||||||
Let's read these guidelines step by step three times to be sure we have accurately adhered to the rules.
|
Let's read these guidelines step by step three times to be sure we have accurately adhered to the rules.
|
||||||
`
|
`
|
||||||
export const defaultAutoSuggestPromptOoba = `Write {{user}}'s next responses that meet the following criteria:
|
export const defaultAutoSuggestPromptOoba = `The responses should be interesting and consistent, rather than dull and repetitive. It should be consistent with the context and as unique as possible. The responses could be what {{char}} expects or does not expect. Write 5 possibilities of {{user}}'s following response per line, each reflecting a different alignment. Each line must be only one independent {{user}}'s response, which starts with a hyphen '-'.`
|
||||||
|
|
||||||
1. The purpose, intention, personality, and tendency must be consistent with the previous conversations.
|
|
||||||
2. It must contain {{user}}'s response only, NOT {{char}}'s.
|
|
||||||
3. The responses should be as diverse as feasible while remaining consistent.
|
|
||||||
4. It could be what {{char}} expects or does NOT expect.
|
|
||||||
5. It should be interesting and creative while NOT being obvious or boring.
|
|
||||||
6. It must make the future development and situation more detailed.
|
|
||||||
|
|
||||||
Write 5 possible {{user}}'s next responses in distinct categories.
|
|
||||||
Write only one {{user}}'s response per line; each line must start with a hyphen '-'.`
|
|
||||||
export const defaultAutoSuggestPrefixOoba = `- "`
|
export const defaultAutoSuggestPrefixOoba = `- "`
|
||||||
|
|||||||
Reference in New Issue
Block a user