# 多意图识别 RAG 系统实现总结 ## 概述 本次实现为 Agentic RAG 系统添加了多意图识别功能,支持两种主要意图类型的自动分类和路由: 1. **Standard_Regulation_RAG**: 标准法规查询 2. **User_Manual_RAG**: 用户手册查询 ## 技术实现 ### 1. 状态扩展 更新了 `AgentState` 和相关状态类,添加了 `intent` 字段: ```python class AgentState(MessagesState): """Enhanced LangGraph state with session support and tool results""" session_id: str intent: Optional[Literal["Standard_Regulation_RAG", "User_Manual_RAG"]] tool_results: Annotated[List[Dict[str, Any]], lambda x, y: (x or []) + (y or [])] final_answer: str tool_rounds: int max_tool_rounds: int ``` ### 2. 意图识别节点 实现了 `intent_recognition_node` 函数,使用 LLM 结合上下文进行智能意图分类: ```python async def intent_recognition_node(state: AgentState, config: Optional[RunnableConfig] = None) -> Dict[str, Any]: """ Intent recognition node that uses LLM to classify user queries into specific domains """ ``` **关键特性**: - 使用结构化输出确保分类准确性 - 结合对话历史上下文进行判断 - 支持中英文查询 - 出错时默认路由到 Standard_Regulation_RAG ### 3. 用户手册 RAG 节点 实现了专门的 `user_manual_rag_node`,处理用户手册相关查询: ```python async def user_manual_rag_node(state: AgentState, config: Optional[RunnableConfig] = None) -> Dict[str, Any]: """ User Manual RAG node that retrieves user manual content and generates responses """ ``` **功能特点**: - 直接调用 `retrieve_system_usermanual` 工具 - 支持流式响应生成 - 专业的用户手册回答模板 - 单轮对话处理(直接到 END) ### 4. 图结构重构 更新了 LangGraph 工作流,添加了意图路由: ``` START → intent_recognition → [intent_router] → { "Standard_Regulation_RAG": agent → tools → post_process → END "User_Manual_RAG": user_manual_rag → END } ``` **新增组件**: - `intent_recognition` 节点:入口意图识别 - `intent_router` 函数:基于意图结果的条件路由 - `user_manual_rag` 节点:专门处理用户手册查询 ### 5. 工具组织优化 将用户手册工具分离到专门模块: - `service/graph/tools.py`: 标准法规检索工具 - `service/graph/user_manual_tools.py`: 用户手册检索工具 ## 意图分类逻辑 ### Standard_Regulation_RAG 识别查询内容: - 中国制造业标准、法规、规范 - 汽车行业标准、安全规范 - 技术规范、质量标准 - 法律法规、政策文件 - 例如:GB/T、ISO标准、行业规范等 ### User_Manual_RAG 识别查询内容: - 如何使用 CATOnline 系统 - 系统功能操作指导 - 用户界面使用方法 - 系统配置、设置相关问题 - 例如:搜索、登录、功能介绍等 ## 测试验证 创建了完整的测试套件: 1. **意图识别测试** (`scripts/test_intent_recognition.py`) - 测试多种查询的意图分类准确性 - 验证中英文查询支持 - 测试用户手册 RAG 功能 2. **端到端工作流测试** (`scripts/test_multi_intent_workflow.py`) - 完整工作流验证 - 多会话支持测试 - 流式处理验证 ## 测试结果 意图识别准确率:**100%** 测试用例全部通过: - ✅ 汽车安全标准查询 → Standard_Regulation_RAG - ✅ ISO 标准查询 → Standard_Regulation_RAG - ✅ CATOnline 搜索功能 → User_Manual_RAG - ✅ 系统登录方法 → User_Manual_RAG - ✅ 用户管理功能 → User_Manual_RAG ## 核心优势 1. **智能路由**: 基于 LLM 的上下文感知意图识别 2. **多轮对话支持**: 两种意图都保持完整的会话记忆 3. **模块化设计**: 清晰分离不同领域的工具和处理逻辑 4. **向后兼容**: 原有的标准法规查询功能完全保持 5. **实时流式**: 所有路径都支持流式响应 6. **错误容错**: 意图识别失败时的优雅降级 ## 技术架构 ``` ┌─────────────────┐ │ User Query │ └─────────┬───────┘ │ ┌──────▼──────┐ │Intent │ │Recognition │ │(LLM-based) │ └──────┬──────┘ │ ┌─────▼─────┐ │Intent │ │Router │ └─────┬─────┘ │ ┌─────▼─────┐ │ Branch │ └─────┬─────┘ │ ┌────▼────┐ │Standard │ │User Manual│ │RAG Path │ │RAG Path │ │(Multi- │ │(Single │ │round) │ │round) │ └─────────┘ └───────────┘ ``` ## 配置要求 无需额外配置更改,使用现有的: - LLM 配置(支持结构化输出) - 检索 API 配置 - PostgreSQL 内存配置 ## 部署说明 1. 确保 `user_manual_tools.py` 模块正确导入 2. 验证用户手册检索索引配置 3. 测试意图识别准确性 4. 监控两种路径的性能表现 ## 未来扩展 1. **更多意图类型**: 可以轻松添加新的意图分类 2. **意图置信度**: 支持意图识别的置信度评分 3. **混合查询**: 支持单次查询包含多种意图 4. **个性化意图**: 基于用户历史的个性化意图识别 --- *实现时间: 2025-08-28* *技术栈: LangGraph v0.6+, LangChain, OpenAI API*