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