fix(customer-service): FAQ 型回答不能把"问"字当成追问的主语
给 C1-C5 补 FAQ 之后暴露的连带问题:FAQ 型回答的首行是"问:C1 客户能买什么产品?", _topic_of 取冒号前的内容会拿到一个孤零零的"问"字,客户追问时检索词被污染成 "问 那它能买基金吗"。 改为"问"/"答"这类纯标签直接判为取不出主语,退化成只查当前这一句。 另附一条实测结论(**没有改代码**):在 FAQ 型回答之后追问「那它能买基金吗」仍会转人工, 这是安全且合理的——上一轮回答里没有可指代的产品实体,而"C1 能不能买基金"本身取决于 那只基金的风险等级,知识库没有、也不该有这种一概而论的答案。按金融场景的原则, "答不了"好过"答错"。
This commit is contained in:
@@ -262,7 +262,11 @@ class CustomerServiceAgent(BaseAgent):
|
||||
first = next((line.strip() for line in answer.splitlines() if line.strip()), "")
|
||||
first = first.lstrip("#").strip()
|
||||
topic = first.split(":", 1)[0].strip() if ":" in first else first
|
||||
if not topic or len(topic) > 20 or "," in topic or "。" in topic:
|
||||
# FAQ 型回答的首行是"问:C1 客户能买什么产品?",冒号前只有一个"问"字;
|
||||
# 拿它当主语只会把检索词污染成"问 那它风险高吗"。
|
||||
if not topic or topic in {"问", "答"}:
|
||||
return ""
|
||||
if len(topic) > 20 or "," in topic or "。" in topic:
|
||||
return ""
|
||||
return topic
|
||||
|
||||
|
||||
Reference in New Issue
Block a user