Files
SI_KG_2026_PlanningLaw/dofile/graphrag_pipeline/PROJECT_SUMMARY.md
T

5.1 KiB

项目完善总结

已完成的核心功能

1. 三元组评估器完整实现

  • 成对排序: 比较不同模型生成的三元组组,确定最佳结果
  • 多维度评分: 五维度评估(语义准确性、一致性、事实性、准确性、可理解性)
  • Peer Examination: 避免自我增强偏差,支持多评估者
  • 低质量筛选: 基于评分阈值筛选三元组

2. RE提取器完善

  • 二次对话验证: 完整实现两阶段对话优化
  • 实体格式化: 改进实体列表的格式化处理
  • 句法信息集成: 更好地利用依存句法和句法成分信息
  • 错误处理: 完善的异常处理和结果解析

3. 知识图谱索引器完整实现

  • 完整索引流程: 从TextUnit到知识图谱的完整流程
  • 图构建: 实现三元组到图结构的转换
  • 社区检测: Leiden算法实现(igraph)或连通分量替代
  • 社区摘要生成: 使用LLM生成社区摘要
  • 元数据管理: 存储图谱构建的元信息

4. RAG-based分类器实现

  • 向量嵌入: 使用OpenAI text-embedding-3-large
  • 相似度计算: 余弦相似度计算
  • 知识库构建: 支持从已标注样本构建知识库
  • Prompt-based分类: 备选分类方法

5. 查询系统完整实现

  • 全局搜索:
    • 社区相关性评估
    • LLM生成综合答案
    • 支持关键词匹配备选
  • 局部搜索:
    • 实体邻居扩展
    • 深度控制
    • 中心性分析
    • 模糊匹配
  • DRIFT搜索:
    • 结合局部和全局信息
    • 社区上下文整合
    • 综合答案生成

6. 图谱管理功能

  • 保存/加载: JSON和GraphML格式支持
  • 元数据保存: 保存社区信息和统计信息

7. 执行脚本完善

  • extract.py: 实体识别脚本
  • build_kg.py: 知识图谱构建脚本
  • query_kg.py: 图谱查询脚本(支持三种模式)
  • complete_pipeline.py: 完整流程脚本

8. 文档和测试

  • 完整的README
  • 使用示例文档
  • 架构文档
  • 基础测试
  • 项目状态文档

项目文件结构

dofile/
├── pyproject.toml          # uv项目配置 ✅
├── README.md                # 项目文档 ✅
├── PROJECT_STATUS.md        # 项目状态 ✅
├── CHANGELOG.md             # 更新日志 ✅
├── USAGE_EXAMPLES.md        # 使用示例 ✅
├── .env.example             # 环境变量模板 ✅
├── .gitignore               # Git忽略文件 ✅
├── src/                     # 源代码 ✅
│   ├── preprocessing/       # 文本预处理 ✅
│   ├── ontology/            # 本体模型 ✅
│   ├── prompts/             # Prompt模板 ✅
│   ├── extraction/         # 知识抽取 ✅
│   ├── kg_builder/          # 图谱构建 ✅
│   ├── analysis/            # 分析推理 ✅
│   ├── query/               # 查询系统 ✅
│   └── utils/               # 工具函数 ✅
├── scripts/                 # 执行脚本 ✅
│   ├── extract.py
│   ├── build_kg.py
│   ├── query_kg.py
│   └── complete_pipeline.py
├── config/                  # 配置文件 ✅
│   ├── ontology.yaml
│   └── prompts/
├── docs/                    # 文档 ✅
│   └── ARCHITECTURE.md
└── tests/                   # 测试 ✅
    └── test_basic.py

核心特性

  1. 模块化设计: 清晰的模块划分,易于扩展和维护
  2. 多LLM支持: 支持5个主流LLM提供商
  3. GraphRAG参考: 参考GraphRAG实现社区检测和查询
  4. 论文方法实现: 完整实现论文中描述的方法论
  5. 错误处理: 完善的异常处理和日志记录
  6. 可配置性: 通过配置文件和环境变量灵活配置

使用方法

快速开始

cd dofile
uv sync
cp .env.example .env
# 编辑.env填入API密钥

# 完整流程
uv run python scripts/complete_pipeline.py --data-dir ../data/1法律 --output-dir ./output --max-docs 5

分步执行

# 1. 实体识别
uv run python scripts/extract.py --input ../data/1法律/3-中华人民共和国城乡规划法.docx

# 2. 构建图谱
uv run python scripts/build_kg.py --data-dir ../data/1法律 --output ./output/kg.json

# 3. 查询图谱
uv run python scripts/query_kg.py --kg ./output/kg.json --query "城乡规划" --mode global

技术亮点

  1. 两阶段对话验证: 提高知识抽取准确性
  2. 多模型并行: 利用不同模型的优势
  3. LLM-as-a-Judge: 自动化质量评估
  4. 社区检测和摘要: 参考GraphRAG的层次结构
  5. RAG-based分类: 利用向量检索提高分类准确率
  6. DRIFT搜索: 结合局部和全局信息的智能搜索

下一步建议

  1. 性能优化:

    • 批量处理优化
    • 缓存机制
    • 异步处理改进
  2. 功能增强:

    • 可视化工具
    • 更完善的演化分析
    • 增量更新支持
  3. 生产化:

    • 单元测试完善
    • 集成测试
    • 性能监控
    • 错误恢复机制

项目已基本完成论文方法论的实现,可以直接用于法规知识图谱的构建和分析。