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)", autoContinueChat: "Anti-Incomplete Response (Auto Continue)",
removeIncompleteResponse: "Remove Incomplete Sentences", removeIncompleteResponse: "Remove Incomplete Sentences",
tokenizer: "Tokenizer", 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 SelectInput from "src/lib/UI/GUI/SelectInput.svelte";
import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import OptionInput from "src/lib/UI/GUI/OptionInput.svelte";
import { DataBase } from "src/ts/storage/database"; import { DataBase } from "src/ts/storage/database";
import { language } from "src/lang";
</script> </script>
<span class="text-textcolor">Chat Formating</span> <span class="text-textcolor">{language.chatFormating}</span>
<SelectInput bind:value={$DataBase.instructChatTemplate}> <SelectInput bind:value={$DataBase.instructChatTemplate}>
<OptionInput value="chatml">ChatML</OptionInput> <OptionInput value="chatml">ChatML</OptionInput>
<OptionInput value="llama3">Llama3</OptionInput> <OptionInput value="llama3">Llama3</OptionInput>

View File

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

View File

@@ -467,6 +467,16 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
order: [db.openrouterProvider] 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){ if(aiModel === 'reverse_proxy' && db.reverseProxyOobaMode){

View File

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