|
@@ -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}")
|