luojunhui 3 nedēļas atpakaļ
vecāks
revīzija
663f71525e

+ 2 - 0
applications/api/qwen.py

@@ -1,6 +1,7 @@
 import asyncio
 import dashscope
 
+
 class QwenClient:
     def __init__(self):
         self.api_key = "sk-1022fe8e15ff4e0e9abc20541b281165"
@@ -15,6 +16,7 @@ class QwenClient:
         """
         异步搜索并聊天(async 包装)
         """
+
         def _call_api():
             messages = [
                 {"role": "system", "content": system_prompt},

+ 0 - 2
applications/prompts/__init__.py

@@ -1,4 +1,2 @@
 from .build_graph import extract_entity_and_graph
 from .chat_prompts import build_rag_prompt
-
-

+ 11 - 5
applications/prompts/chat_prompts.py

@@ -12,7 +12,7 @@ def map_prompt(question: str, format_context: str) -> str:
         '  "claims": [\n'
         '    {"point": "事实要点1(尽量原文转述/精准改写)"},\n'
         '    {"point": "事实要点2"}\n'
-        '  ],\n'
+        "  ],\n"
         '  "conflicts_or_limits": ["该片段的限制/含糊点(如时间、定义口径、版本号等)"]\n'
         "}"
     )
@@ -89,7 +89,7 @@ def merge_prompt(question: str, rag_answer: str, formatted_contexts: str) -> str
         '    "external_claims": [\n'
         '      {"claim":"外部补充要点1","note":"来源类型/可信度(如:官网/百科/标准) [EXT]"},\n'
         '      {"claim":"外部补充要点2","note":"… [EXT]"}\n'
-        '    ],\n'
+        "    ],\n"
         '    "gaps": ["仍然缺失或无法确认的信息"]\n'
         "  }\n"
         "}\n"
@@ -104,7 +104,7 @@ def build_rag_prompt(
     contexts: List[Dict],
     mode: str = "single",  # single | map | reduce | rerank | verify | merge
     max_chars_per_chunk: int = 800,
-    draft_answer: Optional[str] = None,              # verify/merge 用:RAG 初稿或草稿
+    draft_answer: Optional[str] = None,  # verify/merge 用:RAG 初稿或草稿
     mapped_results: Optional[str] = None,  # reduce 用
 ) -> Dict[str, Any]:
     """
@@ -189,12 +189,18 @@ def build_rag_prompt(
 
     if mode == "verify":
         draft = draft_answer or "(此处为初稿答案)"
-        return {"system": system_text, "user": verify_prompt(question, draft, formatted_contexts)}
+        return {
+            "system": system_text,
+            "user": verify_prompt(question, draft, formatted_contexts),
+        }
 
     if mode == "merge":
         if not draft_answer:
             raise ValueError("merge 模式需要提供 draft_answer(即 RAG 初稿答案)。")
-        return {"system": system_text, "user": merge_prompt(question, draft_answer, formatted_contexts)}
+        return {
+            "system": system_text,
+            "user": merge_prompt(question, draft_answer, formatted_contexts),
+        }
 
     raise ValueError(f"不支持的模式:{mode}")
 

+ 17 - 10
applications/utils/chat/rag_chat_agent.py

@@ -185,10 +185,14 @@ class RAGChatAgent:
         pack = build_rag_prompt(question, raw_list, mode="map")
         user_list = pack["user_list"]
 
-        map_raw_outputs = await asyncio.gather(*[
-            fetch_deepseek_completion(model="default", prompt=prompt, output_type="json")
-            for prompt in user_list
-        ])
+        map_raw_outputs = await asyncio.gather(
+            *[
+                fetch_deepseek_completion(
+                    model="default", prompt=prompt, output_type="json"
+                )
+                for prompt in user_list
+            ]
+        )
 
         # 3) Reduce
         mapped_results_json_list = json.dumps(map_raw_outputs, ensure_ascii=False)
@@ -196,14 +200,17 @@ class RAGChatAgent:
             question, [], mode="reduce", mapped_results=mapped_results_json_list
         )
         reduce_response = await fetch_deepseek_completion(
-            model="default", prompt=reduce_pack['system'] + reduce_pack['user']
+            model="default", prompt=reduce_pack["system"] + reduce_pack["user"]
         )
         # final result
-        merge_pack = build_rag_prompt(question, raw_list, mode="merge", draft_answer=reduce_response)
+        merge_pack = build_rag_prompt(
+            question, raw_list, mode="merge", draft_answer=reduce_response
+        )
         final = await fetch_deepseek_completion(
-            model="default", prompt=merge_pack['system'] + merge_pack['user'], output_type="json"
+            model="default",
+            prompt=merge_pack["system"] + merge_pack["user"],
+            output_type="json",
         )
-        status = final['status']
-        final_answer = final['final_answer_markdown']
+        status = final["status"]
+        final_answer = final["final_answer_markdown"]
         return {"summary": final_answer, "status": status}
-

+ 1 - 1
applications/utils/task/async_task.py

@@ -109,7 +109,7 @@ async def process_question(question, resource, qwen_client, rag_chat_agent):
             "query": question,
             "result": decision["result"],
             "status": decision["status"],
-            "relevance_score": decision["relevance_score"]
+            "relevance_score": decision["relevance_score"],
         }
 
         # 插入数据库

+ 1 - 0
mcp_server/server.py

@@ -53,6 +53,7 @@ def create_mcp_server() -> Server:
 
     return app
 
+
 async def rag_search(query_text: str):
     rag_chat_agent = RAGChatAgent()
     split_questions = []