Skip to content

SiderLock/UniversalKnowledgeGraghBuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 OpenChemKG

通用知识图谱构建平台 v1.0.0

A Modern, GUI-based Knowledge Graph Construction Platform Powered by Multi-Provider LLMs

Python PyQt6 License LLM

OpenChemKG 是一个现代化的、可视化的知识图谱构建工具。它提供了一套完整的流水线,帮助用户利用大语言模型 (LLM) 从非结构化或半结构化数据中提取信息,构建任意领域的知识图谱。


✨ v1.0.0 核心特性

已知问题

  • 1.选择新建数据集存在问题,不管你输入多少值,它只会是推荐实体的复制粘贴并不会新增。
  • 2.用户新增定义的属性并不会生效。

🎨 现代化 GUI 界面

  • 基于 PyQt6 构建的现代化界面
  • 全新设计的 现代蓝主题 配色方案 (Modern Blue)
  • 深色模式 - 支持一键切换深色/浅色主题
  • Toast 通知系统 - 非阻塞式操作反馈
  • 实时数据统计仪表盘 (视觉升级)
  • 领域配置卡片式展示

🤖 多 LLM 提供商支持

提供商 模型示例 特性
DashScope (阿里通义) qwen-plus, qwen-max, qwen-turbo ✅ 完整支持
OpenAI gpt-4, gpt-4o, gpt-3.5-turbo ✅ 完整支持
DeepSeek deepseek-chat, deepseek-coder ✅ 完整支持
Kimi (月之暗面) moonshot-v1-8k/32k/128k ✅ 支持联网搜索
Ollama (本地部署) llama3, qwen2, mistral ✅ 兼容模式优化

⚡ 智能 API 调度

  • 速率限制控制: 支持 RPM/TPM/TPD 配置
  • 自适应解析策略:
    • 商业 API (OpenAI/DeepSeek/Kimi): 使用增强模式
    • 本地模型 (Ollama): 使用兼容模式,优化小模型表现
  • 自动重试机制: 指数退避策略

📝 智能领域向导

  • AI 驱动的领域分析: 描述需求,自动生成 Schema 和实体推荐
  • 灵活的实体生成: 支持 1-1000 个实体批量生成
  • 可视化 Prompt 构建器: 变量插入、实时预览、模板库

🔄 完整数据流水线

CSV数据 → 数据清洗 → LLM数据富集 → 后处理 → Neo4j图构建
            ↓           ↓              ↓          ↓
         [检查点]    [检查点]      [检查点]    [检查点]
  • 断点续传: 支持从中断处恢复长时间任务
  • 并发处理: 可配置的多线程并行处理
  • 进度追踪: 可视化阶段状态和进度

🔧 增强的 JSON 解析器

  • 5层解析策略: 直接解析 → Markdown清理 → JSON块提取 → 格式修复 → Key-Value提取
  • 模糊属性匹配: 自动映射相似属性名
  • 无效值过滤: 自动识别和过滤占位符数据

🛠️ 快速开始

环境要求

  • Python 3.10+
  • (可选) Neo4j 数据库 (用于图构建)
  • (可选) Ollama (用于本地模型)

安装

推荐使用 uv (极速依赖管理):

# 安装 uv
pip install uv

# 克隆项目
git clone https://github.com/your-repo/OpenChemKG.git
cd OpenChemKG

# 同步依赖
uv sync

或使用 pip:

pip install -r requirements.txt

启动应用

# 使用 uv
uv run gui.py

# 或直接使用 Python
python gui.py

📖 使用指南

1️⃣ 配置 API (首次使用)

  1. 启动应用后,点击左侧 "⚙️ 设置"
  2. 选择 LLM 提供商 (推荐 DeepSeek 或 Kimi,性价比高)
  3. 填入 API Key 和 Base URL
  4. 点击 "刷新模型列表" 选择模型
  5. (可选) 配置速率限制 RPM/TPM/TPD

2️⃣ 智能向导 (推荐新用户)

  1. 进入 "🚀 智能向导" 页面
  2. 描述您想构建的领域,例如:

    "我想构建一个关于常见中药材的知识图谱,包含功效、性味、归经等信息"

  3. 点击 "🔍 AI 分析并推荐"
  4. AI 将自动生成:
    • 推荐的实体列表
    • 建议的属性 Schema
    • 领域名称
  5. 设置生成数量 (1-1000),点击 "⚡ 生成数据集"

3️⃣ 数据补全

  1. 进入 "📂 数据补全" 页面
  2. 选择领域配置
  3. 导入 CSV 文件或使用已生成的数据集
  4. 点击 "▶️ 开始补全"
  5. 系统将调用 LLM 逐条补全数据

4️⃣ 领域管理

  1. 进入 "🏷️ 领域配置" 页面
  2. 管理自定义领域的:
    • Schema 定义 (属性、类型、描述)
    • System Prompt 和 User Prompt
    • 数据来源配置

🔧 配置说明

API 提供商配置

提供商 Base URL 获取 API Key
DashScope https://dashscope.aliyuncs.com/compatible-mode/v1 阿里云控制台
OpenAI https://api.openai.com/v1 OpenAI Platform
DeepSeek https://api.deepseek.com DeepSeek Platform
Kimi https://api.moonshot.cn/v1 Moonshot Console
Ollama http://localhost:11434/v1 本地安装 Ollama

速率限制配置

参数 说明 推荐值
RPM 每分钟请求数 60
TPM 每分钟 Token 数 100,000
TPD 每天 Token 数 1,000,000

📁 项目结构

OpenChemKG/
├── gui.py                 # 主 GUI 应用
├── app.py                 # CLI 入口
├── main.py                # 流水线入口
├── config/
│   ├── settings.yaml      # 用户设置
│   ├── domains.yaml       # 领域配置
│   └── config.yaml        # 全局配置
├── modules/
│   ├── universal_enricher.py   # LLM 数据富集核心
│   ├── llm_json_parser.py      # JSON 解析器
│   ├── pipeline_manager.py     # 流水线管理
│   ├── data_cleaning/          # 数据清洗模块
│   ├── data_enrichment/        # 数据富集模块
│   ├── graph_construction/     # 图构建模块
│   └── post_processing/        # 后处理模块
└── data/
    ├── demo/              # 示例数据
    └── generated/         # 生成的数据

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


🙏 致谢


Made with ❤️ by FlyWill

About

这是一个通用的知识图谱构建器,旨在尝试从模型中筛选出有效数据或从模型中提取数据来补全属性/A universal knowledge graph builder designed to attempt to filter valid data from the model or extract data from the model to complete existing entities.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages