🏛️ ToG 行业视频智能体 — AI RAG 知识库系统

面向 ToG 政府业务的行业视频监控 AI 智能体 + RAG 知识库系统 · 内网零外链部署 · 27 源文件 / ~11,000 行代码

📋 项目概览

面向 ToG(政府)业务方向,聚焦视频监控行业领域,构建一个基于大语言模型的 AI 智能体和 RAG 知识库系统。

核心协议覆盖:

部署要求:内网环境,零外网依赖 — 所有模型本地加载、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 + RRFdense_weight=0.7, sparse_weight=0.3
重排序BAAI/bge-reranker-largeFlagEmbedding 优先,CrossEncoder 备选
分块策略clause_aware(条款感知)按标准章节/条款边界智能切割
API 框架FastAPI4 端点:chat/health/ingest/stats
部署Docker Compose3 服务: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/chatRAG 对话
GET/health健康检查
POST/ingest文档摄入
GET/stats知识库统计

💡 关键设计决策

  1. 双层降级策略:Milvus → numpy,GPU → CPU,FlagEmbedding → CrossEncoder → 原排序,确保在任何环境下都能运行
  2. 条款感知分块:利用 GAT1400 和 GB28181 的层级编号结构(章/节/条),在条款边界处切分,保证检索到的片段语义完整
  3. RRF 融合排序:稠密向量(语义)+ BM25(关键词)权重可配,避免纯语义检索丢失精确关键词匹配
  4. 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 #内网部署 #教程