瀏覽代碼

Merge branch '2025-02-26-nlp-api-improve' of luojunhui/LongArticlesJob into master

luojunhui 4 月之前
父節點
當前提交
44eae421a7
共有 1 個文件被更改,包括 47 次插入4 次删除
  1. 47 4
      applications/api/nlp_api.py

+ 47 - 4
applications/api/nlp_api.py

@@ -2,6 +2,9 @@
 @author: luojunhui
 """
 import requests
+from requests.exceptions import RequestException, JSONDecodeError
+
+from applications.feishuBotApi import bot
 
 
 def similarity_between_title_list(target_title_list: list[str], base_title_list: list[str]) -> list[list[float]]:
@@ -11,7 +14,9 @@ def similarity_between_title_list(target_title_list: list[str], base_title_list:
     :param base_title_list: base title_list
     :return: list of similarity
     """
-    url = 'http://61.48.133.26:6061/nlp'
+
+    url = 'http://61.48.133.26:6060/nlp'
+    url_backup = 'http://61.48.133.26:6061/nlp'
     body = {
         "data": {
             "text_list_a": target_title_list,
@@ -20,7 +25,45 @@ def similarity_between_title_list(target_title_list: list[str], base_title_list:
         "function": "similarities_cross",
         "use_cache": False
     }
-    response_json = requests.post(url, json=body, timeout=120).json()
-    score_array = response_json['score_list_list']
-    return score_array
 
+    try:
+        response = requests.post(url, json=body, timeout=120)
+        if response.status_code != 200:
+            response = requests.post(url_backup, json=body, timeout=120)
+    except RequestException as e:
+        bot(
+            title='NLP API 网络异常',
+            detail={
+                "error_type": type(e).__name__,
+                "error_msg": str(e)
+            },
+            mention=False
+        )
+        return []
+
+    if response.status_code != 200:
+        bot(
+            title='NLP API 业务异常',
+            detail={
+                "status_code": response.status_code,
+                "response_text": response.text[:200]  # 截取部分内容避免过大
+            },
+            mention=False
+        )
+        return []
+
+    try:
+        response_json = response.json()
+        score_array = response_json['score_list_list']
+    except (JSONDecodeError, KeyError) as e:
+        bot(
+            title='NLP响应数据异常',
+            detail={
+                "error_type": type(e).__name__,
+                "raw_response": response.text[:200]
+            },
+            mention=False
+        )
+        return []
+
+    return score_array