143 lines
3.6 KiB
Markdown
143 lines
3.6 KiB
Markdown
|
|
# 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-M3(1024维 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
|