丁云鹏 3 週間 前
コミット
16d443fd4b
1 ファイル変更24 行追加0 行削除
  1. 24 0
      agents/clean_agent/tools.py

+ 24 - 0
agents/clean_agent/tools.py

@@ -55,6 +55,30 @@ def evaluation_extraction_tool(request_id: str, query_word: str) -> str:
             logger.error(f"评估抽取过程中出错: {e}")
             return f"no data - 错误: {str(e)}"
 
+def evaluation_extraction(request_id: str, query_word: str) -> str:
+    """
+    知识评估与抽取工具。持续处理数据库中的数据,分批执行评估并创建KnowledgeExtractionContent对象。
+    对于评分大于70分的内容,会进行抽取并更新KnowledgeExtractionContent对象。
+    
+    Args:
+        request_id: 请求ID,如果不提供则处理所有未处理的数据
+        query_word: 查询词,用于评估和抽取内容
+        
+    Returns:
+        str: "success" 表示处理完成,"no data" 表示没有数据需要处理
+    """
+    # 使用上下文管理器自动管理数据库连接的生命周期
+    with SessionLocal() as db:
+        try:
+            # 使用新的批量处理函数
+            result = execute_continuous_evaluation_extraction(request_id, db, query_word)
+            return result
+        except Exception as e:
+            # 确保发生异常时回滚事务
+            db.rollback()
+            logger.error(f"评估抽取过程中出错: {e}")
+            return f"no data - 错误: {str(e)}"
+
 def execute_continuous_evaluation_extraction(request_id: str, db: Session, query_word: str) -> str:
     """持续执行评估循环,直到数据库没有数据"""
     logger.info(f"开始处理,request_id: {request_id}, query_word: {query_word}")