fix: avoid duplicate greeting reply and improve fallback text
Some checks failed
Mark stale issues and pull requests / stale (push) Has been cancelled
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
Some checks failed
Mark stale issues and pull requests / stale (push) Has been cancelled
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
This commit is contained in:
@@ -316,7 +316,20 @@ class QingjianClient:
|
|||||||
def _fallback_reply(self, action: str) -> str:
|
def _fallback_reply(self, action: str) -> str:
|
||||||
if action == "transfer":
|
if action == "transfer":
|
||||||
return "我先给你转人工处理。"
|
return "我先给你转人工处理。"
|
||||||
return "我先看看"
|
if action == "quote":
|
||||||
|
return "我先给你找找看"
|
||||||
|
return "你直接说需求就行"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _is_greeting_only(text: str) -> bool:
|
||||||
|
t = re.sub(r"\s+", "", str(text or ""))
|
||||||
|
if not t:
|
||||||
|
return False
|
||||||
|
greetings = {
|
||||||
|
"你好", "您好", "在吗", "在不在", "哈喽", "hello", "hi", "嗨",
|
||||||
|
"有人吗", "在", "在嘛",
|
||||||
|
}
|
||||||
|
return t.lower() in greetings
|
||||||
|
|
||||||
def _is_outbound_echo(self, data: dict, msg: str) -> bool:
|
def _is_outbound_echo(self, data: dict, msg: str) -> bool:
|
||||||
"""
|
"""
|
||||||
@@ -383,6 +396,21 @@ class QingjianClient:
|
|||||||
"last_reply": self.last_reply_key.get(key, ""),
|
"last_reply": self.last_reply_key.get(key, ""),
|
||||||
"recent_dialogue": recent_dialogue[-12:],
|
"recent_dialogue": recent_dialogue[-12:],
|
||||||
}
|
}
|
||||||
|
# 首条已快速回复“在的”后,纯问候不再重复走AI回复
|
||||||
|
if self._is_greeting_only(merged_msg) and self.last_reply_key.get(key) == "在的" and not urls and int(context["pending_images"]) == 0:
|
||||||
|
activity_event(
|
||||||
|
self.logger,
|
||||||
|
"agent_process_skipped",
|
||||||
|
trace_id=trace_id,
|
||||||
|
customer_id=context["customer_id"],
|
||||||
|
reason="greeting_already_replied",
|
||||||
|
)
|
||||||
|
await post_tianwang_callback(
|
||||||
|
"message_processed",
|
||||||
|
data,
|
||||||
|
extra={"trace_id": trace_id, "route": "pre_sales", "action": "noop", "reply": ""},
|
||||||
|
)
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
rd = context.get("recent_dialogue", []) or []
|
rd = context.get("recent_dialogue", []) or []
|
||||||
rd_preview = " | ".join(
|
rd_preview = " | ".join(
|
||||||
|
|||||||
Reference in New Issue
Block a user