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
+147
View File
@@ -0,0 +1,147 @@
# 项目实现状态
## 已完成工作 ✅
### 1. 项目基础架构
- ✅ 使用uv进行项目管理和依赖管理
- ✅ 完整的项目目录结构
- ✅ 配置文件(pyproject.toml, .env.example
- ✅ README和项目文档
### 2. 文本预处理模块 (`src/preprocessing/`)
-**TextProcessor**: HanLP集成,支持分词、依存句法、句法成分分析
-**DocumentParser**: Word文档解析(.docx),支持章节结构识别
- ✅ TextUnit切分功能(参考GraphRAG
### 3. 本体模型定义 (`src/ontology/`)
-**实体类型定义**: 9种实体类型(对应论文Table 1)
-**关系类型定义**: 8种关系类型(对应论文Table 2)
-**三维本体结构**: 法规层级—要素类型—关联关系
-**四要素架构**: 目标—原则—要素—管控
-**OntologySchema**: 本体模式管理和验证
### 4. Prompt模板系统 (`src/prompts/`)
-**PromptTemplate**: 统一模板框架,实现五个模块:
- 任务描述(系统消息+用户消息)
- 候选目标
- 任务示例(少样本学习)
- 任务强调
- 二次对话
-**NERPromptBuilder**: NER任务Prompt构建
-**REPromptBuilder**: RE任务Prompt构建
### 5. LLM客户端封装 (`src/utils/llm_client.py`)
- ✅ 支持多个LLM提供商:
- OpenAI (GPT-4o)
- Anthropic (Claude)
- 阿里云Qwen
- 字节跳动Doubao
- 智谱GLM
- ✅ 统一API接口
- ✅ 异步/同步支持
- ✅ 重试机制(tenacity
### 6. 知识抽取模块 (`src/extraction/`)
-**NERExtractor**: 使用Qwen-Max进行实体识别,支持两阶段对话验证
-**REExtractor**: 多模型并行关系抽取框架
-**TripletEvaluator**: LLM-as-a-Judge评估框架
-**EntityRelationClassifier**: RAG-based分类框架
### 7. 知识图谱构建 (`src/kg_builder/`)
-**GraphIndexer**: 索引器框架(参考GraphRAG
- 文本切分
- 实体提取
- 图构建
- 社区检测(待完善)
- 摘要生成(待完善)
-**KnowledgeGraph**: 图谱结构管理(NetworkX
### 8. 分析和推理模块 (`src/analysis/`)
-**LegalStructureExtractor**: 法理结构提取(四要素识别、跨法规引用)
-**LegalReasoner**: 逻辑推理(路径查询、中心性分析)
-**EvolutionAnalyzer**: 演化规律分析框架
### 9. 查询系统 (`src/query/`)
-**GlobalSearcher**: 全局搜索框架(参考GraphRAG)
-**LocalSearcher**: 局部搜索框架
-**DriftSearcher**: DRIFT搜索框架
### 10. 工具脚本
-`scripts/extract.py`: 知识抽取示例脚本
## 待完善功能 ⚠️
### 高优先级
1. **三元组评估算法实现** (`src/extraction/evaluator.py`)
- 成对排序逻辑
- 五维度评分(语义准确性、一致性、事实性、准确性、可理解性)
- 评分聚合和筛选
2. **RAG-based分类实现** (`src/extraction/classifier.py`)
- 向量嵌入(使用Text-embedding-3-large
- 向量数据库(相似度检索)
- 分类逻辑完善
3. **知识图谱构建完整实现** (`src/kg_builder/indexer.py`)
- 完整的三元组提取流程
- 社区检测(Leiden算法,需要igraph
- 社区摘要生成(使用LLM
4. **RE提取器完善** (`src/extraction/re.py`)
- 句法信息集成
- 上下文信息利用
- 省略成分补全逻辑
### 中优先级
5. **查询系统实现** (`src/query/`)
- 全局搜索:利用社区摘要
- 局部搜索:邻居扩展算法
- DRIFT搜索:社区上下文整合
6. **演化规律分析** (`src/analysis/evolution.py`)
- 时间序列分析
- 关系演化追踪
- 网络演化分析
### 低优先级
7. **共指消解完善** (`src/preprocessing/text_processor.py`)
8. **性能优化和缓存机制**
9. **可视化工具**
10. **单元测试和集成测试**
## 使用说明
### 环境设置
```bash
cd dofile
uv sync
source .venv/bin/activate # 或 .venv\Scripts\activate (Windows)
```
### 配置API密钥
复制`.env.example``.env`,填入相应的API密钥。
### 运行示例
```bash
# 实体识别
uv run python scripts/extract.py --input ../data/1法律/3-中华人民共和国城乡规划法.docx --output ./output/entities.json
```
## 参考资源
- GraphRAG文档: https://msdocs.cn/graphrag/
- 论文: `officefile/paper.tex`
- 数据目录: `../data/`
## 技术债务
1. 错误处理和日志记录需要更完善
2. 需要添加配置文件验证
3. 异步处理可以进一步优化
4. 需要添加单元测试
5. 文档需要补充更多示例