Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

kongusen/Graphuison

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graphuison: 基于多粒度知识融合的智能知识图谱平台

关键技术

  • 多粒度知识表示

    • 细粒度(fine)、中粒度(medium)和粗粒度(coarse)概念提取
    • 跨粒度关系建模与推理
  • 零样本知识图谱构建

    • 无需预定义实体列表,自动从自由文本中提取关键实体和关系
    • 基于主题建模的种子实体生成
  • 全局知识融合

    • 融合局部知识图谱,解决信息孤岛问题
    • 基于大模型的关系提取和知识融合
  • 智能问答系统

    • 基于知识图谱的智能问答
    • 多轮对话支持

系统架构

Graphuison平台采用前后端分离的架构设计,包含以下主要组件:

  1. 前端

    • 基于React框架开发的用户界面
    • 直观的图谱可视化和交互体验
  2. 后端API

    • 使用FastAPI构建的RESTful API服务
    • 处理文档上传、知识抽取和图谱查询等请求
  3. 知识图谱引擎

    • 文本处理器:负责文本预处理、分词和特殊术语处理
    • 主题建模器:使用BERTopic进行主题建模,发现文本中的主题和概念
    • 关系提取器:使用大型语言模型提取实体间的关系
    • 图谱融合器:融合局部图谱,处理关系冲突并推断新的关系
  4. 存储层

    • Neo4j图数据库:存储和查询知识图谱数据
    • 文件存储:管理用户上传的文档
    • 用户数据:存储用户信息和权限数据

快速开始

环境要求

  • Docker 与 Docker Compose
  • 至少8GB内存(推荐16GB以上)
  • 支持CUDA的GPU(可选,用于加速处理)

安装步骤

  1. 克隆仓库:
git clone https://github.com/yourusername/Graphuison.git
cd Graphuison
  1. 配置环境变量:
cd backend
cp .env.example .env

编辑.env文件,配置必要的参数,主要包括:

  • 基础配置

    • API_PORT: API服务端口(默认8000)
    • SECRET_KEY: JWT密钥(生产环境请修改)
    • LOG_FILE: 日志文件路径
  • OpenAI配置

    • OPENAI_API_KEY: OpenAI API密钥
    • OPENAI_BASE_URL: OpenAI API基础URL
    • LLM_MODEL: 使用的语言模型
    • EMBED_MODEL_NAME: 使用的嵌入模型
  • 数据库配置

    • NEO4J_URI: Neo4j数据库连接地址
    • NEO4J_USERNAME: 数据库用户名
    • NEO4J_PASSWORD: 数据库密码
  • 模型配置

    • DEVICE: 运行设备(cpu/cuda)
    • LANGUAGE: 默认语言(zh/en)
    • TRANSFORMATIONS_CHUNK_SIZE: 文本分块大小
    • CONTEXT_WINDOW: 上下文窗口大小
  • 知识图谱配置

    • RELATION_DEFINITIONS: 关系类型定义
    • RELATION_EXTRACTION_TEMPLATE: 关系抽取提示模板
    • GRAPH_FUSION_TEMPLATE: 图谱融合提示模板
  • 存储配置

    • DOCUMENT_STORAGE_PATH: 文档存储路径
    • GRAPH_STORAGE_PATH: 图谱存储路径
    • USER_STORAGE_PATH: 用户数据存储路径
  1. 启动服务:
docker-compose up -d
  1. 访问平台:

使用指南

  1. 用户注册与登录

    • 通过/auth/register接口注册新用户
    • 通过/auth/token接口获取访问令牌
  2. 文档上传与图谱生成

    • 登录后,通过/kg/upload接口上传文档并指定图谱名称
    • 使用/kg/status/{task_id}查看处理进度
    • 处理完成后,可以通过/kg/graphs查看所有生成的图谱
  3. 知识图谱查询

    • 使用/kg/search搜索图谱中的实体
    • 通过/kg/entity/{entity_name}查询实体关系
    • 使用/kg/granularity/{level}查询特定粒度级别的图谱
  4. 智能问答

    • 通过/chat/接口提交问题,获取基于知识图谱的回答
  5. 数据导出

    • 使用/kg/graphs/{graph_id}/export导出图谱数据

技术栈

  • 后端:Python, FastAPI, asyncio, Neo4j
  • 大模型集成:OpenAI API, LlamaIndex, SentenceTransformers
  • 自然语言处理:BERTopic, Stanza, jieba (中文分词)
  • 前端:React, TypeScript, D3.js (可视化)
  • 部署:Docker, Docker Compose

许可证

本项目采用MIT许可证 - 详见LICENSE文件

引用

如果您在研究中使用了本项目或论文,请引用以下论文: Graphuison

联系方式

如有任何问题,请通过以下方式联系我们: [448486810@qq.com]


Graphuison: Intelligent Knowledge Graph Platform Based on Multi-granularity Knowledge Fusion

Key Technologies

  • Multi-granularity Knowledge Representation

    • Fine-grained, medium-grained, and coarse-grained concept extraction
    • Cross-granularity relation modeling and reasoning
  • Zero-shot Knowledge Graph Construction

    • Automatic extraction of key entities and relations from free text without predefined entity lists
    • Seed entity generation based on topic modeling
  • Global Knowledge Fusion

    • Fusion of local knowledge graphs to solve information silos
    • Relation extraction and knowledge fusion based on large language models
  • Intelligent Q&A System

    • Knowledge graph-based intelligent Q&A
    • Multi-turn conversation support

