Bläddra i källkod

格式化代码

xueyiming 1 vecka sedan
förälder
incheckning
207c1a45ad

+ 8 - 8
applications/utils/chat/rag_chat_agent.py

@@ -112,16 +112,16 @@ class RAGChatAgent:
         这是一个问题的回答任务,以下是两个来源的结果:
 
         1. **RAG 搜索回答**:
-        问题: {chat_res['query']}
-        总结: {chat_res['summary']}
-        相关度评分: {chat_res['relevance_score']}
-        状态: {'可以回答' if chat_res['status'] == 1 else '无法回答'}
+        问题: {chat_res["query"]}
+        总结: {chat_res["summary"]}
+        相关度评分: {chat_res["relevance_score"]}
+        状态: {"可以回答" if chat_res["status"] == 1 else "无法回答"}
 
         2. **AI 搜索结果**:
-        问题: {search_res['question']}
-        答案: {search_res['answer']}
-        来源: {search_res['source']}
-        状态: {'可以回答' if search_res['status'] == 1 else '无法回答'}
+        问题: {search_res["question"]}
+        答案: {search_res["answer"]}
+        来源: {search_res["source"]}
+        状态: {"可以回答" if search_res["status"] == 1 else "无法回答"}
 
         基于这两个结果,请你综合判断并生成一个更好的答案,如果可能的话。你可以选择结合 `chat_res` 和 `search_res`,或者选择其中更合适的一个进行回答。如果没有足够的信息可以回答,请用你自己已有的知识回答"。
         

+ 21 - 2
applications/utils/mysql/mapper.py

@@ -37,7 +37,16 @@ class Dataset(BaseMySQLClient):
 
 class ChatResult(BaseMySQLClient):
     async def insert_chat_result(
-        self, query_text, dataset_ids, search_res, chat_res, score, has_answer, ai_answer, ai_source, ai_status
+        self,
+        query_text,
+        dataset_ids,
+        search_res,
+        chat_res,
+        score,
+        has_answer,
+        ai_answer,
+        ai_source,
+        ai_status,
     ):
         query = """
                     INSERT INTO chat_res
@@ -46,5 +55,15 @@ class ChatResult(BaseMySQLClient):
                 """
         return await self.pool.async_save(
             query=query,
-            params=(query_text, dataset_ids, search_res, chat_res, score, has_answer, ai_answer, ai_source, ai_status),
+            params=(
+                query_text,
+                dataset_ids,
+                search_res,
+                chat_res,
+                score,
+                has_answer,
+                ai_answer,
+                ai_source,
+                ai_status,
+            ),
         )

+ 10 - 2
mcp_app.py

@@ -8,7 +8,12 @@ from starlette.applications import Starlette
 from starlette.routing import Mount
 from starlette.types import Receive, Scope, Send
 
-from applications.config import ES_HOSTS, ELASTIC_SEARCH_INDEX, ES_PASSWORD, MILVUS_CONFIG
+from applications.config import (
+    ES_HOSTS,
+    ELASTIC_SEARCH_INDEX,
+    ES_PASSWORD,
+    MILVUS_CONFIG,
+)
 from applications.resource import init_resource_manager
 from mcp_server.server import create_mcp_server
 
@@ -47,7 +52,9 @@ def main(port: int, host: str, json_response: bool) -> int:
     )
 
     # 处理Streamable HTTP请求
-    async def handle_streamable_http(scope: Scope, receive: Receive, send: Send) -> None:
+    async def handle_streamable_http(
+        scope: Scope, receive: Receive, send: Send
+    ) -> None:
         await session_manager.handle_request(scope, receive, send)
 
     # 定义生命周期管理
@@ -66,6 +73,7 @@ def main(port: int, host: str, json_response: bool) -> int:
 
     # 启动服务器
     import uvicorn
+
     uvicorn.run(starlette_app, host=host, port=port)
     return 0
 

+ 8 - 12
mcp_server/server.py

@@ -16,7 +16,9 @@ def create_mcp_server() -> Server:
     app = Server("mcp-rag-server")
 
     @app.call_tool()
-    async def call_tool(name: str, arguments: Dict[str, Any]) -> List[types.TextContent]:
+    async def call_tool(
+        name: str, arguments: Dict[str, Any]
+    ) -> List[types.TextContent]:
         """处理工具调用"""
         # ctx = app.request_context
         if name == "rag-search":
@@ -31,7 +33,7 @@ def create_mcp_server() -> Server:
         return [
             types.Tool(
                 name="rag-search",
-                title = 'RAG搜索',
+                title="RAG搜索",
                 description="搜索内容并生成总结",
                 inputSchema={
                     "type": "object",
@@ -50,7 +52,7 @@ def create_mcp_server() -> Server:
     return app
 
 
-async def rag_search(query_text: str) :
+async def rag_search(query_text: str):
     dataset_id_strs = "11,12"
     dataset_ids = dataset_id_strs.split(",")
     search_type = "hybrid"
@@ -79,15 +81,9 @@ async def rag_search(query_text: str) :
         chat_res["summary"],
         chat_res["relevance_score"],
         chat_res["status"],
-        deepseek_search['answer'],
-        deepseek_search['source'],
-        deepseek_search['status']
+        deepseek_search["answer"],
+        deepseek_search["source"],
+        deepseek_search["status"],
     )
 
     return data
-
-
-
-
-
-

+ 5 - 9
routes/buleprint.py

@@ -364,9 +364,7 @@ async def query():
     resource = get_resource_manager()
     dataset_mapper = Dataset(resource.mysql_client)
     for result in query_results:
-        datasets = await dataset_mapper.select_dataset_by_id(
-            result["datasetId"]
-        )
+        datasets = await dataset_mapper.select_dataset_by_id(result["datasetId"])
         if datasets:
             dataset_name = datasets[0]["name"]
             result["datasetName"] = dataset_name
@@ -390,9 +388,7 @@ async def chat():
     resource = get_resource_manager()
     dataset_mapper = Dataset(resource.mysql_client)
     for result in query_results:
-        datasets = await dataset_mapper.select_dataset_by_id(
-            result["datasetId"]
-        )
+        datasets = await dataset_mapper.select_dataset_by_id(result["datasetId"])
         if datasets:
             dataset_name = datasets[0]["name"]
             result["datasetName"] = dataset_name
@@ -409,9 +405,9 @@ async def chat():
         chat_res["summary"],
         chat_res["relevance_score"],
         chat_res["status"],
-        deepseek_search['answer'],
-        deepseek_search['source'],
-        deepseek_search['status']
+        deepseek_search["answer"],
+        deepseek_search["source"],
+        deepseek_search["status"],
     )
     return jsonify({"status_code": 200, "detail": "success", "data": data})