Add chat formatting and use instruction prompt feature

This commit is contained in:
kwaroran
2024-04-23 18:31:32 +09:00
parent b33ab24894
commit bb0ad4c57e
5 changed files with 29 additions and 2 deletions

View File

@@ -577,4 +577,6 @@ export const languageEnglish = {
autoContinueChat: "Anti-Incomplete Response (Auto Continue)",
removeIncompleteResponse: "Remove Incomplete Sentences",
tokenizer: "Tokenizer",
chatFormating: "Chat Formating",
useInstructPrompt: "Use Instruction Prompt",
}

View File

@@ -3,9 +3,10 @@
import SelectInput from "src/lib/UI/GUI/SelectInput.svelte";
import OptionInput from "src/lib/UI/GUI/OptionInput.svelte";
import { DataBase } from "src/ts/storage/database";
import { language } from "src/lang";
</script>
<span class="text-textcolor">Chat Formating</span>
<span class="text-textcolor">{language.chatFormating}</span>
<SelectInput bind:value={$DataBase.instructChatTemplate}>
<OptionInput value="chatml">ChatML</OptionInput>
<OptionInput value="llama3">Llama3</OptionInput>

View File

@@ -5,6 +5,7 @@
import { DataBase } from "src/ts/storage/database";
import SelectInput from "src/lib/UI/GUI/SelectInput.svelte";
import OptionInput from "src/lib/UI/GUI/OptionInput.svelte";
import ChatFormatSettings from "./ChatFormatSettings.svelte";
const openrouterProviders = [
"OpenAI",
@@ -38,6 +39,9 @@
<div class="flex items-center mb-4">
<Check bind:check={$DataBase.openrouterMiddleOut} name={language.openrouterMiddleOut}/>
</div>
<div class="flex items-center mb-4">
<Check bind:check={$DataBase.useInstructPrompt} name={language.useInstructPrompt}/>
</div>
<span class="mb-2 text-2xl font-bold mt-2">{language.provider}</span>
<SelectInput bind:value={$DataBase.openrouterProvider}>
<OptionInput value="">Auto (Default)</OptionInput>
@@ -45,4 +49,8 @@
<OptionInput value={provider}>{provider}</OptionInput>
{/each}
</SelectInput>
{#if $DataBase.useInstructPrompt}
<ChatFormatSettings />
{/if}
</Arcodion>

View File

@@ -467,6 +467,16 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
order: [db.openrouterProvider]
}
}
if(db.useInstructPrompt){
//@ts-ignore
delete body.messages
const prompt = applyChatTemplate(formated)
//@ts-ignore
body.prompt = prompt
}
}
if(aiModel === 'reverse_proxy' && db.reverseProxyOobaMode){

View File

@@ -393,6 +393,7 @@ export function setDatabase(data:Database){
data.customTokenizer ??= 'tik'
data.instructChatTemplate ??= "chatml"
data.openrouterProvider ??= ''
data.useInstructPrompt ??= false
changeLanguage(data.language)
DataBase.set(data)
@@ -640,6 +641,7 @@ export interface Database{
instructChatTemplate:string
JinjaTemplate:string
openrouterProvider:string
useInstructPrompt:boolean
}
export interface customscript{
@@ -844,6 +846,7 @@ export interface botPreset{
min_p?:number
top_a?:number
openrouterProvider?:string
useInstructPrompt?:boolean
}
@@ -1047,6 +1050,7 @@ export const presetTemplate:botPreset = {
mode: 'instruct'
},
top_p: 1,
useInstructPrompt: false,
}
@@ -1108,7 +1112,8 @@ export function saveCurrentPreset(){
repetition_penalty: db.repetition_penalty,
min_p: db.min_p,
top_a: db.top_a,
openrouterProvider: db.openrouterProvider
openrouterProvider: db.openrouterProvider,
useInstructPrompt: db.useInstructPrompt
}
db.botPresets = pres
setDatabase(db)
@@ -1189,6 +1194,7 @@ export function setPreset(db:Database, newPres: botPreset){
db.min_p = newPres.min_p
db.top_a = newPres.top_a
db.openrouterProvider = newPres.openrouterProvider
db.useInstructPrompt = newPres.useInstructPrompt ?? false
return db
}