Add selectable tokenizer supports on Ooba

This commit is contained in:
justpain02
2024-01-05 23:57:59 +09:00
parent 809d8706cf
commit ff4c67b993
3 changed files with 15 additions and 2 deletions

View File

@@ -61,6 +61,8 @@
<OptionalInput marginBottom={true} bind:value={$DataBase.reverseProxyOobaArgs.chat_instruct_command} />
{/if}
{/if}
<span class="text-textcolor">tokenizer</span>
<OptionalInput marginBottom={true} bind:value={$DataBase.reverseProxyOobaArgs.tokenizer} />
<span class="text-textcolor">min_p</span>
<OptionalInput marginBottom={true} bind:value={$DataBase.reverseProxyOobaArgs.min_p} numberMode />
<span class="text-textcolor">top_k</span>

View File

@@ -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;

View File

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