jiayongqiang před 2 týdny
rodič
revize
5e5b284cbe

+ 1 - 1
agent/config.ini

@@ -1,5 +1,5 @@
 [database]
-host = 10.192.72.11
+host = 10.192.72.11  ;数据库地址
 port = 4321
 user = root
 password = admin

binární
agent/logs/aitagging-app.2026-03-16_09-34-01_075272.log.zip


+ 7 - 2
agent/src/agent/agent.py

@@ -4,6 +4,8 @@ from pydantic import BaseModel,Field
 import json
 from agent.core.config import get_config_path
 from agent.logger import logger
+import uuid
+from datetime import datetime
 
 config = get_config_path()
 TOP_K = config['app']['top_k']
@@ -85,14 +87,17 @@ async def reflect_check(context: str, labels: list):
         3.不以企业整体行业属性替代对贷款具体内容的判断
         4.所有判断应服务于产业打标的可用性与可解释性
     """
+    uid = uuid.uuid4().hex
+    l1 = datetime.now().isoformat()
+    logger.info(f"Starting reflection check with uuid {uid}. timestamp: {l1}")
     response = await agent.ainvoke({
         "messages": [{"role":"system","content": prompt}]
     },context = {})
     result = response["structured_response"]
-
-
     result =  [r.dict() for r in result.labels]
     result = json.dumps(result, ensure_ascii=False)
+    l2 = datetime.now().isoformat()
+    logger.info(f"Reflection check completed with uuid {uid}. timestamp: {l2}, consuming {(datetime.fromisoformat(l2) - datetime.fromisoformat(l1)).total_seconds()} seconds.")
     logger.info(f"{context} LLM result: {result}")
 
     return result

+ 1 - 2
agent/src/agent/api_outter.py

@@ -103,8 +103,7 @@ async def run_ai_pipeline(log_id: str, tag_category_id: str, phrase: str):
             # step1: 正则过滤
             result = await execute_reg(log_id,tag_category_id,phrase)
             # step2: 向量检索
-            if result:
-                result = vector_similarity_search(phrase, result)
+            result = vector_similarity_search(phrase, result)
             # step3: LLM 打标
             if result:
                 try:

+ 12 - 3
agent/src/agent/core/es.py

@@ -98,9 +98,7 @@ def bulk_upsert(documents):
 
 def hybrid_search( target_doc_ids, query_vector, top_k=2):
     logger.info(f"Performing hybrid search with target_doc_ids: {target_doc_ids}, query_vector: {len(query_vector)}, top_k: {top_k}")
-    response = es.search(
-        index=INDEX_NAME,
-        knn={
+    knn={
             "field": "tag_vector",
             "query_vector": query_vector,
             "k": top_k,           # 不超过候选集大小
@@ -111,6 +109,17 @@ def hybrid_search( target_doc_ids, query_vector, top_k=2):
                 }
             }
         }
+    if not target_doc_ids:
+        knn={
+            "field": "tag_vector",
+            "query_vector": query_vector,
+            "k": top_k,           # 不超过候选集大小
+            "num_candidates": 100
+        }
+    print(f"Constructed knn query: {knn}")
+    response = es.search(
+        index=INDEX_NAME,
+        knn=knn
     )
     return response["hits"]["hits"]
 

+ 7 - 0
agent/tests/test_consuming.py

@@ -0,0 +1,7 @@
+from datetime import datetime
+from agent.logger import logger
+l1 = datetime.now().isoformat()
+logger.info(f"Starting reflection check with uuid . timestamp: {l1}")
+
+l2 = datetime.now().isoformat()
+logger.info(f"Reflection check completed with uuid . timestamp: {l2}, consuming {(datetime.fromisoformat(l2) - datetime.fromisoformat(l1)).total_seconds()} seconds.")

+ 1 - 1
agent/tests/test_reg.py

@@ -8,7 +8,7 @@ test_cases = [
     "防腐材料",       
     "海洋防污涂层",     
     "船舶防腐",        
-    "职业:水产养殖人员 投向:海水养殖 用途:养殖鲍鱼", 
+    "职业:水产养殖人员 投向:内陆养殖 用途:养殖鲍鱼", 
     "材料",           
     "医疗防护服",      
 ]

+ 1 - 1
agent/tests/test_sync_category.py

@@ -1,6 +1,6 @@
 import requests
 
-res = requests.post("http://localhost:9876/api/aitag/admin/v1/synchronize_category", json={
+res = requests.post("http://10.192.72.13:9876/api/aitag/admin/v1/synchronize_category", json={
     "category_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
 })
 print(res.text)

+ 1 - 1
agent/tests/test_tagging.py

@@ -8,7 +8,7 @@ res = requests.post("http://10.192.72.13:9876/api/aitag/v1/tagging", json={
     # "timestamp": 1234567890,
     # "sign": "test_sign",
     "business_attr": "test_attr",
-    "phrase": "5职业:水产养殖人员 投向:海水养殖 用途:养殖鲍鱼"
+    "phrase": "职业:水产养殖人员 投向:内陆养殖 用途:养殖鲍鱼"
 })
 
 logging.info(res.text)