fix: 修复 RAG 无限循环问题和导入错误
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Has been cancelled

主要修复:
1. 修复 RAG 推理无限循环问题(大小写不匹配 + 缺少已检索结果检查)
2. 修复 intent_classifier.py 的绝对导入错误
3. 删除旧的 start.sh 脚本,添加新的启动脚本
4. 优化路由逻辑和状态管理
This commit is contained in:
2026-05-04 18:59:15 +08:00
parent 9841f47432
commit c9bf21be0e
13 changed files with 503 additions and 164 deletions

View File

@@ -7,14 +7,14 @@ import json
import asyncio
# 本地模块
from app.main_graph.utils.main_graph_builder import build_react_main_graph
from app.main_graph.tools.graph_tools import AVAILABLE_TOOLS, TOOLS_BY_NAME
from app.main_graph.config import set_stream_writer
from ..main_graph.utils.main_graph_builder import build_react_main_graph
from ..main_graph.tools.graph_tools import AVAILABLE_TOOLS, TOOLS_BY_NAME
from ..main_graph.config import set_stream_writer
from ..model_services.chat_services import get_all_chat_services, LocalVLLMChatProvider
from app.main_graph.utils.rag_initializer import init_rag_tool
from app.core.intent_classifier import get_intent_classifier
from app.logger import info, warning, error
from app.main_graph.state import MainGraphState, CurrentAction
from ..main_graph.utils.rag_initializer import init_rag_tool
from ..core.intent_classifier import get_intent_classifier
from ..logger import info, warning, error
from ..main_graph.state import MainGraphState, CurrentAction
class AIAgentService:
@@ -32,7 +32,7 @@ class AIAgentService:
async def initialize(self):
# 0. 初始化 Mem0 客户端
from app.memory.mem0_client import Mem0Client
from ..memory.mem0_client import Mem0Client
# 创建一个临时的 LLM 用于 Mem0用第一个可用的
chat_services = get_all_chat_services()
temp_llm = None
@@ -49,7 +49,7 @@ class AIAgentService:
self.tools.append(rag_tool)
self.tools_by_name[rag_tool.name] = rag_tool
# 关键:设置全局 RAG 工具,供 rag_nodes.py 使用
from app.main_graph.nodes.rag_nodes import set_global_rag_tool
from ..main_graph.nodes.rag_nodes import set_global_rag_tool
set_global_rag_tool(rag_tool)
# 2. 构建各模型的 Graph使用新版 React 模式)
@@ -86,7 +86,7 @@ class AIAgentService:
"metadata": {"user_id": user_id}
}
# 新版状态输入:传入完整的 MainGraphState关键是 user_query
from app.main_graph.state import MainGraphState, CurrentAction
from ..main_graph.state import MainGraphState, CurrentAction
input_state = {
"user_query": message,
"messages": [{"role": "user", "content": message}],