liuzhiheng 6 часов назад
Родитель
Сommit
e711d9a868
1 измененных файлов с 11 добавлено и 5 удалено
  1. 11 5
      knowledge_v2/llm_search_knowledge.py

+ 11 - 5
knowledge_v2/llm_search_knowledge.py

@@ -245,6 +245,9 @@ class LLMSearchKnowledge:
             Exception: 合并失败时抛出异常
         """
         logger.info(f"[步骤3] 合并知识 - 共 {len(knowledge_texts)} 个文本")
+
+        if len(knowledge_texts) == 1:
+            return knowledge_texts[0]
         
         # 尝试从缓存读取
         if self.use_cache:
@@ -296,7 +299,7 @@ class LLMSearchKnowledge:
             logger.error(f"✗ 合并知识文本失败: {e}")
             raise
     
-    def get_knowledge(self, question: str, cache_key: str = None) -> str:
+    def get_knowledge(self, question: str, cache_key: str = None, need_generate_query: bool = True) -> str:
         """
         主方法:根据问题获取知识文本
         
@@ -319,7 +322,10 @@ class LLMSearchKnowledge:
             logger.info(f"{'='*60}")
             
             # 步骤1: 生成多个query
-            queries = self.generate_queries(actual_cache_key)
+            if need_generate_query:
+                queries = self.generate_queries(actual_cache_key)
+            else:
+                queries = [question]
             
             # 步骤2: 对每个query搜索知识
             knowledge_texts = self.search_knowledge_batch(actual_cache_key, queries)
@@ -337,7 +343,7 @@ class LLMSearchKnowledge:
             raise
 
 
-def get_knowledge(question: str, cache_key: str = None) -> str:
+def get_knowledge(question: str, cache_key: str = None, need_generate_query: bool = True) -> str:
     """
     便捷函数:根据问题获取知识文本
     
@@ -349,7 +355,7 @@ def get_knowledge(question: str, cache_key: str = None) -> str:
         str: 最终的知识文本
     """
     agent = LLMSearchKnowledge()
-    return agent.get_knowledge(question, cache_key=cache_key)
+    return agent.get_knowledge(question, cache_key=cache_key, need_generate_query=need_generate_query)
 
 
 if __name__ == "__main__":
@@ -357,7 +363,7 @@ if __name__ == "__main__":
     test_question = "关于猫咪和墨镜的服装造型元素"
     
     try:
-        result = get_knowledge(test_question)
+        result = get_knowledge(question=test_question, need_generate_query=False)
         print("=" * 50)
         print("最终知识文本:")
         print("=" * 50)