From 69945b730fd3f6b6138ce50e49fc3392fcd74d71 Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期一, 28 七月 2025 18:16:52 +0800
Subject: [PATCH] 新增关键词过滤;新增活跃客服统计;新增掉线通知

---
 app/services/dify_client.py |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/app/services/dify_client.py b/app/services/dify_client.py
index e7ab10e..0e6bbda 100644
--- a/app/services/dify_client.py
+++ b/app/services/dify_client.py
@@ -28,6 +28,7 @@
         user: str,
         conversation_id: Optional[str] = None,
         max_retries: int = None,
+        nick_name: Optional[str] = None,
     ) -> Optional[Dict[str, Any]]:
         """
         鍙戦�佸璇濇秷鎭紙闈炴祦寮忔ā寮忥級
@@ -37,6 +38,7 @@
             user: 鐢ㄦ埛鏍囪瘑
             conversation_id: 浼氳瘽ID锛堝彲閫夛級
             max_retries: 鏈�澶ч噸璇曟鏁�
+            nick_name: 鏄电О锛堝彲閫夛紝鐢ㄤ簬浼犻�掔粰dify锛�
 
         Returns:
             鍝嶅簲鏁版嵁瀛楀吀锛屽け璐ヨ繑鍥濶one
@@ -45,11 +47,17 @@
             max_retries = settings.max_retry_count
 
         url = f"{self.base_url}/chat-messages"
+
+        # 鏋勫缓inputs鍙傛暟
+        inputs = {}
+        if nick_name:
+            inputs["nick_name"] = nick_name
+
         payload = {
             "query": query,
             "response_mode": "blocking",  # 浣跨敤闃诲妯″紡锛堥潪娴佸紡锛�
             "user": user,
-            "inputs": {},
+            "inputs": inputs,
         }
 
         # 濡傛灉鏈変細璇滻D锛屾坊鍔犲埌璇锋眰涓�
@@ -105,6 +113,7 @@
         user: str,
         conversation_id: Optional[str] = None,
         max_retries: int = None,
+        nick_name: Optional[str] = None,
     ) -> Optional[Dict[str, Any]]:
         """
         鍙戦�佸璇濇秷鎭紙娴佸紡妯″紡锛�
@@ -114,6 +123,7 @@
             user: 鐢ㄦ埛鏍囪瘑
             conversation_id: 浼氳瘽ID锛堝彲閫夛級
             max_retries: 鏈�澶ч噸璇曟鏁�
+            nick_name: 鏄电О锛堝彲閫夛紝鐢ㄤ簬浼犻�掔粰dify锛�
 
         Returns:
             瀹屾暣鐨勫搷搴旀暟鎹瓧鍏革紝澶辫触杩斿洖None
@@ -122,11 +132,17 @@
             max_retries = settings.max_retry_count
 
         url = f"{self.base_url}/chat-messages"
+
+        # 鏋勫缓inputs鍙傛暟
+        inputs = {}
+        if nick_name:
+            inputs["nick_name"] = nick_name
+
         payload = {
             "query": query,
             "response_mode": "streaming",  # 浣跨敤娴佸紡妯″紡
             "user": user,
-            "inputs": {},
+            "inputs": inputs,
         }
 
         # 濡傛灉鏈変細璇滻D锛屾坊鍔犲埌璇锋眰涓�
@@ -384,6 +400,7 @@
         conversation_id: Optional[str] = None,
         max_retries: int = None,
         force_streaming: Optional[bool] = None,
+        nick_name: Optional[str] = None,
     ) -> Optional[Dict[str, Any]]:
         """
         鍙戦�佸璇濇秷鎭紙鏍规嵁閰嶇疆閫夋嫨妯″紡锛�
@@ -394,6 +411,7 @@
             conversation_id: 浼氳瘽ID锛堝彲閫夛級
             max_retries: 鏈�澶ч噸璇曟鏁�
             force_streaming: 寮哄埗浣跨敤娴佸紡妯″紡锛堝彲閫夛紝瑕嗙洊閰嶇疆锛�
+            nick_name: 鏄电О锛堝彲閫夛紝鐢ㄤ簬浼犻�掔粰dify锛�
 
         Returns:
             鍝嶅簲鏁版嵁瀛楀吀锛屽け璐ヨ繑鍥濶one
@@ -403,10 +421,10 @@
 
         if use_streaming:
             logger.info(f"浣跨敤娴佸紡妯″紡鍙戦�佹秷鎭�: user={user}")
-            return self.send_chat_message_stream(query, user, conversation_id, max_retries)
+            return self.send_chat_message_stream(query, user, conversation_id, max_retries, nick_name)
         else:
             logger.info(f"浣跨敤闃诲妯″紡鍙戦�佹秷鎭�: user={user}")
-            return self.send_chat_message(query, user, conversation_id, max_retries)
+            return self.send_chat_message(query, user, conversation_id, max_retries, nick_name)
 
     def get_conversation_messages(
         self, conversation_id: str, user: str

--
Gitblit v1.9.1