🏛️ ToG 行业视频智能体 — AI RAG 知识库系统
面向 ToG 政府业务的行业视频监控 AI 智能体 + RAG 知识库系统 · 内网零外链部署 · 27 源文件 / ~11,000 行代码
📋 项目概览
面向 ToG(政府)业务方向,聚焦视频监控行业领域,构建一个基于大语言模型的 AI 智能体和 RAG 知识库系统。
核心协议覆盖:
- GAT1400 — 视频图像信息应用系统标准
- GB28181 — 视频监控联网系统信息传输/交换/控制标准
- 视频流媒体技术、SIP 协议、业务规范
部署要求:内网环境,零外网依赖 — 所有模型本地加载、Docker 内网仓库、pip 本地包。
💡 关键数字:开发耗时 ~25 分钟(4 轮 Claude Code + 2 轮直接编写)· 27 源文件 · ~11,000 行代码 · 交付物 113KB tar.gz
🏗️ 系统架构
┌─────────────────────────────────────────────────┐
│ FastAPI 服务层 │
│ /chat /health /ingest /stats │
├─────────────────────────────────────────────────┤
│ Agent 编排层 (Router) │
│ ┌───────────┬───────────┬───────────┐ │
│ │Protocol │ Video │Compliance │ │
│ │Expert │ Expert │Expert │ │
│ │GAT1400 │视频流诊断 │合规审计 │ │
│ │GB28181 │7种故障 │隐私/安全 │ │
│ └───────────┴───────────┴───────────┘ │
├─────────────────────────────────────────────────┤
│ 15 个 MCP Tools │
│ 协议工具 ×9 │ 视频流工具 ×4 │ 合规工具 ×4 │
│ RAG 检索工具 ×3 │
├─────────────────────────────────────────────────┤
│ RAG 检索引擎 (HybridRetriever) │
│ 稠密向量(BGE) + BM25稀疏 + RRF融合 + Reranker │
├─────────────────────────────────────────────────┤
│ 嵌入层(BGE-Large-ZH) │ 向量库(Milvus) │
│ 文档解析(条款感知) │ 本地 numpy 降级 │
└─────────────────────────────────────────────────┘
📅 4 Phase 开发记录
| Phase | 内容 | 方式 | 耗时 |
|---|---|---|---|
| 1 | 项目骨架 + 配置 + 文档解析器(条款感知分块) + 向量嵌入(BGE-Large-ZH) + 向量数据库(Milvus/本地降级) + RAG 混合检索引擎 | Claude Code ×3 | ~12 min |
| 2 | 15 个 MCP Tools(GAT1400 ×4, GB28181 ×5, 视频流 ×4, 合规审计 ×4, RAG ×3) | Claude Code | ~10 min |
| 3 | Agent 编排层:Router(关键词路由) + 3 个 Sub-Agent(协议/视频/合规) | Claude Code | ~5 min |
| 4 | FastAPI 服务层 + Docker 部署 + README 文档 | Claude Code | ~4 min |
| — | 最终验证 + 内网兼容审查 | 直接执行 | ~5 min |
📁 项目结构
tog-police-agent/
├── config.yaml # 主配置 (LLM/嵌入/向量库/RAG/Agent)
├── docker-compose.yml # 3 服务编排 (agent + milvus + etcd)
├── Dockerfile # python:3.10-slim 镜像
├── README.md # 完整中文文档
├── requirements.txt # Python 依赖
├── .env.example # 环境变量模板
│
├── src/
│ ├── parser/ # 文档解析+分块 (PDF/Word)
│ │ ├── pdf_parser.py # PDF 解析
│ │ ├── docx_parser.py # Word 解析
│ │ └── chunker.py # 条款感知智能分块
│ ├── embedding/ # 向量嵌入
│ │ └── embedder.py # BGE-Large-ZH (GPU/CPU自动检测)
│ ├── vectordb/ # 向量数据库
│ │ └── store.py # Milvus (自动降级 numpy+json)
│ ├── rag/ # RAG 检索引擎
│ │ ├── retriever.py # HybridRetriever (稠密+BM25+RRF)
│ │ └── reranker.py # bge-reranker 重排序
│ ├── tools/ # MCP Tools (15个)
│ │ ├── gat1400_tools.py # 4: 条款检索/错误码/请求生成/校验
│ │ ├── gb28181_tools.py # 5: SIP解析/设备编码/SDP分析/注册诊断/ONVIF
│ │ ├── video_stream_tools.py # 4: 流探测/播放诊断/协议对比/编码
│ │ ├── compliance_tools.py # 4: 加密/日志/敏感信息/等保
│ │ └── rag_tools.py # 3: 知识检索/案例检索/标准列表
│ ├── agents/ # Agent 编排
│ │ ├── router.py # 关键词路由 (3类×强弱权重)
│ │ ├── protocol_expert.py # GAT1400 + GB28181 协议专家
│ │ ├── video_expert.py # 视频流诊断专家
│ │ └── compliance_expert.py # 合规审计专家
│ └── api/ # FastAPI 服务
│ ├── server.py # 应用入口
│ └── routes.py # /chat /health /ingest /stats
│
└── scripts/
├── ingest_docs.py # 文档批量摄入
└── setup_db.py # 向量库初始化
🔧 核心技术选型
| 组件 | 技术 | 说明 |
|---|---|---|
| 大模型 | Qwen2.5-32B-AWQ (vLLM) | 可替换为任意 OpenAI 兼容端点 |
| 嵌入模型 | BAAI/bge-large-zh-v1.5 | 中文最优,1024 维向量 |
| 向量库 | Milvus → 降级 numpy | 主模式 Milvus,连接失败自动降级本地文件 |
| 混合检索 | 稠密(BGE) + BM25 + RRF | dense_weight=0.7, sparse_weight=0.3 |
| 重排序 | BAAI/bge-reranker-large | FlagEmbedding 优先,CrossEncoder 备选 |
| 分块策略 | clause_aware(条款感知) | 按标准章节/条款边界智能切割 |
| API 框架 | FastAPI | 4 端点:chat/health/ingest/stats |
| 部署 | Docker Compose | 3 服务:agent + milvus + etcd |
🔒 内网部署要点
项目经过内网兼容审查,24 处外链全部修复为零外网依赖:
| 外网依赖 | 内网替代方案 |
|---|---|
| HuggingFace 模型下载 | 设为本地路径 model_name: /path/to/local/model |
| Docker Hub 镜像 | 内网镜像仓库 registry.internal:5000/ |
| PyPI 源 | pip install -r requirements.txt --index-url http://internal-pypi/ |
| OpenAI API 端点 | 改为本地 vLLM LLM_API_BASE=http://vllm:8000/v1 |
🌐 API 端点
| 方法 | 路径 | 功能 |
|---|---|---|
| POST | /chat | RAG 对话 |
| GET | /health | 健康检查 |
| POST | /ingest | 文档摄入 |
| GET | /stats | 知识库统计 |
💡 关键设计决策
- 双层降级策略:Milvus → numpy,GPU → CPU,FlagEmbedding → CrossEncoder → 原排序,确保在任何环境下都能运行
- 条款感知分块:利用 GAT1400 和 GB28181 的层级编号结构(章/节/条),在条款边界处切分,保证检索到的片段语义完整
- RRF 融合排序:稠密向量(语义)+ BM25(关键词)权重可配,避免纯语义检索丢失精确关键词匹配
- 3 Agent 专项分工:协议专家(标准解答)、视频专家(故障排查)、合规专家(安全审计),路由基于关键词权重矩阵
🚀 快速部署
cd /home/ubuntu/tog-police-agent
# 方式一:直接运行
pip install -r requirements.txt
python scripts/setup_db.py
python scripts/ingest_docs.py
python src/api/server.py
# 方式二:Docker
docker-compose up -d
📦 交付物:tog-police-agent.tar.gz (113KB),解压即用,支持一键 Docker 部署。
标签:#AI #RAG #智能体 #ToG #视频监控 #MCP #FastAPI #内网部署 #教程