全国网站开发赛,温州百度推广公司,wordpress是否被收录,曰本做爰l网站GraphRAG Ollama Groq 构建知识库 在上一篇文章中#xff0c;我们详细介绍了如何创建一个知识库。尽管知识库已经建立#xff0c;但其内容的可视化展示尚未实现。我们无法直接看到知识库中的数据#xff0c;也就无法判断这些数据是否符合我们的预期。为了解决这个问题 Ollama Groq 构建知识库 在上一篇文章中我们详细介绍了如何创建一个知识库。尽管知识库已经建立但其内容的可视化展示尚未实现。我们无法直接看到知识库中的数据也就无法判断这些数据是否符合我们的预期。为了解决这个问题本文将向你展示如何使用Neo4j这一强大的图形数据库将知识库中的数据以图形化的形式呈现出来。
0. 环境准备
pip install yfiles_jupyter_graphs --quiet确保安装 Docker 和 Docker Compose
docker --version
docker-compose --version
如果没有安装请根据您的操作系统访问 Docker 官方网站 进行安装。https://docs.docker.com/get-started/get-docker/要使用您提供的 Docker Compose 配置文件来启动 Neo4j 数据库请按照以下步骤操作
1. 确保安装 Docker 和 Docker Compose
确保您的系统上已安装 Docker 和 Docker Compose。您可以在终端中运行以下命令以检查是否已安装
docker --version
docker-compose --version如果没有安装请根据您的操作系统访问 Docker 官方网站 进行安装。 window 启动docker desktop
2. 创建项目目录
在您的工作目录中创建一个新的文件夹来存放 Neo4j 数据库相关的文件
mkdir neo4j_project # 此目录和前回文章中的graphRAG目录是平级的
cd neo4j_project3. 创建必要的子目录
根据您的配置您需要创建以下目录
mkdir -p data\neo4j logs import4. 创建 docker-compose.yml 文件
在 neo4j_project 目录中创建一个名为 docker-compose.yml 的文件并将您提供的内容粘贴到该文件中
version: 3.0
services:neo4j:image: neo4j:5.24-communityrestart: alwaysports:- 7474:7474- 7687:7687volumes:- ./data/neo4j:/data- ./logs:/var/lib/neo4j/logs- ./import:/var/lib/neo4j/importenvironment:- NEO4J_AUTHneo4j/123456您可以使用文本编辑器如 VS Code、Notepad 或任何其他来创建和编辑此文件。
5. 启动 Neo4j 服务
在终端中确保您仍在 neo4j_project 目录下然后运行以下命令以启动 Neo4j 服务
docker-compose up -d neo4j-d 参数表示在后台运行容器。
6. 访问 Neo4j 浏览器
一旦服务启动您可以通过浏览器访问 Neo4j 浏览器通常地址为
http://localhost:7474/browser/使用用户名 neo4j 和密码 123456 登录。
7. 验证服务状态
如果需要查看正在运行的容器可以使用以下命令
docker-compose ps这将显示所有由 Docker Compose 管理的服务及其状态。
通过以上步骤您应该能够成功搭建并运行 Neo4j 图数据库。如果在过程中遇到任何问题请检查 Docker 日志以获取更多信息
docker-compose logs neo4j这将帮助您诊断可能出现的问题。
8.导入数据
8.1 把前回文章中graphRAG生成的parquet文件转换成csv文件
display_graph\parquet转csv.py
import os
import pandas as pd# 定义一个函数用于处理parquet文件
def process_parquet_files(path):# 遍历指定路径下的所有文件for root, dirs, files in os.walk(path):for file in files:# 如果文件以.parquet结尾则进行处理if file.endswith(.parquet):# 获取文件的完整路径file_path os.path.join(root, file)# 读取parquet文件df pd.read_parquet(file_path)# 打印正在处理的文件路径print(fProcessing file: {file_path})# 定义输出文件的路径out_path os.path.join(root, r.\display_graph\neo4j_project\import, str(file).replace(parquet, csv))# 将parquet文件转换为csv文件df.to_csv(out_path, indexFalse)# 指定要处理的文件路径graphRAG生成的parquet文件目录
path r.\graphRAG\output\20241012-003213\artifacts
# 调用函数处理文件
process_parquet_files(path)8.2 导入csv文件到neo4jcypher语句批量导入csv文件。
节点导入
LOAD CSV WITH HEADERS FROM file:///create_final_entities.csv AS row
CREATE (n:PERSON)
SET n.id row.id,n.name row.name,n.type row.type,n.description row.description,n.humanReadableId row.human_readable_id;关系导入:
LOAD CSV WITH HEADERS FROM file:///create_final_relationships.csv AS row
MATCH (s:PERSON { name: toString(row.source) })
MATCH (t:PERSON { name: toString(row.target) })
CREATE (t)-[r:REL]-(s)
SET r.weight row.weight, r.description row.description,r.textUnitIds split(row.text_unit_ids, ,), r.id row.id,r.humanReadableId row.human_readable_id,r.sourceDegree toInteger(row.source_degree), r.targetDegree toInteger(row.target_degree), r.rank toInteger(row.rank);
我们的每一步进步都是站在前人的肩膀上取得的。正如饮水思源我们在享受成果的同时不应忘记那些辛勤挖掘井泉的人。前人种下树木后人得以乘凉。我们应带着感恩的心继续传承和发扬无私分享的精神。
参照连接
https://blog.csdn.net/Johntill/article/details/142380487 https://www.cnblogs.com/222wan/p/18212878