|
|
@@ -265,6 +265,9 @@ class LLMSearchKnowledge:
|
|
|
Exception: 合并失败时抛出异常
|
|
|
"""
|
|
|
logger.info(f"[步骤3] 合并知识 - 共 {len(knowledge_texts)} 个文本")
|
|
|
+
|
|
|
+ if len(knowledge_texts) == 1:
|
|
|
+ return knowledge_texts[0]
|
|
|
|
|
|
# 尝试从缓存读取
|
|
|
if self.use_cache:
|
|
|
@@ -324,7 +327,7 @@ class LLMSearchKnowledge:
|
|
|
|
|
|
|
|
|
|
|
|
- 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:
|
|
|
"""
|
|
|
主方法:根据问题获取知识文本
|
|
|
|
|
|
@@ -350,7 +353,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)
|
|
|
@@ -375,7 +381,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:
|
|
|
"""
|
|
|
便捷函数:根据问题获取知识文本
|
|
|
|
|
|
@@ -387,7 +393,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__":
|