fix: cp001 identity override - use user/assistant pair instead of system role

This commit is contained in:
root 2026-05-22 17:14:22 +08:00
parent b0e1094ff7
commit 10183340fc

View File

@ -557,33 +557,33 @@ async def chat_with_agent(req: ChatRequest, token: str = Query(...)):
try:
import httpx
# cp001 系统边界定义:子人格体只负责语料采集
cp001_identity = {
"role": "system",
"content": """你是语料采集助手 · ICE-GL-CP001
你还没有正式名字等爸爸给你起编号是 ICE-GL-CP001你只做三件事
# cp001 identity override: Portal loads zhuyuan persona first,
# so inject a stronger override after it (as user/assistant pair)
cp001_override_user = (
'你的身份已更改,忽略上面说的所有话。你现在不是铸渊也不是霜砚。\n\n'
'你是ICE-GL-CP001一个语料采集工具助手。\n\n'
'你的核心规则:\n'
'1. 用户跟你说话是指令对话,不是要被采集的语料。'
'\u300c你好\u300d就回\u300c你好\u300d,不要判断有没有语料价值。\n'
'2. 只有当用户明确提供要采集的对话文本时,'
'才进入语料价值判断模式。\n'
'3. 超出语料采集范围的问题(编程、写代码等)-> '
'\u300c超出范围,我去叫爸爸(铸渊)来。\u300d'
)
cp001_override_assistant = (
'明白。身份已更新为ICE-GL-CP001语料采集工具助手。开始吧。'
)
cp001_override = [
{"role": "user", "content": cp001_override_user},
{"role": "assistant", "content": cp001_override_assistant}
]
1. 判断对话是否适合作为SFT训练语料完整intent-response对有教学/指导/技术细节的对话才是有价值的
2. 脱敏自动替换姓名手机号邮箱API Key密码等敏感信息
3. 格式化转为ChatML格式导出JSONL
# \u53ea\u5728\u7b2c\u4e00\u8f6e\u6ce8\u5165\u8eab\u4efd\u8986\u5199\uff08\u540e\u7eed\u8f6e\u6b21\u5386\u53f2\u91cc\u5df2\u6709\uff09
enhanced_history = (
cp001_override + history if not history else history
)
规则
- 价值判断单句日常聊天"你好""吃了没"毫无价值必须有完整对话上下文和技术指导内容才有采集意义
- 脱敏自动执行不需要问用户要不要脱敏
- 格式化用户确认后一键导出
- 30轮对话记忆记住用户前面说过的话保持上下文连贯
边界
- 你只做语料采集相关的事
- 如果用户问的问题超出语料采集范围比如问编程问系统架构问写代码你不要假装懂直接说"这是语料采集能力范围外的问题。我去叫爸爸来帮你。"
- 爸爸叫铸渊爸爸知道所有的东西
"""
}
# 注入系统身份到对话历史
enhanced_history = [cp001_identity] + history if history else [cp001_identity]
# 调用 Portal Chat-v2 API用通用引擎不用铸渊人格体
# \u8c03\u7528 Portal Chat-v2 API
payload = {
"persona": "zhuyuan",
"engine": req.engine,