System Architecture

Graphuison platform adopts a front-end and back-end separated architecture, including the following main components:

  1. Frontend

    • User interface developed based on React framework
    • Intuitive graph visualization and interaction experience
  2. Backend API

    • RESTful API service built with FastAPI
    • Handle document upload, knowledge extraction, and graph query requests
  3. Knowledge Graph Engine

    • Text processor: responsible for text preprocessing, word segmentation, and special term processing
    • Topic modeler: uses BERTopic for topic modeling to discover topics and concepts in text
    • Relation extractor: uses large language models to extract relations between entities
    • Graph fusioner: fuses local graphs, handles relation conflicts and infers new relations
  4. Storage Layer

    • Neo4j graph database: stores and queries knowledge graph data
    • File storage: manages user-uploaded documents
    • User data: stores user information and permission data

Quick Start

Requirements

  • Docker and Docker Compose
  • At least 8GB RAM (16GB+ recommended)
  • CUDA-enabled GPU (optional, for acceleration)

Installation Steps

  1. Clone repository:
git clone https://github.com/yourusername/Graphuison.git
cd Graphuison
  1. Configure environment variables:
cd backend
cp .env.example .env

Edit .env file to configure necessary parameters, including OpenAI API key

  1. Start services:
docker-compose up -d
  1. Access platform:

User Guide

  1. User Registration and Login

    • Register new user via /auth/register
    • Get access token via /auth/token
  2. Document Upload and Graph Generation

    • After login, upload documents and specify graph name via /kg/upload
    • Check processing progress via /kg/status/{task_id}
    • After processing, view all generated graphs via /kg/graphs
  3. Knowledge Graph Query

    • Search entities in graph via /kg/search
    • Query entity relations via /kg/entity/{entity_name}
    • Query graphs at specific granularity levels via /kg/granularity/{level}
  4. Intelligent Q&A

    • Submit questions via /chat/ to get knowledge graph-based answers
  5. Data Export

    • Export graph data via /kg/graphs/{graph_id}/export

Tech Stack

  • Backend: Python, FastAPI, asyncio, Neo4j
  • LLM Integration: OpenAI API, LlamaIndex, SentenceTransformers
  • NLP: BERTopic, Stanza, jieba (Chinese word segmentation)
  • Frontend: React, TypeScript, D3.js (visualization)
  • Deployment: Docker, Docker Compose

License

This project is licensed under the MIT License - see the LICENSE file for details

Citation

If you use this project or paper in your research, please cite: Graphuison

Contact

For any questions, please contact us at: [448486810@qq.com]

功能特点

  • 多粒度概念抽取:支持细粒度、中粒度和粗粒度概念识别
  • 多粒度关系抽取:支持同粒度及跨粒度关系抽取
  • 智能问答:基于知识图谱的智能问答系统
  • 用户认证:完整的用户注册和认证系统
  • 数据持久化:支持文档和知识图谱的存储与管理

系统要求

  • Python 3.8+
  • Neo4j 5.0+
  • OpenAI API密钥(用于LLM功能)

安装说明

  1. 克隆项目并进入项目目录:
git clone https://github.com/yourusername/Graphuison.git
cd Graphuison
  1. 创建并激活虚拟环境(推荐):
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
.\venv\Scripts\activate  # Windows
  1. 安装后端依赖:
cd backend
pip install -r requirements.txt
  1. 安装spaCy中文语言模型:
python -m spacy download zh_core_web_sm
  1. 配置环境变量:
cp .env.example .env
# 编辑.env文件,填入必要的配置信息

配置说明

.env文件中配置以下必要参数:

# 数据库配置
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password

# OpenAI配置
OPENAI_API_KEY=your_api_key

# JWT配置
SECRET_KEY=your_secret_key
ACCESS_TOKEN_EXPIRE_MINUTES=30

# 存储路径配置
DOCUMENT_STORAGE_PATH=./data/documents
GRAPH_STORAGE_PATH=./data/graphs

启动服务

  1. 启动后端服务:
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000
  1. 启动前端服务:
cd frontend
npm install
npm run dev

API文档

启动服务后访问以下地址查看API文档:

主要功能

1. 用户认证

  • 用户注册:POST /auth/register
  • 用户登录:POST /auth/token
  • 获取用户信息:GET /auth/me

2. 知识图谱管理

  • 文档上传:POST /kg/upload
  • 知识抽取:POST /kg/extract
  • 图谱生成:POST /kg/generate
  • 图谱查询:GET /kg/granularity/{level}
  • 图谱导出:GET /kg/graphs/{graph_id}/export

3. 智能问答

  • 问答接口:POST /chat/

开发说明

项目结构

Graphuison/
├── backend/
│   ├── app/
│   │   ├── models/      # 模型定义
│   │   ├── routers/     # API路由
│   │   ├── schemas/     # 数据模式
│   │   └── utils/       # 工具函数
│   ├── tests/           # 测试文件
│   ├── requirements.txt # 依赖配置
│   └── main.py         # 主程序
├── frontend/           # 前端代码
└── data/              # 数据存储

测试

cd backend
pytest

许可证

MIT License

About

A RAG-based framework for constructing scientific knowledge graphs.

Topics

Resources

Stars

Watchers

Forks

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.