first commit

This commit is contained in:
2026-04-23 09:58:47 +08:00
commit 448e078d99
49 changed files with 5188 additions and 0 deletions

263
01_技术架构详解.md Normal file
View File

@@ -0,0 +1,263 @@
# AI合规智能中枢 — 技术架构详解
> 本文档对应架构文档:`01_分层次技术架构图.html` 和 `02_详细技术架构图.html`
---
## 一、六层架构总览
```
┌──────────────────────────────────────────────────────────────────┐
│ L1 应用接入层Web / Mobile / Bot / API Gateway / RBAC │
├──────────────────────────────────────────────────────────────────┤
│ L2 业务能力层:知识库问答 / 文档审查 / EHS / 法规监控 / 推荐 │
├──────────────────────────────────────────────────────────────────┤
│ L3 法规感知层:监控 → 感知 → 解析 → 图谱 → 分析 → 闭环 │
├──────────────────────────────────────────────────────────────────┤
│ L4 AI引擎层RAG / LLM / 文档解析 / 知识图谱推理 / NLP │
├──────────────────────────────────────────────────────────────────┤
│ L5 数据知识层Milvus / PostgreSQL / Neo4j / Redis / 知识库 │
├──────────────────────────────────────────────────────────────────┤
│ L6 基础设施层:安全治理 / 容器编排 / 运维观测 / CI/CD │
└──────────────────────────────────────────────────────────────────┘
```
---
## 二、六大微服务详解
### 2.1 kbmp-service知识库公开接口
**职责:** 知识库的统一入口,处理文件上传、检索编排、任务投递。
**核心接口:**
| 方法 | 路径 | 功能 |
|------|------|------|
| POST | `/workspace/create` | 创建知识库工作空间 |
| POST | `/files/upload` | 上传文件(触发解析任务) |
| POST | `/files/parse` | 手动触发解析 |
| POST | `/knowledge/retrieval` | 混合检索BM25 + 向量)|
| POST | `/chunks/recall` | 原始 Chunk 召回 |
| POST | `/qa` | 检索 + LLM 问答生成 |
**内部流程:**
```
文件上传 → 存储 data/uploads → 投递 Celery 任务parse-queue
→ parse-worker 调用 mcp-server 解析
→ vectorize-worker 调用 embedding-service 向量化
→ 写入 Milvus向量+ PostgreSQL元数据
```
---
### 2.2 mcp-server文档解析服务
**职责:** 将 PDF/Word/Excel 等文档转换为结构化 Markdown供后续向量化。
**核心接口:**
| 方法 | 路径 | 功能 |
|------|------|------|
| POST | `/parse-document` | 通用解析(自动选择引擎)|
| POST | `/mineru-parse` | MinerU 精准解析 |
| GET | `/health` | 健康检查 |
**解析策略(降级链):**
```
1. 阿里云文档解析 API云端高精度→ [调研版暂不启用]
2. MinerU本地GPU/CPU 均支持)→ 主用
3. python-docx / PyMuPDF纯文本降级→ 兜底
```
**MinerU 特性:**
- GPU 最快0.21 秒/页
- CPU 模式:约 3-5 秒/页(调研阶段可接受)
- 支持 109 种语言 OCR
- 布局感知:区分正文/标题/表格/图片/页眉页脚
- 输出格式Markdown + JSON含结构化元数据
---
### 2.3 合规业务后端compliance-backend
**职责:** 核心业务逻辑,整合三条闭环的业务处理。
**核心接口:**
| 方法 | 路径 | 功能 |
|------|------|------|
| POST | `/compliance/upload` | 上传待审查文档 |
| POST | `/compliance/check` | 智能合规审查 |
| GET | `/compliance/report/{id}` | 获取审查报告 |
| POST | `/compliance/regulations/download` | 下载法规 |
| POST | `/compliance/regulations/update` | 更新法规版本 |
| POST | `/compliance/access-control` | 权限分级管理 |
| POST | `/compliance/subscribe` | 订阅变更推送 |
---
### 2.4 法规感知引擎Regulation Awareness Engine
**职责:** 定时监控法规源,自动检测变更,触发增量更新。
**六步感知闭环:**
```
① 法规源监控
- 定时抓取国家标准委、工信部、UN-ECE、EUR-Lex、碳交易平台
- 技术requests + BeautifulSoup + Playwright动态页面
② 智能变更感知
- Hash 对比(快速过滤)
- NLP 版本 Diff精确识别新增/修订/废止条款)
③ 自动解析入库
- MinerU 解析 → 条款级分割
- BGE-M3 向量化 → Milvus + PostgreSQL
④ 知识图谱同步
- Neo4j 更新:法规-条款-义务关系
- 影响分析:哪些企业文档受影响
⑤ 差距分析
- AI 比对企业现状 vs 新法规要求
- 生成差距报告
⑥ 推送与整改触发
- 按角色推送(研发/EHS/采购/法务)
- 自动生成整改任务
```
---
### 2.5 AI 推理引擎AI Inference Engine
**职责:** 混合检索、精排、LLM 生成、知识图谱推理。
**混合检索流程:**
```
用户查询
├─► BGE-M3 向量化Dense 1024维
│ │
│ └─► Milvus ANN 检索HNSWCosine 相似度)
├─► BM25 关键词检索(稀疏向量/倒排索引)
└─► 结果融合RRF 排名融合)
Cross-Encoder Reranker精排 Top-K
LLM 生成DeepSeek API
- System Prompt引文锚定要求
- 输出:答案 + 原文引用 + 来源文档 + 页码
```
**BGE-M3 三种向量输出:**
- **Dense Vector**1024维语义相似度主要用于向量检索
- **Sparse Vector**(词汇权重):关键字匹配,等效 BM25
- **Multi-Vector**ColBERT 风格):精细粒度 token 级匹配
---
### 2.6 Worker 集群
**职责:** 异步任务处理,解耦主服务压力。
**Worker 类型:**
| Worker | 队列 | 职责 |
|--------|------|------|
| parse-worker | `parse` | 调用 mcp-server 解析文档 |
| vectorize-worker | `vectorize` | BGE-M3 向量化 + Milvus 写入 |
| compliance-worker | `compliance` | 合规比对 + 风险评分 |
| monitor-worker | `monitor` | 法规源定时抓取 |
| push-worker | `push` | 推送通知Email/Webhook|
**调度配置Celery Beat**
```python
CELERY_BEAT_SCHEDULE = {
"regulation-monitor": {
"task": "app.worker.fetch_regulation_updates",
"schedule": crontab(hour=2, minute=0), # 每天凌晨2点
},
"push-notifications": {
"task": "app.worker.send_pending_notifications",
"schedule": crontab(minute="*/30"), # 每30分钟
},
}
```
---
## 三、数据模型
### 3.1 PostgreSQL 表结构
```
workspaces → 知识库工作空间
files → 上传文件记录(含解析状态)
tasks → 异步任务状态追踪
compliance_reports → 合规审查报告
regulation_sources → 法规监控源配置
regulation_updates → 法规变更记录
subscriptions → 推送订阅配置
audit_logs → 全链路审计日志
```
### 3.2 Milvus Collection 结构
```python
# regulation_chunks / doc_chunks / case_library 共用相同 Schema
fields = [
FieldSchema("id", VARCHAR, primary_key=True),
FieldSchema("file_id", VARCHAR), # 关联文件
FieldSchema("workspace_id", VARCHAR), # 所属工作空间
FieldSchema("chunk_idx", INT64), # 块序号
FieldSchema("content", VARCHAR(65535)), # 原文内容
FieldSchema("dense_vec", FLOAT_VECTOR(1024)), # BGE-M3 向量
FieldSchema("metadata", JSON), # 扩展元数据
]
# 索引HNSWCosine 相似度M=16efConstruction=200
```
### 3.3 Neo4j 图模型
```cypher
// 节点类型
(:Regulation {id, title, code, version, domain, effective_date})
(:Clause {id, number, content, clause_type})
(:Obligation {id, description, obligation_type, subject})
(:Enterprise {id, name, industry})
(:RiskItem {id, description, severity, domain})
(:Domain {name, label})
// 关系类型
(Regulation)-[:CONTAINS]->(Clause)
(Clause)-[:REQUIRES]->(Obligation)
(Regulation)-[:SUPERSEDES]->(Regulation) // 版本替代
(Clause)-[:MAPS_TO]->(RiskItem)
(Enterprise)-[:SUBJECT_TO]->(Regulation)
```
---
## 四、核心技术栈版本锁定
| 组件 | 版本 | Docker 镜像 |
|------|------|------------|
| PostgreSQL | 16 + pgvector | `pgvector/pgvector:pg16` |
| Redis | 7.x | `redis:7-alpine` |
| Milvus | 2.4.13 | `milvusdb/milvus:v2.4.13` |
| Neo4j | 5.20 Community | `neo4j:5.20-community` |
| BGE-M3 | 最新 | BAAI/bge-m3HuggingFace|
| MinerU | 1.x | opendatalab/MinerUpip|
| LangChain | 0.3+ | pip install langchain>=0.3 |
| FastAPI | 0.115+ | pip install fastapi>=0.115 |
| Celery | 5.4+ | pip install celery[redis]>=5.4 |
| Python | 3.12 | python:3.12-slimDocker|
| Nginx | 1.25 | `nginx:1.25-alpine` |