已经有完整的weknora部署指南,现在在已有部署基础上添加neo4j配置。
WeKnora 的知识图谱功能可以不部署 Neo4j 也能启用,但功能会有限制。
Neo4j 在 WeKnora 中是一个可选组件 ,主要作用是为知识图谱提供持久化存储和查询能力。即使没有 Neo4j,你仍然可以使用知识图谱功能,只是无法获得完整的 GraphRAG(基于知识图谱的检索增强生成)体验。
不部署 Neo4j 时,知识图谱能做什么?
- 实体和关系提取 :系统仍然可以分析文档,自动提取其中的实体(如人物、地点、概念)和它们之间的关系。
- Wiki 模式下的交互式图谱 :在"Wiki 模式"下,Agent 可以将原始文档整理成交互式知识图谱,即使没有 Neo4j 作为后端,这个功能依然可用。
❌ 不部署 Neo4j 时,知识图谱不能做什么?
- GraphRAG 增强检索 :这是知识图谱最核心的用途之一。没有 Neo4j,系统就无法在进行检索时,利用知识图谱中实体间的关联关系来找到更全面、更相关的上下文信息。
- 图谱数据的持久化与可视化查询 :你无法通过 Neo4j 的浏览器界面(http://localhost:7474)来直观地查看、管理和查询构建好的知识图谱。
⚙️ 如何配置?
前置检查
确保您当前在 WeKnora 项目目录下(cd WeKnora),且 Docker 服务正常运行。
第一步:修改 .env 文件,添加 Neo4j 配置
在项目根目录下,使用 vi .env 或 sed 命令添加以下 Neo4j 配置项(如果已有则修改):
# 追加到 .env 末尾
cat >> .env << 'EOF'
NEO4J_ENABLE=true
NEO4J_URI=bolt://neo4j:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your_strong_password_here
EOF
请将 your_strong_password_here****替换为您自己的强密码(例如 WeKnora2025!****) ,并记住此密码。
注意 :DB_* 配置保持不变,NEO4J_* 是新增的,不会影响现有 PostgreSQL 数据库。
第二步:修改 docker-compose.yml,添加 Neo4j 服务
WeKnora 的 docker-compose.yml 可能已包含 Neo4j 服务(但被注释或需要 profile)。您需要编辑该文件,确保 Neo4j 服务被启用。
打开 docker-compose.yml:
-
vi docker-compose.yml
-
查找 neo4j 服务定义。如果存在但被 profiles 限制,请移除或修改该限制。通常该服务定义如下(若无,请将以下内容添加到 services 部分):
neo4j:
image: neo4j:5.22.0
container_name: weknora-neo4j
ports:
- "7474:7474" # HTTP 管理界面
- "7687:7687" # Bolt 协议端口
environment:
- NEO4J_AUTH={NEO4J_USERNAME}/{NEO4J_PASSWORD}
- NEO4J_PLUGINS=["apoc"]
volumes:
- neo4j-data:/data
- neo4j-logs:/logs
networks:
- weknora-network
restart: unless-stopped
# 如果原有的 services 中有 profiles,请删除或注释掉
同时,在文件末尾的 volumes 部分添加:
volumes:
neo4j-data:
neo4j-logs:
网络部分(networks)应已存在 weknora-network,无需修改。
- 保存并退出。
第三步:重启服务并启动 Neo4j
使用 Docker Compose 重新启动所有服务(包括新加入的 Neo4j):
docker compose down # 可选,如果不希望中断现有服务,也可以直接 up
docker compose up -d
查看所有容器状态:
docker compose ps
您应该能看到名为 weknora-neo4j 的容器状态为 Up。
第四步:验证 Neo4j 是否正常运行
查看 Neo4j 日志 (确认无报错):
- docker compose logs neo4j --tail=50
- 访问 Neo4j 浏览器 :在浏览器中打开 http://您的服务器公网IP:7474,使用您在 .env 中设置的用户名(neo4j)和密码登录。如果能够登录,则 Neo4j 已正常运行。
- 若无法成功,可能因为没有设置安全组 。
- docker compose logs app | grep -i neo4j
如果出现类似 Neo4j driver initialized successfully 或 GraphRAG enabled 的信息,则表示连接成功。
设置安全组
如果希望从外部访问 Neo4j 浏览器(7474 端口),请在腾讯云安全组中放行该端口。若不需外部访问,可跳过此步。
确认 WeKnora 能连接 Neo4j :查看 app 容器的日志,看是否有成功连接 Neo4j 的信息:
第五步:在 WeKnora Web 界面启用知识图谱
- 登录 WeKnora Web 界面(http://您的服务器公网IP:8081)。
- 进入某个知识库 的设置页面(或全局设置)。
- 找到 "知识图谱" 或 "实体和关系抽取" 选项,将其启用 。
- 根据需要调整抽取强度等参数(默认即可)。
- 保存设置。
第六步:上传文档,自动构建知识图谱
向该知识库上传文档(支持 PDF、Word、Markdown 等),WeKnora 会在后台自动进行实体和关系抽取,并存入 Neo4j。
可以重新构建已上传文档,WeKnora 会在后台自动进行实体和关系抽取,并存入 Neo4j。