Files
AIRegulation-DocAnalysis/README.md
2026-04-28 11:29:33 +08:00

143 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI+合规智能中枢 - 法律法规文档解析入库
面向车企与工厂的合规智能平台,实现法规文档的解析、分块、嵌入和向量存储。
## MVP功能
本次实现的核心功能(最小可用版本):
- ✅ PDF/DOCX文档解析MinerU + PyMuPDF
- ✅ 智能分块(章节级+条款级双粒度切割)
- ✅ BGE-M3嵌入Dense+Sparse双路向量
- ✅ Milvus向量数据库存储与混合检索
- ✅ FastAPI接口封装
## 项目结构
```
Demo-glm/
├── src/
│ ├── api/ # FastAPI接口层
│ │ ├── main.py # API入口
│ │ ├── routes/
│ │ │ ├── documents.py # 文档上传接口
│ │ │ └── knowledge.py # 知识库检索接口
│ │ └── models/
│ │ └── document.py # Pydantic数据模型
│ ├── services/
│ │ ├── parser/ # 文档解析服务
│ │ │ ├── pdf_parser.py # PDF解析PyMuPDF
│ │ │ ├── docx_parser.py # Word解析
│ │ │ └── mineru_parser.py # MinerU多模态解析
│ │ ├── embedding/ # 嵌入服务
│ │ │ ├── text_chunker.py # 智能分块器
│ │ │ └── bge_m3_embedder.py # BGE-M3嵌入
│ │ ├── storage/
│ │ │ └── milvus_client.py # Milvus客户端
│ │ └── document_processor.py # 文档处理主流程
│ └── config/
│ │ ├── settings.py # 配置管理
│ │ └── logging.py # 日志配置
├── tests/
│ ├── test_parser.py # 解析测试
│ ├── test_embedding.py # 嵌入测试
│ ├── test_milvus.py # Milvus测试
│ └── verify_mvp.py # MVP验证脚本
├── docker/
│ └── docker-compose.yml # Milvus/MinIO部署
├── requirements.txt
├── pyproject.toml
└── .env.example
```
## 快速开始
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 启动Milvus向量数据库
```bash
cd docker
docker-compose up -d
```
等待Milvus启动完成约30秒
```bash
docker-compose logs -f milvus
```
### 3. 运行验证脚本
```bash
python tests/verify_mvp.py
```
### 4. 启动API服务
```bash
uvicorn src.api.main:app --reload --port 8000
```
访问API文档http://localhost:8000/docs
## API接口
### 上传文档
```bash
curl -X POST http://localhost:8000/api/v1/documents/upload \
-F "file=@your_regulation.pdf" \
-F "doc_name=GB 7258-2017" \
-F "regulation_type=车辆安全"
```
### 检索法规
```bash
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-M31024维 Dense + Sparse |
| 向量数据库 | Milvus 2.4本地Docker部署 |
| 检索方式 | Dense+Sparse混合检索 + RRF融合 |
| API框架 | FastAPI |
## 配置
创建 `.env` 文件(参考 `.env.example`
```env
# 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