From bb0ad4c57e399fa0dc6211ce076de1451baa7604 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Tue, 23 Apr 2024 18:31:32 +0900 Subject: [PATCH] Add chat formatting and use instruction prompt feature --- src/lang/en.ts | 2 ++ src/lib/Setting/Pages/ChatFormatSettings.svelte | 3 ++- src/lib/Setting/Pages/OpenrouterSettings.svelte | 8 ++++++++ src/ts/process/request.ts | 10 ++++++++++ src/ts/storage/database.ts | 8 +++++++- 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index 3f72a604..058171bc 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -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", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/ChatFormatSettings.svelte b/src/lib/Setting/Pages/ChatFormatSettings.svelte index 4b83f172..f8e84ac5 100644 --- a/src/lib/Setting/Pages/ChatFormatSettings.svelte +++ b/src/lib/Setting/Pages/ChatFormatSettings.svelte @@ -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"; -Chat Formating +{language.chatFormating} ChatML Llama3 diff --git a/src/lib/Setting/Pages/OpenrouterSettings.svelte b/src/lib/Setting/Pages/OpenrouterSettings.svelte index 5bb3036f..93955ca0 100644 --- a/src/lib/Setting/Pages/OpenrouterSettings.svelte +++ b/src/lib/Setting/Pages/OpenrouterSettings.svelte @@ -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 @@
+
+ +
{language.provider} Auto (Default) @@ -45,4 +49,8 @@ {provider} {/each} + + {#if $DataBase.useInstructPrompt} + + {/if} \ No newline at end of file diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index 5b712994..bbe9a7aa 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -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){ diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 24927da0..d34a14cc 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -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 }