English · 中文
先定义知识,再构建图谱,最后让每个应用结果都能回到实体、关系与原始信息。
🚀 在线体验 · ⚡ 快速开始 · 🏗️ 技术架构 · 📦 部署指南 · 🎬 视频教程 · 🤝 参与贡献
从领域建模、图谱构建到知识应用,所有关键步骤都在同一个工作台中完成。
传统知识库通常只完成文档切片和向量检索,但难以表达实体关系、领域规则和可解释的推理过程。
UniGraph 提供三个核心能力:
- 结构化建模:定义实体、关系和领域属性;
- 自动化构建:从文档中抽取实体与关系,形成知识图谱;
- 可追溯应用:应用结果同时关联图谱路径与原始信息源。
flowchart LR
A["准备领域资料"] --> B["生成或设计知识架构"]
B --> C["人工检查与编辑"]
C --> D["抽取实体与关系"]
D --> E["构建并融合知识图谱"]
E --> F["社区划分与向量索引"]
F --> G["多层知识检索"]
G --> H["带引用的知识应用"]
| 阶段 | 你在做什么 | 最终得到什么 |
|---|---|---|
| 定义知识 | 从资料生成初始架构,人工调整实体类型、关系类型和属性 | 可复用、可解释的领域 Schema |
| 构建知识 | 按确认后的架构抽取实体与关系,完成图谱融合与知识迁移 | 可以查看和编辑的实例图谱 |
| 使用知识 | 构建社区报告与向量索引,组合实体、关系、来源和全局概览 | 可追溯、可继续追问的应用结果 |
这里的“普通文档 RAG”,指以文本切片、向量检索和大模型生成为主,未额外构建结构化知识层的方案。
| 能力 | 普通文档 RAG | UniGraph |
|---|---|---|
| 文档语义检索 | ✓ 原生支持 | ✓ 原生支持 |
| 先定义知识架构 | — 不提供 | ✓ 原生支持 |
| 人工确认实体与关系类型 | — 不提供 | ✓ 原生支持 |
| 图谱可视化与编辑 | — 不提供 | ✓ 原生支持 |
| 局部关系与全局社区结合 | △ 可扩展实现 | ✓ 原生支持 |
| 实体、关系、原文和社区四类引用 | — 不提供 | ✓ 原生支持 |
| 知识持续更新与融合 | △ 可扩展实现 | ✓ 原生支持 |
| 多轮对话与后台应用 | △ 可扩展实现 | ✓ 原生支持 |
|
|
|
UniGraph 的重点不是把复杂能力藏在一个“应用”按钮后面,而是让知识从设计、构建到应用的每一步都可见、可检查、可继续编辑。
定义人物、机构、项目等实体类型,以及实体之间的关系和属性约束。
导入文档后自动抽取实体与关系,并通过可视化图谱检查构建结果。
应用结果可以回溯到知识图谱路径和原始文档信息源。
一句话理解 UniGraph:把“资料 → 知识 → 图谱 → 应用”连成一条可追溯的生产线。
UniGraph 会将局部实体与关系、原始信息源和全局社区概览组织成统一上下文。应用结果中的引用可以继续展开,帮助用户判断结论来自哪里,而不是只接受一个无法验证的模型答案。
详细的设计、构建、索引与检索流程见 技术架构文档。
flowchart LR
User["Browser"] --> Web["Vue 3 + Nginx"]
Web --> API["FastAPI"]
API --> DB[("MySQL")]
API --> Cache[("Redis")]
API --> Worker["Celery Workers"]
API --> AI["LLM / Embedding API"]
Worker --> DB
Worker --> Cache
Worker --> AI
| 层次 | 技术 |
|---|---|
| Web 工作台 | Vue 3、Vite、TypeScript、Cytoscape、vis-network |
| API 与业务 | FastAPI、Pydantic、SQLAlchemy |
| 数据与任务 | MySQL、Redis、Celery |
| 图谱检索 | Leiden 社区、实体向量、局部与全局上下文 |
| AI 接入 | OpenAI 兼容语言模型与嵌入模型 |
| 部署 | Docker Compose、Nginx,或传统进程部署 |
正常网络环境下,完成配置后约五分钟可以启动。
环境要求:
- Docker 24+
- Docker Compose v2
- 至少 4 GB 可用内存
- 可用的大模型 API Key 和嵌入模型 API Key
git clone https://github.com/CodingFeng101/UniGraph.git
cd UniGraph
cp .env.docker.example .env.dockerWindows PowerShell:
git clone https://github.com/CodingFeng101/UniGraph.git
Set-Location UniGraph
Copy-Item .env.docker.example .env.docker编辑 .env.docker,替换数据库密码、所有 replace-with-... 密钥,以及包含 changeme 的开发用 Base64 密钥,然后启动:
docker compose --env-file .env.docker up -d --build
docker compose --env-file .env.docker ps| 服务 | 地址 |
|---|---|
| Web 工作台 | http://localhost:8080 |
| 健康检查 | http://localhost:8000/knowg/v1/health |
| OpenAPI(开发环境) | http://localhost:8000/knowg/v1/docs |
生产单机部署与 HTTPS、持久化、迁移和升级步骤见 部署指南。
传统方式启动
要求 Python 3.11–3.12、Node.js 22.22.2+、MySQL 8.x 和 Redis 7.x。
cp backend/.env.template backend/.env
python -m venv .venv
source .venv/bin/activate
python -m pip install -r backend/requirements.txt
python -m alembic -c backend/alembic.ini upgrade head
python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000另开四个终端启动隔离的 Celery 队列(并发数可通过环境变量调整):
celery -A backend.app.task.celery:celery_app worker -Q default --concurrency=4 --loglevel=info
celery -A backend.app.task.celery:celery_app worker -Q qa --concurrency=8 --loglevel=info
celery -A backend.app.task.celery:celery_app worker -Q indexing --concurrency=2 --loglevel=info
celery -A backend.app.task.celery:celery_app worker -Q migration --concurrency=2 --loglevel=info启动前端:
cd frontend
npm ci
npm run devWindows 多 worker 和完整排障命令见 部署指南。
| 文档 | 适合谁 | 内容 |
|---|---|---|
| 快速开始 | 第一次使用者 | 安装、配置和首次启动 |
| 技术架构 | 开发者、研究者 | 设计、构建、索引、检索、应用和安全边界 |
| English Architecture | English readers | English technical architecture |
| 部署指南 | 运维与部署人员 | Docker、传统部署、迁移、升级和排障 |
| 贡献指南 | 贡献者 | 开发、测试和 Pull Request 约定 |
| 安全政策 | 安全研究者 | 漏洞私密报告方式 |
| 第三方声明 | 使用者 | 第三方组件与许可证信息 |
- 登录系统;
- 创建知识库并导入领域文档;
- 定义实体、关系和属性,生成知识架构;
- 在抽取前人工检查并编辑实体类型、关系类型和属性;
- 启动知识抽取,检查可视化图谱结果;
- 构建社区与向量索引;
- 进入知识应用,基于证据开始探索和追问。
API Key 会在后端加密保存,编辑模型时留空表示保留已有密钥,页面不会回显明文。
UniGraph 当前处于 Beta 阶段,已经可以完成领域设计、知识构建、图谱查看和可追溯知识应用的完整流程。部分高级功能仍在持续完善,暂不建议直接用于关键生产环境。
.
├── backend/ # FastAPI、业务模块、核心算法和测试
│ ├── app/ # 用户、知识库、图谱与任务模块
│ ├── common/core_layer/ # Schema、构建、索引与检索核心层
│ ├── migrations/ # 数据库增量迁移
│ └── tests/ # 回归、安全和运行时测试
├── frontend/ # Vue 3 Web 工作台
├── deploy/ # Dockerfile、Nginx 与生产配置
├── docs/ # 技术、部署与发布文档
└── compose.yaml # Docker Compose 编排
python -m ruff format --check backend
python -m ruff check backend
python -m pytest backend/tests -q
cd frontend
npm run lint
npm run typecheck
npm test
npm run buildCI 会执行后端格式、测试、迁移头检查和依赖审计,前端单元测试、类型、构建和依赖审计,以及完整 Docker 健康冒烟。
- 不要提交
.env、日志、上传文件、数据库、私钥或真实业务数据; - 生产环境应启用 HTTPS、随机密钥、备份、资源限额和监控;
- 请妥善保存
LLM_API_KEY_ENCRYPTION_KEY,丢失后无法解密已有模型凭据; - 默认禁止访问私有网段模型地址,仅应在可信隔离网络中开启;
- 安全问题请按 SECURITY.md 私密报告,不要公开提交漏洞细节。
欢迎提交 Issue 和 Pull Request。开始前请阅读 贡献指南,保持改动聚焦,并为行为变化附带可复现的测试。
UniGraph 使用 GNU Affero General Public License v3.0 开源。若修改后的版本通过网络向用户提供服务,应按照 AGPL-3.0 向这些用户提供对应源代码。第三方组件的归属和许可信息见 THIRD_PARTY_NOTICES.md。
如果 UniGraph 对你的知识工程工作有帮助,欢迎 Star、试用并分享反馈。
- 项目贡献者们:



