From a5110da4e82eb8d7821720d0adba0d28cd497bcc Mon Sep 17 00:00:00 2001 From: liuguancen Date: Tue, 7 Apr 2026 10:32:14 +0800 Subject: [PATCH] =?UTF-8?q?[RAG]=20=E5=85=A8=E9=83=A8LLM=E7=A1=AC=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E4=BB=8Edeepseek-r1=E6=94=B9=E4=B8=BAdeepseek-v3?= =?UTF-8?q?=EF=BC=9B=E4=BF=AE=E5=A4=8D=E7=9F=A5=E8=AF=86=E5=BA=93=E9=97=AE?= =?UTF-8?q?=E7=AD=94source=E6=A0=BC=E5=BC=8F=E4=B8=8D=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=A3=80=E7=B4=A2=E7=BB=93=E6=9E=9C=E8=A2=AB?= =?UTF-8?q?=E4=B8=A2=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- langchain-chat/server/agent/tools/search_internet.py | 2 +- langchain-chat/server/chat/chat.py | 2 +- langchain-chat/server/chat/chat_comparison.py | 2 +- langchain-chat/server/chat/gen_abstract.py | 2 +- langchain-chat/server/chat/gen_conclusion.py | 2 +- langchain-chat/server/chat/gen_keywords.py | 2 +- langchain-chat/server/chat/gen_paragraph.py | 2 +- langchain-chat/server/chat/gen_title.py | 4 ++-- langchain-chat/server/chat/knowledge_base_chat.py | 2 +- langchain-chat/server/chat/search_engine_chat.py | 4 ++-- langchain-chat/server/chat/self_kb_chat.py | 2 +- langchain-chat/server/knowledge_base/kb_doc_api.py | 9 +++++---- 12 files changed, 18 insertions(+), 17 deletions(-) diff --git a/langchain-chat/server/agent/tools/search_internet.py b/langchain-chat/server/agent/tools/search_internet.py index d0d7f37..68bc293 100644 --- a/langchain-chat/server/agent/tools/search_internet.py +++ b/langchain-chat/server/agent/tools/search_internet.py @@ -34,7 +34,7 @@ async def search_engine_iter(query: str , uid: str): response = await search_engine_chat(uid = uid, query=query, search_engine_name="zhipu_search", - model_name=LLM_MODELS[1], + model_name=LLM_MODELS[0], temperature=TEMPERATURE, # Agent搜索互联网的时候,温度设为0.1 history=[], top_k=VECTOR_SEARCH_TOP_K, diff --git a/langchain-chat/server/chat/chat.py b/langchain-chat/server/chat/chat.py index a09dae4..33fd28f 100644 --- a/langchain-chat/server/chat/chat.py +++ b/langchain-chat/server/chat/chat.py @@ -62,7 +62,7 @@ async def chat(query: str = Body(..., description="用户输入", examples=["恼 if prompt_name == "Search Summary": model = get_ChatOpenAI( - model_name=LLM_MODELS[1], + model_name=LLM_MODELS[0], temperature=temperature, max_tokens=max_tokens, callbacks=callbacks, diff --git a/langchain-chat/server/chat/chat_comparison.py b/langchain-chat/server/chat/chat_comparison.py index 1f34f2e..a930080 100644 --- a/langchain-chat/server/chat/chat_comparison.py +++ b/langchain-chat/server/chat/chat_comparison.py @@ -46,7 +46,7 @@ async def chat_comparison_test( executor.submit( get_llm_model_response, strategy_name="query rewrite", - llm_model_name=LLM_MODELS[1], + llm_model_name=LLM_MODELS[0], template_prompt_name="extract_key_points", prompt_param_dict={"time": datetime.now().strftime("%Y%m%d"), "context": context, "content": content}, temperature=0.01, diff --git a/langchain-chat/server/chat/gen_abstract.py b/langchain-chat/server/chat/gen_abstract.py index 75111b2..0636b37 100644 --- a/langchain-chat/server/chat/gen_abstract.py +++ b/langchain-chat/server/chat/gen_abstract.py @@ -44,7 +44,7 @@ async def gen_abstract( try: article_abstract = get_llm_model_response( strategy_name="gen_abstract", - llm_model_name=LLM_MODELS[1], + llm_model_name=LLM_MODELS[0], template_prompt_name="gen_abstract", prompt_param_dict={ "context": context_summary, # 使用摘要或原文 diff --git a/langchain-chat/server/chat/gen_conclusion.py b/langchain-chat/server/chat/gen_conclusion.py index 320f82c..78e7b68 100644 --- a/langchain-chat/server/chat/gen_conclusion.py +++ b/langchain-chat/server/chat/gen_conclusion.py @@ -44,7 +44,7 @@ async def gen_conclusion( try: article_conclusion = get_llm_model_response( strategy_name="gen_conclusion", - llm_model_name=LLM_MODELS[1], + llm_model_name=LLM_MODELS[0], template_prompt_name="gen_conclusion", prompt_param_dict={ "context": context_summary, # 使用摘要或原文 diff --git a/langchain-chat/server/chat/gen_keywords.py b/langchain-chat/server/chat/gen_keywords.py index 4e436c2..425e6c7 100644 --- a/langchain-chat/server/chat/gen_keywords.py +++ b/langchain-chat/server/chat/gen_keywords.py @@ -43,7 +43,7 @@ async def gen_keywords( try: article_keywords = get_llm_model_response( strategy_name="gen_keywords", - llm_model_name=LLM_MODELS[1], + llm_model_name=LLM_MODELS[0], template_prompt_name="gen_keywords", prompt_param_dict={ "context": context_summary, # 使用摘要或原文 diff --git a/langchain-chat/server/chat/gen_paragraph.py b/langchain-chat/server/chat/gen_paragraph.py index 7767b75..160f623 100644 --- a/langchain-chat/server/chat/gen_paragraph.py +++ b/langchain-chat/server/chat/gen_paragraph.py @@ -44,7 +44,7 @@ async def gen_paragraph( try: article_paragraph = get_llm_model_response( strategy_name="gen_paragraph", - llm_model_name=LLM_MODELS[1], + llm_model_name=LLM_MODELS[0], template_prompt_name="gen_paragraph", prompt_param_dict={ "context": context_summary, # 使用摘要或原文 diff --git a/langchain-chat/server/chat/gen_title.py b/langchain-chat/server/chat/gen_title.py index 85bbb79..12aad06 100644 --- a/langchain-chat/server/chat/gen_title.py +++ b/langchain-chat/server/chat/gen_title.py @@ -19,7 +19,7 @@ async def gen_title( "content": "我们来玩成语接龙,我先来,生龙活虎"}, {"role": "assistant", "content": "虎头虎脑"}]] ), - model_name: Optional[str] = Body(LLM_MODELS[1], description="LLM 模型名称。"), + model_name: Optional[str] = Body(LLM_MODELS[0], description="LLM 模型名称。"), ): """ 根据一轮对话历史生成简洁标题\n @@ -32,7 +32,7 @@ async def gen_title( if model_name == "R1-70B": model_name = DEEPSEEK_MODELS[1] elif model_name == "QIANWEN": - model_name = LLM_MODELS[1] + model_name = LLM_MODELS[0] else: model_name = model_name diff --git a/langchain-chat/server/chat/knowledge_base_chat.py b/langchain-chat/server/chat/knowledge_base_chat.py index c772b73..6917928 100644 --- a/langchain-chat/server/chat/knowledge_base_chat.py +++ b/langchain-chat/server/chat/knowledge_base_chat.py @@ -138,7 +138,7 @@ async def knowledge_base_chat(query: str = Body(..., description="用户输入", if isinstance(max_tokens, int) and max_tokens <= 0: max_tokens = None if prompt_name == "policy_chat": - model_name = LLM_MODELS[1] + model_name = LLM_MODELS[0] model = get_ChatOpenAI( model_name=model_name, temperature=temperature, diff --git a/langchain-chat/server/chat/search_engine_chat.py b/langchain-chat/server/chat/search_engine_chat.py index e348868..54061d6 100644 --- a/langchain-chat/server/chat/search_engine_chat.py +++ b/langchain-chat/server/chat/search_engine_chat.py @@ -364,7 +364,7 @@ async def search_engine_chat(uid: Optional[str]=Body(None, description="userID") "content": "虎头虎脑"}]] ), stream: bool = Body(False, description="流式输出"), - model_name: str = Body(LLM_MODELS[1], description="LLM 模型名称。"), + model_name: str = Body(LLM_MODELS[0], description="LLM 模型名称。"), temperature: float = Body(TEMPERATURE, description="LLM 采样温度", ge=0.0, le=1.0), max_tokens: Optional[int] = Body(None, description="限制LLM生成Token数量,默认None代表模型最大值"), prompt_name: str = Body("default", @@ -483,7 +483,7 @@ async def search_engine_chat(uid: Optional[str]=Body(None, description="userID") search_engine_name: str, top_k: int, history: Optional[List[History]], - model_name: str = LLM_MODELS[1], + model_name: str = LLM_MODELS[0], prompt_name: str = prompt_name, kgo_search_type: str = kgo_search_type ) -> AsyncIterable[str]: diff --git a/langchain-chat/server/chat/self_kb_chat.py b/langchain-chat/server/chat/self_kb_chat.py index 245f300..3c76aa6 100644 --- a/langchain-chat/server/chat/self_kb_chat.py +++ b/langchain-chat/server/chat/self_kb_chat.py @@ -72,7 +72,7 @@ async def self_kb_chat( async def knowledge_base_chat_iterator( query: str, model_name: str = LLM_MODELS[0], - model_name1: str = LLM_MODELS[1], + model_name1: str = LLM_MODELS[0], prompt_name: str = "self_default", ) -> AsyncIterable[str]: nonlocal fileNames, history diff --git a/langchain-chat/server/knowledge_base/kb_doc_api.py b/langchain-chat/server/knowledge_base/kb_doc_api.py index 577ed59..212fb81 100644 --- a/langchain-chat/server/knowledge_base/kb_doc_api.py +++ b/langchain-chat/server/knowledge_base/kb_doc_api.py @@ -116,15 +116,16 @@ def search_self_docs( if top_k > 50: data = docs else: + # Milvus 已通过 expr 过滤了 source,无需再按 fileNames 二次过滤 + # (Milvus 的 source 可能是原始文件名,而 fileNames 是 embeddingId,格式不一致) data = [ DocumentWithVSId( - **{k: v for k, v in x[0].dict().items() if k != 'page_content'}, # 排除原有的 page_content + **{k: v for k, v in x[0].dict().items() if k != 'page_content'}, score=x[1], id=x[0].metadata.get("id"), - page_content=f"【^[{index +1}]^ {x[0].page_content}】 " # 拼接索引和page_content + page_content=f"【^[{index +1}]^ {x[0].page_content}】 " ) - for index, x in enumerate(docs) # 使用enumerate来获取索引 - if x[0].metadata.get("source") in flat_fileNames + for index, x in enumerate(docs) ] else: logger.warning(f"未找到知识库服务: {knowledge_base_name}")