diff --git a/app/services/conversation.py b/app/services/conversation.py index 242b299..874d6ee 100644 --- a/app/services/conversation.py +++ b/app/services/conversation.py @@ -73,19 +73,23 @@ CONTACT_ASK_TRIGGER_RE = re.compile( ) # 语言跟随提醒(Task 11 真人验收发现): glm-4-flash 对拉丁字符占比高的中文 -# 消息(DN800/HDPE 规格混排)会整轮漂成英文,system.md 语言规则压不住;西语客户 -# 则倾向把英文模板句翻译成西语。修复位 = 当轮 context 提醒(prompt 最末、 -# 最新鲜)——与 contact-ask 提醒"逐字话术防漂移"同款方法论。 +# 消息(DN800/HDPE 规格混排)会整轮漂成英文,system.md 语言规则压不住。修复位 = +# 当轮 context 提醒(prompt 最末、最新鲜)——与 contact-ask 提醒"逐字话术防 +# 漂移"同款方法论。2026-10-08 Task 5 收尾: 语言规则放开(模板句跟随客户语言 +# 自然表达)后,ES note 的"整句使用英文原版/绝不翻译成西语"与新规则相反, +# 已同步删除;两条 note 统一补"补全号码逐字照抄"(回显确认轮唯一例外)。 _CJK_RE = re.compile(r"[一-鿿]") _ES_FEATURE_RE = re.compile(r"[áéíóúñãç¿¡]") LANG_NOTE_ZH = ( "⚠️ 语言提醒:客户这条消息是中文——你的回复必须全程使用中文," - "除英文模板句保持英文原文外,一个英文单词都不能出现。" + "一个英文单词都不能出现;模板句跟随客户语言自然表达(系统提醒提供的" + "逐字话术优先用其语言版本,无则自然翻译保持意思与礼貌度);系统提供的" + "补全号码逐字照抄,绝不改动数字。" ) LANG_NOTE_ES = ( - "⚠️ 语言提醒:客户这条消息是西语——叙述部分用西语,但引导留资模板句必须" - "整句使用英文原版(\"Please leave your contact and our manager will send " - "the full quotation.\"),绝不翻译成西语。" + "⚠️ 语言提醒:客户这条消息是西语——你的回复全程用西语,模板句跟随客户" + "语言自然表达(系统提醒提供的逐字话术优先用其语言版本,无则自然翻译" + "保持意思与礼貌度);系统提供的补全号码逐字照抄,绝不改动数字。" ) diff --git a/tests/test_lead_email_trigger.py b/tests/test_lead_email_trigger.py index eecdda4..5f297c6 100644 --- a/tests/test_lead_email_trigger.py +++ b/tests/test_lead_email_trigger.py @@ -506,14 +506,19 @@ def test_reminder_boundary_on_pressure_phrases(): def test_reminder_language_note_follows_customer_language(): - # Task 11 真人验收: 拉丁规格混排的中文消息会整轮漂英文、西语客户会把 - # 模板句翻译成西语——语言指令必须挂在当轮提醒(prompt 最末最鲜的位置) + # Task 11 真人验收: 拉丁规格混排的中文消息会整轮漂英文——语言指令必须 + # 挂在当轮提醒(prompt 最末最鲜的位置)。Task 5 收尾(2026-10-08): 语言 + # 规则放开后 ES/ZH note 同步新语义——模板句跟随客户语言自然表达+ + # 补全号码逐字照抄;"整句使用英文原版/绝不翻译成西语"旧锚随规则废除。 zh = ConversationManager._build_context_reminder( {}, "你们做DN800的HDPE双壁波纹管吗?市政排污用的", []) assert "全程使用中文" in zh + assert "跟随客户语言自然表达" in zh and "号码逐字照抄" in zh es = ConversationManager._build_context_reminder( {}, "¿Cuál es el precio del tubo PE100?", []) - assert "英文原版" in es and "绝不翻译成西语" in es + assert "跟随客户语言自然表达" in es + assert "号码逐字照抄" in es + assert "英文原版" not in es and "绝不翻译" not in es # 旧规则清零 # 英文客户不带语言提醒(默认英语,无需提醒) en = ConversationManager._build_context_reminder( {}, "how much is the DN800 pipe?", [])