feat(knowledge): 优化知识库返回结构和集成流程

- 重构QAManager.get_knowledge()返回结构化字典包含知识项和摘要
- 在bot.py中添加initialize_lpmm_knowledge()初始化调用
- 更新Prompt类知识库集成逻辑,改进错误处理
- 优化lpmm知识工具显示格式,增强用户体验
- 调整异步任务基础超时时间从10秒增至20秒
This commit is contained in:
tt-P607
2025-09-15 16:47:33 +08:00
committed by Windpicker-owo
parent e38feacda9
commit e6d5c405ba
4 changed files with 63 additions and 43 deletions

View File

@@ -369,7 +369,7 @@ class Prompt:
task_names.append("cross_context")
# 性能优化
base_timeout = 10.0
base_timeout = 20.0
task_timeout = 2.0
timeout_seconds = min(
max(base_timeout, len(tasks) * task_timeout),
@@ -676,22 +676,21 @@ class Prompt:
return {"knowledge_prompt": ""}
try:
from src.chat.knowledge.knowledge_lib import QAManager
from src.chat.knowledge.knowledge_lib import qa_manager
# 获取问题文本(当前消息)
question = self.parameters.target or ""
if not question:
return {"knowledge_prompt": ""}
# 创建QA管理器
qa_manager = QAManager()
# 检查QA管理器是否已成功初始化
if not qa_manager:
logger.warning("QA管理器未初始化 (可能lpmm_knowledge被禁用),跳过知识库搜索。")
return {"knowledge_prompt": ""}
# 搜索相关知识
knowledge_results = await qa_manager.get_knowledge(
question=question,
chat_id=self.parameters.chat_id,
max_results=5,
min_similarity=0.5
question=question
)
# 构建知识块
@@ -704,13 +703,10 @@ class Prompt:
relevance = item.get("relevance", 0.0)
if content:
if source:
knowledge_parts.append(f"- [{relevance:.2f}] {content} (来源: {source})")
else:
knowledge_parts.append(f"- [{relevance:.2f}] {content}")
knowledge_parts.append(f"- [相关度: {relevance}] {content}")
if knowledge_results.get("summary"):
knowledge_parts.append(f"\n知识总结: {knowledge_results['summary']}")
if summary := knowledge_results.get("summary"):
knowledge_parts.append(f"\n知识总结: {summary}")
knowledge_prompt = "\n".join(knowledge_parts)
else: