Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Graph RAG — 基于大模型的老年心理健康知识图谱构建

一个全栈 Graph RAG(检索增强生成)应用,能够从文档中自动构建知识图谱,并通过 LLM 驱动的对话界面进行智能问答。

功能特性

  • 知识图谱自动构建:上传 CSV、TXT、JSON、TTL 或纯文本文件,系统通过大模型自动抽取实体与关系三元组,经知识融合后导入 Neo4j 图数据库
  • 增量知识追加:支持向已有知识库增量追加新文件,快照机制保证数据一致性
  • Graph RAG 智能问答:混合向量相似度检索(pgvector)与多跳图遍历,构建子图上下文,由 LLM 生成精准回答
  • 流式对话:基于 SSE 的流式回答,支持 Markdown 渲染(含数学公式与代码高亮)
  • 知识图谱可视化:以交互式网络图形式展示知识图谱,支持节点搜索与关系路径探索
  • 用户系统:注册/登录(bcrypt + JWT),对话历史云端同步,匿名用户回退至本地存储
  • 个人记忆图谱:登录用户可启用记忆模式,系统自动从对话中提取个人信息构建画像图谱,跨会话持久化
  • 管理后台:可视化流水线构建器、实时日志查看、用户管理(admin 专属)
  • 深色/浅色主题切换

技术栈

后端

  • Python 3.11+ / aiohttp — 异步 Web 服务
  • LangChain + OpenAI SDK — LLM 编排(对话、三元组抽取、关系发现、知识融合)
  • Neo4j (≥5.0) — 图数据库,存储知识图谱
  • PostgreSQL + pgvector — 关系型数据 + 向量嵌入,用于实体/关系融合中的语义相似度匹配
  • bcrypt + PyJWT — 用户认证

前端

  • React 19 + TypeScript + Vite
  • Cytoscape.js — 交互式知识图谱可视化
  • Recharts — 统计图表
  • react-markdown + KaTeX — 富文本回答渲染(支持数学公式与代码高亮)

前置依赖

运行前需要准备以下外部服务:

服务 用途
OpenAI 兼容 API LLM 对话模型 + Embedding 模型
Neo4j (≥5.0) 图数据库
PostgreSQL (带 pgvector 扩展) 关系数据 + 向量存储

快速开始

1. 配置环境变量

cp .env.example .env

编辑 .env,填写必填项:

# LLM 配置(必填)
OPENAI_API_KEY=sk-xxx
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_CHAT_MODEL=gpt-4o-mini
OPENAI_EMBEDDING_MODEL=text-embedding-3-large

# Neo4j 配置(必填)
NEO4J_HOST=localhost
NEO4J_PORT=7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your-password
NEO4J_DATABASE=neo4j

# PostgreSQL 配置(必填)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your-password
POSTGRES_DATABASE=graph_rag

# 认证配置(必填)
PASSWORD_PEPPER=your-random-pepper
JWT_SECRET_KEY=your-jwt-secret

2. Docker 部署(推荐)

docker compose up -d

服务默认监听 http://localhost:8081。

3. 本地开发

# 安装后端依赖
pip install -r requirement.txt

# 启动后端(端口 8081)
cd src && python main.py

# 前端开发服务器(另一个终端,端口 5173)
cd client && npm install && npm run dev

开发时需在 .env 中设置 CORS_ALLOW_ORIGIN=http://localhost:5173。

API 概览

方法 路径 说明
GET/POST /api/pipelines 列出/构建知识库流水线
POST /api/pipelines/{id}/append 向已有知识库追加文件
GET /api/pipelines/{id}/graph 获取图谱可视化数据
GET /api/pipelines/{id}/logs 获取流水线执行日志
POST /api/qa/ask/stream 流式问答(SSE)
POST /api/auth/register 用户注册
POST /api/auth/login 用户登录
POST /api/memory/trigger 从对话触发记忆提取
GET/DELETE /api/memory/memories 查看/删除用户记忆
GET/POST/DELETE /api/conversations 对话历史管理
GET/DELETE /api/admin/users 用户管理(admin)

项目结构

.
├── src/                    # 后端源码
│   └── app/
│       ├── main.py         # 入口
│       ├── adapters/       # 数据源适配器(CSV/JSON/TXT/TTL)
│       ├── graph_rag/      # Graph RAG 检索与问答
│       ├── knowledge/      # 三元组抽取、关系发现、知识融合、向量控制
│       ├── llm/            # LLM 控制器、对话记忆、Prompt 模板
│       ├── neo4j_driver/   # Neo4j 连接与图谱导入
│       ├── pipeline/       # 知识图谱构建流水线
│       ├── postgres_driver/# PostgreSQL 连接与各数据仓库
│       ├── routes/         # API 路由与中间件
│       ├── user_profile/   # 用户认证、记忆服务
│       └── utils/          # 工具(日志、调度器)
├── client/                 # 前端源码(React + TypeScript)
│   └── src/
│       └── components/     # UI 组件(对话面板、图谱查看器、流水线构建器等)
├── docker-compose.yml
├── Dockerfile
├── requirement.txt
└── .env.example

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages