diff --git a/src/lib/Setting/Pages/OobaSettings.svelte b/src/lib/Setting/Pages/OobaSettings.svelte index 9fa6dfa9..5093291b 100644 --- a/src/lib/Setting/Pages/OobaSettings.svelte +++ b/src/lib/Setting/Pages/OobaSettings.svelte @@ -61,6 +61,8 @@ {/if} {/if} + tokenizer + min_p top_k diff --git a/src/ts/model/ooba.ts b/src/ts/model/ooba.ts index 9fb731cf..af28c241 100644 --- a/src/ts/model/ooba.ts +++ b/src/ts/model/ooba.ts @@ -11,6 +11,7 @@ export interface OobaChatCompletionRequestParams { greeting?: string chat_instruct_command?: string preset?: string; // The '?' denotes that the property is optional + tokenizer?: string; min_p?: number; top_k?: number; repetition_penalty?: number; diff --git a/src/ts/tokenizer.ts b/src/ts/tokenizer.ts index 8f26cef2..0fbedb09 100644 --- a/src/ts/tokenizer.ts +++ b/src/ts/tokenizer.ts @@ -24,10 +24,20 @@ async function encode(data:string):Promise<(number[]|Uint32Array|Int32Array)>{ if(db.aiModel.startsWith('local_') || db.aiModel === 'mancer' || db.aiModel === 'textgen_webui' || - (db.aiModel === 'reverse_proxy' && db.reverseProxyOobaMode || - db.aiModel === 'ooba')){ + (db.aiModel === 'reverse_proxy' && db.reverseProxyOobaMode)){ return await tokenizeWebTokenizers(data, 'llama') } + if(db.aiModel === 'ooba'){ + if(db.reverseProxyOobaArgs.tokenizer === 'mixtral' || db.reverseProxyOobaArgs.tokenizer === 'mistral'){ + return await tokenizeWebTokenizers(data, 'mistral') + } + else if(db.reverseProxyOobaArgs.tokenizer === 'llama'){ + return await tokenizeWebTokenizers(data, 'llama') + } + else{ + return await tokenizeWebTokenizers(data, 'llama') + } + } return await tikJS(data) }