custom preamble

This commit is contained in:
朱潮 2025-11-28 12:06:23 +08:00
parent 7359bf7054
commit af29716571
2 changed files with 18 additions and 4 deletions

View File

@ -230,8 +230,9 @@ async def enhanced_generate_stream_response(
chat_history = format_messages_to_chat_history(messages)
# 创建preamble_text生成任务
preamble_text, system_prompt = get_preamble_text(language, system_prompt)
preamble_task = asyncio.create_task(
call_preamble_llm(chat_history, query_text, get_preamble_text(language), language, model_name, api_key, model_server)
call_preamble_llm(chat_history, query_text, preamble_text, language, model_name, api_key, model_server)
)
# 创建guideline分析和agent创建任务

View File

@ -421,7 +421,19 @@ def get_language_text(language: str):
}
return language_map.get(language.lower(), '')
def get_preamble_text(language: str):
def get_preamble_text(language: str, system_prompt: str):
# 首先检查system_prompt中是否有preamble代码块
if system_prompt:
preamble_pattern = r'```preamble\s*\n(.*?)\n```'
preamble_matches = re.findall(preamble_pattern, system_prompt, re.DOTALL)
if preamble_matches:
# 提取preamble内容
preamble_content = preamble_matches[0].strip()
# 从system_prompt中删除preamble代码块
cleaned_system_prompt = re.sub(preamble_pattern, '', system_prompt, flags=re.DOTALL)
return preamble_content, cleaned_system_prompt
# 如果没有找到preamble代码块使用默认的preamble选择
if language == "jp":
language = "ja"
preamble_choices_map = {
@ -465,14 +477,15 @@ def get_preamble_text(language: str):
"お待たせしました。",
"対応いたします。",
"わかりましたね。",
"承知しました。",
"承知いたしました。",
"確認させてください。",
"少々お待ちいただけますか。",
"お調べいたします。",
"対応いたしますね。"
]
};
return "\n".join(preamble_choices_map.get(language.lower(), []))
default_preamble = "\n".join(preamble_choices_map.get(language.lower(), []))
return default_preamble, system_prompt # 返回默认preamble和原始system_prompt
async def call_preamble_llm(chat_history: str, last_message: str, preamble_choices_text: str, language: str, model_name: str, api_key: str, model_server: str) -> str: