|
|
@@ -10,6 +10,7 @@ from ..agent.query_agent import QueryGenerationAgent
|
|
|
from ..database.connection import init_database_manager, get_db_manager
|
|
|
from ..database.models import QueryTaskDAO, QueryTaskStatus, get_query_task_dao
|
|
|
from ..tools.scheduler import create_scheduler, get_scheduler
|
|
|
+from .db import get_knowledge_query_dao, get_knowledge_store_content_dao
|
|
|
import time
|
|
|
|
|
|
# 加载环境变量
|
|
|
@@ -262,6 +263,97 @@ async def root():
|
|
|
}
|
|
|
|
|
|
|
|
|
+@app.get("/knowledge-query/data")
|
|
|
+async def get_request_id(suggest_task_id: int, query: str):
|
|
|
+ """
|
|
|
+ 根据 suggest_task_id 和 query 查询 knowledge_query 表,获取匹配的 data
|
|
|
+
|
|
|
+ Args:
|
|
|
+ suggest_task_id: 建议任务ID
|
|
|
+ query: 查询词
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ request_id 信息
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ dao = get_knowledge_query_dao()
|
|
|
+ data = dao.get_data_by_task_and_query(suggest_task_id, query)
|
|
|
+
|
|
|
+ if data is None:
|
|
|
+ raise HTTPException(
|
|
|
+ status_code=404,
|
|
|
+ detail=f"未找到匹配的记录 (suggest_task_id={suggest_task_id}, query={query})"
|
|
|
+ )
|
|
|
+
|
|
|
+ return data
|
|
|
+
|
|
|
+ except HTTPException:
|
|
|
+ raise
|
|
|
+ except Exception as e:
|
|
|
+ logger.error(f"查询 request_id 失败: {e}")
|
|
|
+ raise HTTPException(status_code=500, detail=f"查询失败: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/knowledge-store/data")
|
|
|
+async def get_store_data(request_id: str):
|
|
|
+ """
|
|
|
+ 根据 request_id 查询 knowledge_store_content 表,获取匹配的 行
|
|
|
+
|
|
|
+ Args:
|
|
|
+ request_id: 请求ID
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ row数据
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ dao = get_knowledge_store_content_dao()
|
|
|
+ data = dao.get_data_by_request_id(request_id)
|
|
|
+
|
|
|
+ if data is None:
|
|
|
+ raise HTTPException(
|
|
|
+ status_code=404,
|
|
|
+ detail=f"未找到匹配的记录 (request_id={request_id})"
|
|
|
+ )
|
|
|
+
|
|
|
+ return data
|
|
|
+
|
|
|
+ except HTTPException:
|
|
|
+ raise
|
|
|
+ except Exception as e:
|
|
|
+ logger.error(f"查询 data 失败: {e}")
|
|
|
+ raise HTTPException(status_code=500, detail=f"查询失败: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/knowledge-store/full")
|
|
|
+async def get_full_store_record(request_id: str):
|
|
|
+ """
|
|
|
+ 根据 request_id 查询完整的 knowledge_store_content 记录
|
|
|
+
|
|
|
+ Args:
|
|
|
+ request_id: 请求ID
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ 完整记录
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ dao = get_knowledge_store_content_dao()
|
|
|
+ record = dao.get_full_record_by_request_id(request_id)
|
|
|
+
|
|
|
+ if record is None:
|
|
|
+ raise HTTPException(
|
|
|
+ status_code=404,
|
|
|
+ detail=f"未找到匹配的记录 (request_id={request_id})"
|
|
|
+ )
|
|
|
+
|
|
|
+ return record
|
|
|
+
|
|
|
+ except HTTPException:
|
|
|
+ raise
|
|
|
+ except Exception as e:
|
|
|
+ logger.error(f"查询完整记录失败: {e}")
|
|
|
+ raise HTTPException(status_code=500, detail=f"查询失败: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
|
import uvicorn
|
|
|
|