From e2b63404466e1d6d8788158342516d1d90c22845 Mon Sep 17 00:00:00 2001 From: Julian Freeman Date: Sun, 5 Apr 2026 11:53:43 -0400 Subject: [PATCH] add chat sys prompts to settings --- src/components/ConversationView.vue | 10 ++- src/components/SettingsView.vue | 103 +++++++++++++++++++++++++++- src/stores/settings.ts | 18 +++-- 3 files changed, 118 insertions(+), 13 deletions(-) diff --git a/src/components/ConversationView.vue b/src/components/ConversationView.vue index e02ceaa..ad9e8f4 100644 --- a/src/components/ConversationView.vue +++ b/src/components/ConversationView.vue @@ -11,9 +11,6 @@ import { LANGUAGES, SPEAKER_IDENTITY_OPTIONS, TONE_REGISTER_OPTIONS, - CONVERSATION_SYSTEM_PROMPT_TEMPLATE, - CONVERSATION_EVALUATION_PROMPT_TEMPLATE, - CONVERSATION_REFINEMENT_PROMPT_TEMPLATE, type Participant } from '../stores/settings'; import { cn } from '../lib/utils'; @@ -169,7 +166,7 @@ const translateMessage = async (sender: 'me' | 'partner') => { const toLang = sender === 'me' ? activeSession.value.partner.language : activeSession.value.me.language; const myToneLabel = TONE_REGISTER_OPTIONS.find(o => o.value === activeSession.value!.me.tone)?.label || '随和'; - const systemPrompt = CONVERSATION_SYSTEM_PROMPT_TEMPLATE + const systemPrompt = settings.chatSystemPromptTemplate .replace(/{ME_NAME}/g, activeSession.value.me.name) .replace(/{ME_GENDER}/g, activeSession.value.me.gender) .replace(/{ME_LANG}/g, activeSession.value.me.language.englishName) @@ -245,7 +242,7 @@ const evaluateMessage = async (messageId: string, force = false) => { ? (TONE_REGISTER_OPTIONS.find(o => o.value === activeSession.value!.me.tone)?.label || '随和') : '自动识别 (保留原作者原始语气和情绪)'; - const systemPrompt = CONVERSATION_EVALUATION_PROMPT_TEMPLATE + const systemPrompt = settings.chatEvaluationPromptTemplate .replace(/{ME_NAME}/g, activeSession.value.me.name) .replace(/{ME_GENDER}/g, activeSession.value.me.gender) .replace(/{ME_LANG}/g, activeSession.value.me.language.englishName) @@ -337,7 +334,7 @@ const refineMessage = async (messageId: string) => { // 确定目标语气 const targetTone = msg.sender === 'me' ? myToneLabel : '自动识别 (保持原作者原始语气和情绪)'; - const systemPrompt = CONVERSATION_REFINEMENT_PROMPT_TEMPLATE + const systemPrompt = settings.chatRefinementPromptTemplate .replace(/{ME_NAME}/g, activeSession.value.me.name) .replace(/{ME_GENDER}/g, activeSession.value.me.gender) .replace(/{ME_LANG}/g, activeSession.value.me.language.englishName) @@ -345,6 +342,7 @@ const refineMessage = async (messageId: string) => { .replace(/{PART_GENDER}/g, activeSession.value.partner.gender) .replace(/{PART_LANG}/g, activeSession.value.partner.language.englishName) .replace(/{HISTORY_BLOCK}/g, historyBlock || 'None') + .replace(/{ORIGINAL_TEXT}/g, msg.original) .replace(/{CURRENT_TRANSLATION}/g, msg.translated) .replace(/{SUGGESTIONS}/g, suggestionsText) .replace(/{TARGET_TONE}/g, targetTone); diff --git a/src/components/SettingsView.vue b/src/components/SettingsView.vue index 6c3811a..372ae32 100644 --- a/src/components/SettingsView.vue +++ b/src/components/SettingsView.vue @@ -1,11 +1,20 @@