# 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