86b9ac806aaa5e326f528953f1a0ce3d6ab17e97
AI+合规智能中枢 - 法律法规文档解析入库
面向车企与工厂的合规智能平台,实现法规文档的解析、分块、嵌入和向量存储。
MVP功能
本次实现的核心功能(最小可用版本):
- ✅ PDF/DOCX文档解析(MinerU + PyMuPDF)
- ✅ 智能分块(章节级+条款级双粒度切割)
- ✅ BGE-M3嵌入(Dense+Sparse双路向量)
- ✅ Milvus向量数据库存储与混合检索
- ✅ FastAPI接口封装
项目结构
AIRegulation-DocAnalysis-Demo/
├── backend/
│ ├── app/
│ │ ├── api/ # FastAPI 接口层
│ │ ├── config/ # 配置与日志
│ │ ├── services/ # 解析、分块、嵌入、存储、Agent
│ │ └── workers/
│ ├── requirements.txt
│ └── main.py
├── frontend/ # Vite React 前端
├── tests/ # 根级测试,导入 backend/app
├── docker/
│ └── docker-compose.yml
├── pyproject.toml
└── .env.example
快速开始
1. 安装依赖
pip install -r backend/requirements.txt
2. 启动Milvus向量数据库
cd docker
docker-compose up -d
等待Milvus启动完成(约30秒):
docker-compose logs -f milvus
3. 运行验证脚本
python tests/verify_mvp.py
根级测试脚本会自动把 backend/ 加入导入路径,并从 app.* 加载当前后端代码。
4. 启动API服务
PYTHONPATH=backend uvicorn app.main:app --reload --port 8000
访问API文档:http://localhost:8000/docs
API接口
上传文档
curl -X POST http://localhost:8000/api/v1/documents/upload \
-F "file=@your_regulation.pdf" \
-F "doc_name=GB 7258-2017" \
-F "regulation_type=车辆安全"
检索法规
curl -X POST http://localhost:8000/api/v1/knowledge/search \
-H "Content-Type: application/json" \
-d '{"query": "机动车安全技术要求", "top_k": 10}'
技术栈
| 类别 | 技术 |
|---|---|
| 文档解析 | MinerU + PyMuPDF + python-docx |
| 分块策略 | 章节级+条款级双粒度切割 |
| 嵌入模型 | BGE-M3(1024维 Dense + Sparse) |
| 向量数据库 | Milvus 2.4(本地Docker部署) |
| 检索方式 | Dense+Sparse混合检索 + RRF融合 |
| API框架 | FastAPI |
配置
创建 .env 文件(参考 .env.example):
# Milvus配置
MILVUS_HOST=localhost
MILVUS_PORT=19530
# 嵌入模型配置
EMBEDDING_MODEL=BAAI/bge-m3
EMBEDDING_DIM=1024
# 分块配置
CHUNK_SIZE=512
后续迭代(不在本次MVP范围)
- LLM摘要生成(DeepSeek/Qwen API)
- 文档上传UI界面
- 混合检索问答功能
- 法规变更监控与自动更新
许可证
MIT License
Description
Languages
Python
50.1%
HTML
26.7%
TypeScript
16.2%
CSS
3.3%
Shell
1.7%
Other
2%