🎯 项目目标:构建“文本 + 表格”混合智能问答系统(Hybrid QA Agent)
该系统通过RAG 文本检索与ReAct 表格分析相结合,实现对应急管理领域数据(法规政策 + 企业数据 Excel/数据库)的问答与统计分析,支持复杂问题自动路由与多模态信息融合。
✅ 已实现从仅支持文本问答的 Baseline → 具备混合智能决策能力的增强版系统。
🧠 混合智能架构概览(新版)
| 模块 | 技术手段 | 作用 | 实现状态 |
|---|---|---|---|
| 文本问答 | RAG + LlamaIndex | 检索政策法规、技术文档 | ✅ 已集成 |
| 表格问答 | ReAct + Pandas | 自动生成 Python 代码分析 Excel | ✅ 已集成 |
| 自动路由器 | LLM + Tools调用 | 判断问题类型并调用对应Agent | ✅ 已实现 |
| 双模态融合 | LLM逻辑融合 | 同时调用文本+表格并综合分析 | ✅ 已实现 |
| 执行引擎 | Python执行环境 | 执行模型生成的代码(生产环境使用沙盒) | ✅ 已封装 |
🔍 系统工作机制(Hybrid Routing + ReAct)
🧭 路由逻辑
模型会自动判断问句属于:
| 问题类型 | 示例 | 调用模块 |
|---|---|---|
| 文本型问题 | “危险化学品使用许可证多久有效?” | Text-RAG |
| 数据统计型 | “2025年3月22日开停车企业数量?” | Tabular-ReAct |
| 混合型问题 | “涉及2-丙醇的企业数量及监管依据是什么?” | Dual-Mode 融合 |
🔧 工具调用(Tools)
call_text_rag → 调用文本检索引擎
call_tabular_agent → 生成Python代码分析Excel
call_dual_mode → 双模态协同
finish → 输出最终答案
📂 数据处理与增强功能
📄 文本处理(RAG)
- 使用
DocumentProcessor自动从 Word 文档中提取段落与表格并转为 Markdown - 构建向量索引用于高精度语义检索
- LlamaIndex统一管理 Text Index
📊 表格处理(ReAct)
- 利用 LLM 生成 Python Pandas 代码
- SafeCodeExecutor 执行,防越权+自动捕获结果
- 支持
.head(5)限制展示行数 - 多轮 ReAct 推理,直到完成推理链
🔧 核心流程图
用户问题
↓
[Hybrid Router (LLM)]
↓
┌─────────────┬─────────────────┬────────────────┐
| Text RAG | Tabular ReAct | Dual Mode |
└─────────────┴─────────────────┴────────────────┘
↓
信息汇总与融合
↓
finish 输出答案
✨ 已实现的重要能力
| 能力 | 描述 | 成果 |
|---|---|---|
| 自动识别问题意图 | 能判断自然语言问题来源于文本还是结构化数据 | ✅ |
| 自动生成数据分析代码 | 模型自动写 Python 代码完成过滤/分组/统计计算 | ✅ |
| 表格结构感知 | 能读取 DOCX 中的表结构说明并理解字段含义 | ✅ |
| 路由 + 多模态融合 | 支持双模态融合,输出包含数据结果 + 法规依据 | ✅ |
| 安全执行(并不十分安全) | 限制执行环境,仅允许 pd/os/json 等模块 | ❗ |
🤔 下一步优化方向
| 改进方向 | 技术方案 | 优先级 |
|---|---|---|
| ✅ 简洁代码实现 | 使用pydantic_ai等框架实现agent | ⭐⭐⭐ |
| ✅ 异步重构 | 异步实现逻辑,增强问题回答并发能力 | ⭐⭐ |
✅ 新阶段总结
本系统已经从“单一文本问答”进化为真正意义上的“决策型智能体”,能够根据问题类型自动切换 RAG 和 ReAct 模式,甚至融合两种数据源共同推理。这种架构是应急管理智能系统的核心竞争力。