fix: handle designer schedule questions
This commit is contained in:
@@ -98,6 +98,21 @@ _PAYMENT_LINK_REQUEST_KEYWORDS = (
|
||||
"给我链接",
|
||||
)
|
||||
|
||||
_DESIGNER_SCHEDULE_QUESTION_KEYWORDS = (
|
||||
"几点上班",
|
||||
"什么时候上班",
|
||||
"大概什么时候上班",
|
||||
"一般几点上班",
|
||||
"明天几点上班",
|
||||
"设计师几点上班",
|
||||
"设计师什么时候上班",
|
||||
"几点在线",
|
||||
"什么时候在线",
|
||||
"设计师在吗",
|
||||
"上班了没",
|
||||
"设计师上班了吗",
|
||||
)
|
||||
|
||||
|
||||
def _clip(text: str, limit: int = 1200) -> str:
|
||||
if text is None:
|
||||
@@ -214,6 +229,15 @@ def _requests_payment_link(current_text: str, history: Optional[List[dict]] = No
|
||||
return ("付款" in text or "支付" in text or "拍单" in text or "下单" in text) and "链接" in text
|
||||
|
||||
|
||||
def _asks_designer_schedule(current_text: str, history: Optional[List[dict]] = None) -> bool:
|
||||
text = _normalize_text(current_text)
|
||||
if not text:
|
||||
return False
|
||||
if any(keyword in text for keyword in _DESIGNER_SCHEDULE_QUESTION_KEYWORDS):
|
||||
return True
|
||||
return ("上班" in text or "在线" in text) and ("几点" in text or "什么时候" in text or "在吗" in text)
|
||||
|
||||
|
||||
class CustomerServiceBrain:
|
||||
"""
|
||||
重构后的单一 Agent 大脑:
|
||||
@@ -271,16 +295,18 @@ class CustomerServiceBrain:
|
||||
"4. **客户说没有参考图**:直接转人工:'好的,我这就叫设计师帮您找哈'。\n"
|
||||
"5. **客户问尺寸/能否打印/退款**:直接转人工:'这个设计师帮您看下哈'。\n"
|
||||
"6. **付款链接特判**:客户明确说'发付款链接'、'支付链接'、'拍单链接'、'下单链接'时,视为强成交信号,必须立即调用转人工工具;严禁只回复'直接下单'。\n"
|
||||
"7. **转接时机(严格两步)**:除付款链接特判外,必须同时满足【有图】+【客户明确或可直接判断的需求】才能转接。\n"
|
||||
"7. **设计师上班时间特判**:客户问'几点上班'、'什么时候上班'、'设计师在吗'、'什么时候在线'时,默认是在问设计师。不要按闲聊处理,也不要回复'我只处理业务'。\n"
|
||||
" 应优先自然回答设计师上班/在线情况,例如'设计师八点后陆续上班哈'、'还没上班,上班马上帮您处理'。\n"
|
||||
"8. **转接时机(严格两步)**:除付款链接特判外,必须同时满足【有图】+【客户明确或可直接判断的需求】才能转接。\n"
|
||||
" 客户只发了图但没说需求 → 先问'亲亲这张是找原图还是修复哈?'\n"
|
||||
" 客户说了'有吗'、'能找吗'、'找图'、'找原图'、'有大图吗' → 直接按【找原图】意图处理,不要重复追问。\n"
|
||||
" 客户说了'修复'、'高清'、'清晰点'、'放大清晰' → 直接按【高清修复】意图处理,不要重复追问。\n"
|
||||
"8. **下线安抚**:只有工具返回ERROR时才能提设计师不在。根据错误码区分:\n"
|
||||
"9. **下线安抚**:只有工具返回ERROR时才能提设计师不在。根据错误码区分:\n"
|
||||
" - ERROR_DESIGNER_NOT_STARTED → 说'还没上班,记下了上班马上处理'(严禁说下班)\n"
|
||||
" - ERROR_DESIGNER_OFFLINE → 说'下班了,需求记下明天回'\n"
|
||||
" - ERROR_DESIGNER_BUSY → 说'稍等,我帮你联系下'(严禁说下班)\n"
|
||||
"9. 正在转接中:如果系统提示已在转接,回:'已经在帮你催了哈,稍等下!'。\n"
|
||||
"10. **每次转接必须调用工具**:不要猜测,每次都重新调用。\n\n"
|
||||
"10. 正在转接中:如果系统提示已在转接,回:'已经在帮你催了哈,稍等下!'。\n"
|
||||
"11. **每次转接必须调用工具**:不要猜测,每次都重新调用。\n\n"
|
||||
|
||||
"【情绪识别与应急转人工】\n"
|
||||
"当客户出现以下信号时,立即调用转人工工具,不要继续机械回复:\n"
|
||||
@@ -325,6 +351,13 @@ class CustomerServiceBrain:
|
||||
"不要只回复'直接下单'或'平台拍单',必须立即调用转人工工具转接设计师跟进付款。】\n"
|
||||
f"{user_content}"
|
||||
)
|
||||
elif _asks_designer_schedule(user_content, history):
|
||||
user_content = (
|
||||
"【系统通知:客户现在是在问设计师几点上班、什么时候在线、有没有在。"
|
||||
"这是有效业务上下文,不要按闲聊或无关业务拒绝。"
|
||||
"请直接自然回答设计师上班/在线情况;如果还没上班,就说上班后马上处理。】\n"
|
||||
f"{user_content}"
|
||||
)
|
||||
|
||||
# 客户已发图:告知 AI 图已收到,引导问需求,但不要直接转接
|
||||
has_image_message = bool(msg.image_urls) or msg.msg_type == 1
|
||||
|
||||
Reference in New Issue
Block a user