From d4157d3ab688754f4c115854ee2f40da3414f007 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sun, 9 Jul 2023 21:30:53 +0900 Subject: [PATCH] [feat] added ain param --- src/lib/Setting/Pages/BotSettings.svelte | 148 +++++++++++++---------- src/ts/process/request.ts | 28 ++--- src/ts/storage/database.ts | 34 +++++- 3 files changed, 127 insertions(+), 83 deletions(-) diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index d11e8582..d143833b 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -195,72 +195,94 @@ {($DataBase.temperature / 100).toFixed(2)} {#if $DataBase.aiModel === 'textgen_webui'} -Top K - -{($DataBase.ooba.top_k).toFixed(2)} -Top P - -{($DataBase.ooba.top_p).toFixed(2)} -Typical P - -{($DataBase.ooba.typical_p).toFixed(2)} -Top A - -{($DataBase.ooba.top_a).toFixed(2)} -Tail Free Sampling - -{($DataBase.ooba.tfs).toFixed(2)} -Epsilon Cutoff - -{($DataBase.ooba.epsilon_cutoff).toFixed(2)} -Eta Cutoff - -{($DataBase.ooba.eta_cutoff).toFixed(2)} -Number of Beams - -{($DataBase.ooba.num_beams).toFixed(2)} -Length Penalty - -{($DataBase.ooba.length_penalty).toFixed(2)} -Penalty Alpha - -{($DataBase.ooba.penalty_alpha).toFixed(2)} -
- -
-
- -
-
- -
-
- -
-
- -
-{#if $DataBase.ooba.formating.custom} -
- User Prefix - - Assistant Prefix - - Seperator - + Top K + + {($DataBase.ooba.top_k).toFixed(2)} + Top P + + {($DataBase.ooba.top_p).toFixed(2)} + Typical P + + {($DataBase.ooba.typical_p).toFixed(2)} + Top A + + {($DataBase.ooba.top_a).toFixed(2)} + Tail Free Sampling + + {($DataBase.ooba.tfs).toFixed(2)} + Epsilon Cutoff + + {($DataBase.ooba.epsilon_cutoff).toFixed(2)} + Eta Cutoff + + {($DataBase.ooba.eta_cutoff).toFixed(2)} + Number of Beams + + {($DataBase.ooba.num_beams).toFixed(2)} + Length Penalty + + {($DataBase.ooba.length_penalty).toFixed(2)} + Penalty Alpha + + {($DataBase.ooba.penalty_alpha).toFixed(2)} +
+
-{/if} +
+ +
+
+ +
+
+ +
+
+ +
+ {#if $DataBase.ooba.formating.custom} +
+ User Prefix + + Assistant Prefix + + Seperator + +
+ {/if} +{:else if $DataBase.aiModel.startsWith('novellist')} + Top P + + {($DataBase.ainconfig.top_p).toFixed(2)} + Reputation Penalty + + {($DataBase.ainconfig.rep_pen).toFixed(2)} + Reputation Penalty Range + + {($DataBase.ainconfig.rep_pen).toFixed(2)} + Reputation Penalty Slope + + {($DataBase.ainconfig.rep_pen).toFixed(2)} + Top K + + {($DataBase.ainconfig.top_p).toFixed(2)}Typical P + Top A + + {($DataBase.ooba.top_a).toFixed(2)} + Typical P + + {($DataBase.ooba.typical_p).toFixed(2)} {:else} -{language.frequencyPenalty} - -{($DataBase.frequencyPenalty / 100).toFixed(2)} -{language.presensePenalty} - -{($DataBase.PresensePenalty / 100).toFixed(2)} + {language.frequencyPenalty} + + {($DataBase.frequencyPenalty / 100).toFixed(2)} + {language.presensePenalty} + + {($DataBase.PresensePenalty / 100).toFixed(2)} -{language.autoSuggest} - -{tokens.autoSuggest} {language.tokens} + {language.autoSuggest} + + {tokens.autoSuggest} {language.tokens} {/if} {/if} diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index 93312bbe..61fae3ca 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -551,29 +551,21 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' 'Authorization': `Bearer ${auth_key}`, 'Content-Type': 'application/json' }; - - // const send_body = { - // text: stringlizeAINChat(formated, currentChar?.name ?? ''), - // length: maxTokens, - // temperature: temperature, - // top_p: 0.7, - // tailfree: 1.0, - // rep_pen: arg.frequencyPenalty ?? (db.frequencyPenalty / 100) + 1, - // model: aiModel === 'novellist_damsel' ? 'damsel' : 'supertrin', - // userbadwords: ["【質問】"].join("<<|>>"), - // }; const send_body = { text: stringlizeAINChat(formated, currentChar?.name ?? ''), length: maxTokens, - temperature: 0.925, - top_p: 0.7, - rep_pen: 1.0625, - top_a: 0.08, - rep_pen_slope: 1.7, - + temperature: temperature, + top_p: db.ainconfig.top_p, + top_k: db.ainconfig.top_k, + rep_pen: db.ainconfig.rep_pen, + top_a: db.ainconfig.top_a, + rep_pen_slope: db.ainconfig.rep_pen_slope, + rep_pen_range: db.ainconfig.rep_pen_range, + typical_p: db.ainconfig.typical_p, + badwords: db.ainconfig.badwords, model: aiModel === 'novellist_damsel' ? 'damsel' : 'supertrin', - stoptokens: ["「"].join("<<|>>"), + stoptokens: ["「"].join("<<|>>") + db.ainconfig.stoptokens, }; const response = await globalFetch(api_server_url + '/api', { method: 'POST', diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 1dab4814..94207de5 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -410,6 +410,7 @@ export interface botPreset{ koboldURL?: string proxyKey:string ooba: OobaSettings + ainconfig: AINsettings } export interface Database{ @@ -537,6 +538,7 @@ export interface Database{ hypaMemory:boolean proxyRequestModel:string ooba:OobaSettings + ainconfig: AINsettings } interface hordeConfig{ @@ -585,6 +587,18 @@ export interface Message{ chatId?:string } +interface AINsettings{ + top_p: number, + rep_pen: number, + top_a: number, + rep_pen_slope:number, + rep_pen_range: number, + typical_p:number + badwords:string + stoptokens:string + top_k:number +} + interface OobaSettings{ max_new_tokens: number, do_sample: boolean, @@ -621,6 +635,18 @@ interface OobaSettings{ export const saveImage = saveImageGlobal +export const defaultAIN:AINsettings = { + top_p: 0.7, + rep_pen: 1.0625, + top_a: 0.08, + rep_pen_slope: 1.7, + rep_pen_range: 1024, + typical_p: 1.0, + badwords: '', + stoptokens: '', + top_k: 140 +} + export const defaultOoba:OobaSettings = { max_new_tokens: 180, do_sample: true, @@ -654,6 +680,7 @@ export const defaultOoba:OobaSettings = { } } + export const presetTemplate:botPreset = { name: "New Preset", apiType: "gpt35", @@ -676,7 +703,8 @@ export const presetTemplate:botPreset = { promptPreprocess: false, proxyKey: '', bias: [], - ooba: cloneDeep(defaultOoba) + ooba: cloneDeep(defaultOoba), + ainconfig: cloneDeep(defaultAIN) } const defaultSdData:[string,string][] = [ @@ -750,7 +778,8 @@ export function saveCurrentPreset(){ bias: db.bias, koboldURL: db.koboldURL, proxyKey: db.proxyKey, - ooba: db.ooba + ooba: cloneDeep(db.ooba), + ainconfig: cloneDeep(db.ainconfig) } db.botPresets = pres DataBase.set(db) @@ -796,6 +825,7 @@ export function changeToPreset(id =0, savecurrent = true){ db.koboldURL = newPres.koboldURL ?? db.koboldURL db.proxyKey = newPres.proxyKey ?? db.proxyKey db.ooba = cloneDeep(newPres.ooba ?? db.ooba) + db.ainconfig = cloneDeep(newPres.ainconfig ?? db.ainconfig) DataBase.set(db) }