Initial: integrated 2025 LawGraph (graphrag_pipeline) + 2026 kg_project

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 10:13:39 +08:00
commit 6c1a69af0d
83 changed files with 14295 additions and 0 deletions
@@ -0,0 +1,199 @@
# 系统架构文档
## 整体架构
本系统采用模块化设计,参考GraphRAG的实现思路,实现法规知识图谱的构建、分析和查询。
## 核心模块说明
### 1. 文本预处理模块 (`src/preprocessing/`)
**职责**:处理法规文档,为知识抽取做准备
- `TextProcessor`: 使用HanLP进行中文文本处理
- 分词(粗粒度/细粒度)
- 依存句法分析
- 句法成分分析
- 词性标注
- 省略检测
- 共指消解候选提取
- `DocumentParser`: 解析Word文档
- .docx文件解析
- 章节结构识别
- TextUnit切分(参考GraphRAG
### 2. 本体模型模块 (`src/ontology/`)
**职责**:定义知识图谱的语义结构
- `EntityType`: 9种实体类型枚举
- `RelationType`: 8种关系类型枚举
- `OntologySchema`: 三维本体结构管理
- 法规层级维度
- 要素类型维度
- 关联关系维度
- 四要素架构(目标—原则—要素—管控)
### 3. Prompt模板模块 (`src/prompts/`)
**职责**:构建统一的Prompt模板系统
- `PromptTemplate`: 统一模板框架
- 任务描述模块
- 候选目标模块
- 任务示例模块(少样本学习)
- 任务强调模块
- 二次对话模块
- `NERPromptBuilder`: NER任务Prompt构建
- `REPromptBuilder`: RE任务Prompt构建
### 4. 知识抽取模块 (`src/extraction/`)
**职责**:从文本中提取结构化知识
- `NERExtractor`: 命名实体识别
- 使用Qwen-Max模型
- 两阶段对话验证
- JSON格式输出
- `REExtractor`: 关系抽取
- 多模型并行(GPT-4o, Doubao-pro, GLM-4
- 二次对话验证
- 句法信息集成
- 上下文利用
- `TripletEvaluator`: 三元组评估
- LLM-as-a-Judge方法
- 成对排序
- 五维度评分(语义准确性、一致性、事实性、准确性、可理解性)
- 低质量三元组筛选
- `EntityRelationClassifier`: 实体关系分类
- RAG-based分类(使用向量检索)
- Prompt-based分类
- 粗粒度和细粒度分类
### 5. 知识图谱构建模块 (`src/kg_builder/`)
**职责**:构建和管理知识图谱(参考GraphRAG)
- `GraphIndexer`: 图谱索引器
- 文本切分为TextUnit
- 实体和关系提取
- 图构建
- 社区检测(Leiden算法)
- 社区摘要生成
- `KnowledgeGraph`: 图谱结构管理
- 基于NetworkX
- 三元组添加
- 路径查询
- 子图提取
- 保存/加载
### 6. 分析和推理模块 (`src/analysis/`)
**职责**:分析法规体系和识别规律
- `LegalStructureExtractor`: 法理结构提取
- 四要素提取(目标、原则、要素、管控)
- 跨法规引用关系提取
- 例外条款识别
- `LegalReasoner`: 逻辑推理
- 路径查询(多跳关系)
- 中心性分析
- 子图分析
- `EvolutionAnalyzer`: 演化规律识别
- 时间维度分析
- 关系演化追踪
- 网络演化分析
### 7. 查询系统模块 (`src/query/`)
**职责**:知识图谱查询和问答(参考GraphRAG)
- `GlobalSearcher`: 全局搜索
- 利用社区摘要
- 相关性评估
- 综合答案生成
- `LocalSearcher`: 局部搜索
- 实体邻居扩展
- 深度控制
- 子图提取
- `DriftSearcher`: DRIFT搜索
- 结合局部和全局信息
- 社区上下文整合
- 综合答案生成
### 8. 工具模块 (`src/utils/`)
**职责**:提供通用工具函数
- `Config`: 配置管理
- 环境变量加载
- API密钥管理
- 参数配置
- `LLMClient`: LLM客户端封装
- 多提供商支持
- 统一API接口
- 异步/同步支持
- 重试机制
- `file_utils`: 文件操作工具
## 数据流
```
法规文档(.docx)
DocumentParser (解析)
TextUnit列表
TextProcessor (预处理) + NERExtractor (实体识别)
实体列表
REExtractor (关系抽取) + TextProcessor (句法信息)
三元组列表
TripletEvaluator (评估筛选)
高质量三元组
GraphIndexer (图构建)
KnowledgeGraph
社区检测 + 摘要生成
完整知识图谱 + 社区信息
Query系统 (查询和问答)
```
## 技术栈
- **语言**: Python 3.12+
- **包管理**: uv
- **NLP**: HanLP
- **图处理**: NetworkX, python-igraph
- **LLM**: OpenAI, Anthropic, Qwen, Doubao, GLM
- **数据处理**: pandas, numpy
## 参考实现
- GraphRAG: https://msdocs.cn/graphrag/
- 论文方法: `officefile/paper.tex`