Skip to content

About

基于知识图谱与检索增强生成的智能问答系统 A lightweight GraphRAG intelligent question answering system based on Kuzu, FAISS, BGE and Ollama.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

GraphRAG-QA:基于知识图谱与检索增强生成的智能问答系统

项目简介

本项目实现了一个融合知识图谱(Knowledge Graph)与检索增强生成(Retrieval-Augmented Generation, RAG)的智能问答系统。

系统首先利用大语言模型从文本中抽取实体与关系,构建知识图谱并存储至 Kùzu 图数据库;同时对原始文本进行向量化处理,构建基于 FAISS 的向量检索库。

在问答阶段,系统采用:

  • Knowledge Graph Retrieval(知识图谱检索)
  • Dense Retrieval(向量检索)QA
  • Large Language Model(大语言模型生成)

三者结合的方式完成知识增强问答。


系统架构

alt text


技术栈

大语言模型

  • Qwen2.5
  • Ollama

知识图谱

  • Kùzu Graph Database

RAG

  • BAAI/bge-small-zh-v1.5
  • FAISS

WebUI

  • Gradio

其他

  • LangChain
  • Sentence Transformers
  • NetworkX
  • Matplotlib

项目功能

1. 知识图谱构建

从原始文本中自动抽取:

  • 实体(Entity)
  • 关系(Relationship)

构建图谱并写入 Kùzu 数据库。

示例:

OpenAI → 开发 → ChatGPT

ChatGPT → 基于 → Transformer架构


2. 向量数据库构建

采用:

BAAI/bge-small-zh-v1.5

生成文本向量。

利用 FAISS 构建向量索引,实现语义检索。


3. GraphRAG问答

系统同时执行:

知识图谱检索

获取实体关联信息。

向量检索

获取相关文本片段。

LLM生成

优先利用知识图谱信息;

当知识图谱信息不足时,引入RAG结果补充回答。


4. Web可视化界面

支持展示:

  • KG检索结果
  • RAG检索结果
  • 最终回答

项目目录

SmartGraphQA/

├── README.md
├── requirements.txt
├── .gitignore
│
├── GraphRag_app.py
├── main_GraphBuild.py
├── main_GraphRagRetriever.py
├── main_build_vector_db.py
├── main_vector_retriever.py
│
├── example_data.txt
│
├── Models/
│   ├── LLM_Models.py
│   ├── model_utils.py
│   └── ...
│
├── DataBase/
│   ├── GraphData/
│   │    └── create_graph_knowledge.py
│   ├── config.py
│   └── prompt_utils.py
│
├── Prompts/
│   └── prompt_graph.py
│
├── GraphRag_WebUI_1.png
├── GraphRag_WebUI_2.png
├── GraphRagRetriever_1.png
└── GraphRagRetriever_2.png


环境配置

Python 3.10

安装依赖:

pip install -r requirements.txt

启动 Ollama:

ollama serve

拉取模型:

ollama pull qwen2.5:7b

运行方法

1. 构建知识图谱

python main_GraphBuild.py

2. 构建向量数据库

python main_build_vector_db.py

3. 运行Graphrag检索进行测试

python main_GraphRagRetriever.py

4. 启动问答系统

python GraphRag_app.py

项目效果

问答系统效果图:

alt text

alt text

知识图谱构建图:

alt text

main_GraphRagRetriever终端运行截图:

alt text

alt text


项目亮点

  • 基于 Kùzu 构建知识图谱
  • 基于 FAISS 实现向量检索
  • GraphRAG 混合检索架构
  • 本地化部署(Ollama)
  • Gradio WebUI 可视化
  • 支持知识图谱与向量知识融合推理

后续优化方向

Retrieval

  • BGE-Reranker
  • BCE-Reranker
  • Hybrid Retrieval

GraphRAG

  • 多跳图谱检索
  • 路径推理
  • 社区发现

Agent

  • Tool Calling
  • Function Calling
  • ReAct Agent

作者

Yang Qingxia

邮箱:yangqingxia2003@163.com

研究方向:

  • 大模型(LLM)
  • RAG
  • GraphRAG
  • Agent

参考项目

本项目在学习和实践过程中参考了以下优秀开源项目:

Knowledge Graph

SMARTGRAPHQA

https://github.com/tangjun1878/SMARTGRAPHQA

项目中的知识图谱构建流程、实体关系抽取思路为本项目提供了重要参考。

RAG

All-in-RAG

https://github.com/datawhalechina/all-in-rag

项目中的 RAG 基础理论、向量检索流程及相关实践内容为本项目的实现提供了参考。

感谢开源社区的贡献。

About

基于知识图谱与检索增强生成的智能问答系统 A lightweight GraphRAG intelligent question answering system based on Kuzu, FAISS, BGE and Ollama.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages