feat:修复投顾agent功能

This commit is contained in:
2026-09-15 09:24:30 +08:00
parent b75ab5ecdc
commit 9660323ff2
7 changed files with 150 additions and 30 deletions
+18 -1
View File
@@ -26,6 +26,7 @@ _QUERY_ACTIONS = (
_DATA_TERMS = (
"持仓",
"资产",
"资金",
"收益",
"交易记录",
"申购",
@@ -42,6 +43,14 @@ _DIALOGUE_TERMS = ("话术", "沟通", "怎么跟客户说", "如何向客户解
_RECOMMEND_TERMS = ("推荐", "组合建议", "配置建议", "买什么", "适合配置", "筛选基金", "投资方案")
_CUSTOMER_IDENTITY_TERMS = ("是谁", "姓名", "实名", "基本信息", "联系方式", "手机号")
_CUSTOMER_ROSTER_TERMS = ("名单", "列表", "几个")
_CUSTOMER_RISK_TERMS = (
"风险评级", "风险等级", "风险类型", "激进型", "进取型", "平衡型", "稳健型", "保守型",
"C1", "C2", "C3", "C4", "C5",
)
_IMPLICIT_QUERY_TERMS = (
"谁", "哪个", "哪些", "多少", "最大", "最多", "最小", "最少", "最高", "最低",
"合计", "总额", "总资产", "排名", "前几", "前十", "超过", "低于", "是否", "有没有",
)
_SCOPE_ERROR_MESSAGE = "投顾范围查询仅支持客户数据查询"
@@ -88,7 +97,15 @@ def recognize_advisor_intent(query: str | None, explicit_intent: str | None = No
)
if has_customer_roster:
return AGENT_INTENT_DATA_QUERY
if has_data and (has_action or "客户" in text or "近一年" in text or "本月" in text):
if "客户" in text and _contains_any(text, _CUSTOMER_RISK_TERMS) and not _contains_any(text, _RECOMMEND_TERMS):
return AGENT_INTENT_DATA_QUERY
if has_data and (
has_action
or "客户" in text
or "近一年" in text
or "本月" in text
or _contains_any(text, _IMPLICIT_QUERY_TERMS)
):
return AGENT_INTENT_DATA_QUERY
if _contains_any(text, _RECOMMEND_TERMS):
return AGENT_INTENT_RECOMMEND