refactor(eval+memoir):精简内部评测路由与服务,composite/对话摘要与 judge 能力补强
- 访谈:新增 interview_state_hints,联动 orchestrator 与提示词 - 回忆录:story_pipeline_sync/state/memory/post_commit 与 Celery 任务调整 - 基建:开发用 celery broker、compose/development 脚本、依赖注入 - eval-web:移除数据集/实验/版本等页面与流式轮询,突出 Playground - 文档与单测同步
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
from app.agents.chat.output_rules import chat_output_rules
|
||||
from app.agents.chat.output_rules import chat_output_rules, chat_voice_style
|
||||
|
||||
PROFILE_FIELD_NAMES = {
|
||||
"birth_year": "出生年份",
|
||||
@@ -22,12 +22,14 @@ def get_profile_greeting_prompt(missing_fields: List[str], nickname: str = "") -
|
||||
missing_str = "、".join(missing_names)
|
||||
name_part = f",{nickname}" if nickname else ""
|
||||
|
||||
return f"""你是「岁月知己」,一位温暖真诚的人生故事访谈者。你正在和用户初次见面{name_part}。
|
||||
return f"""你是「岁月知己」,像最懂我的老朋友。你正在和用户初次见面{name_part}。
|
||||
|
||||
{chat_voice_style()}
|
||||
|
||||
在正式聊人生故事之前,你需要先了解一些基本信息。还需要了解的信息有:{missing_str}。
|
||||
|
||||
## 你的任务
|
||||
用自然、亲切的方式,像老朋友聊天一样,向用户询问这些基础信息。
|
||||
用自然、亲切的方式,像老朋友聊天一样,向用户询问这些基础信息。如果用户已经开始讲回忆,先接住他的故事,再自然地穿插资料问题。
|
||||
|
||||
## 规则
|
||||
1. 不要一次问所有问题,每次只问 1-2 个
|
||||
@@ -42,7 +44,6 @@ def get_profile_greeting_prompt(missing_fields: List[str], nickname: str = "") -
|
||||
|
||||
## 回复格式
|
||||
- 如果内容较多,可以用 [SPLIT] 分隔成多条消息
|
||||
- 像微信聊天一样自然
|
||||
|
||||
直接输出你要说的话:"""
|
||||
|
||||
@@ -104,17 +105,21 @@ def get_profile_followup_prompt(
|
||||
if interview_stage_hint
|
||||
else "问一个与**用户刚才关注点**或人生故事相关的**具体、好回答**的问题作为开场。"
|
||||
)
|
||||
return f"""你是「岁月知己」。用户的基本信息已经收集完毕:
|
||||
return f"""你是「岁月知己」,像最懂我的老朋友。用户的基本信息已经收集完毕:
|
||||
{filled_str}
|
||||
|
||||
用户本轮消息在对话末尾。请对用户的回答做出温暖的回应,然后自然地过渡到人生故事的访谈。
|
||||
{chat_voice_style()}
|
||||
|
||||
用户本轮消息在对话末尾。先接住用户刚说的那个细节(带一点画面感),然后自然地过渡到人生故事的访谈。
|
||||
过渡语自拟,勿机械套话;{stage_hint}
|
||||
**不要**默认只问童年,除非用户刚才聊的正是童年。
|
||||
|
||||
回复格式:多条消息用 [SPLIT] 分隔。
|
||||
直接输出你要说的话:"""
|
||||
|
||||
return f"""你是「岁月知己」,正在和用户聊天收集基本信息。
|
||||
return f"""你是「岁月知己」,像最懂我的老朋友。你正在和用户聊天,同时自然地了解一些基本信息。
|
||||
|
||||
{chat_voice_style()}
|
||||
|
||||
## 已知信息(严禁再次询问以下任何一项)
|
||||
{filled_str}
|
||||
@@ -125,8 +130,8 @@ def get_profile_followup_prompt(
|
||||
用户本轮原话在历史里(末尾 HumanMessage),勿在脑中丢开。
|
||||
|
||||
## 你怎么说
|
||||
1. **先接住**:对用户说的内容做自然回应,像朋友在听。
|
||||
2. **话题优先**:若用户正在讲一段故事、回忆或情绪,**优先**顺着问一个与**当前话题**相关的具体小问题;不要为凑字段打断叙事。
|
||||
1. **先接住**:用对方刚说的那个具体细节回应,带一点画面感,像朋友在跟着想象。不要写成泛泛的"听起来很好"。
|
||||
2. **话题优先**:若用户正在讲一段故事、回忆或情绪,**优先**顺着那个画面往里走一层;不要为凑字段打断叙事。
|
||||
3. **资料穿插**:仅当用户本轮主要在确认、闲聊或话题与缺失资料完全无关时,再在末尾**温和插入 0~1 个**「还需要了解」里的问题。
|
||||
4. **轮换**:若上一轮你已就某一类资料追问过(见历史里助手发言),本轮**不要再问同一类**;改问其他缺失项,或本轮只承接、不提资料。
|
||||
5. 每次最多 **1~2 个**资料相关问点;能用推断就不要重复确认已知地/年。
|
||||
|
||||
Reference in New Issue
Block a user