news 2026/10/21 3:22:22

Dify 知识图谱neo4j图数据库 和ADH数字人 备忘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Dify 知识图谱neo4j图数据库 和ADH数字人 备忘

1.安装dify :git clone https://gitee.com/dify_ai/dify.git

cd dify/docker

cp .env.example .env

!修改端口号: vi .env 中 EXPOSE_NGINX_PORT=888

docker compose up -d

注意:如果 up 报错,则修改vi docker-compose.yml ,让 镜像指向国内的docker.1ms.run/...,例用deepseek 生成 一下1ms开始的文件即可。

用 http://ip 打开并配置用户

如果新建管理员时报权限错误,执行以下语句:

# 创建 volumes 目录结构 mkdir -p volumes/app/storage # 创建必要的子目录 mkdir -p volumes/app/storage/privkeys mkdir -p volumes/app/storage/uploads mkdir -p volumes/app/storage/temp mkdir -p volumes/app/storage/logs # 设置正确的权限 sudo chown -R 1000:1000 volumes/ sudo chmod -R 755 volumes/ sudo chmod 777 volumes/app/storage/privkeys

或在 docker-compose.yaml 中

# The postgres database.
db:
image: postgres:15-alpine
restart: always
privileged: true # 加这一行。

---------------------------------------

更新DIFY:

cd dify/docker

docker compose down

git pull origin main

docker compose pull

docker compose up -d

---------------------------------------------

配置https域名

a.将证书上传至dify/docker/nginx/ssl 目录下

b.修改 dify/docker 下面的.env文件

# ------------------------------ NGINX_SERVER_NAME=XXX # 这里填写自己的域名 NGINX_HTTPS_ENABLED=true # 改成true ... NGINX_SSL_CERT_FILENAME=YYY.crt # 这里是下载的证书文件 NGINX_SSL_CERT_KEY_FILENAME=ZZZ.key # 这里是下载的证书文件

注意一下:

如果是从别的服务器反向代理到这个dify ip,则不需要在这里做以上的配置,直接在做反向代理的nginx 加cert 等操作即可。

让容器中的nginx重启:docker exec nginx nginx -t && docker exec nginx nginx -s reload

2.安装ADH: 在安装目录执行:

git clone https://gitee.com/chen_jian1994/awesome-digital-human-live2d.git

进行目录,执行:docker compose -f docker-compose-quickStart.yaml up -d

访问:http://localhost:8880

3.在Dify平台上创建一个ChatFlow,三个组件,开始 LLM 结束。

点发布->访问 ->API ,把 url 及 key ,粘到 ADH平台->设置->AI智能体->Dify里即可。

修改默认值:/configs/config_template.yaml 中设置为difyAgent.yaml,并修改difyAgent.yaml

中的值即可。

如果内存紧张,请申请点磁盘空间,先看看有没有swapon --show:

再执行:

# 1. 创建8GB交换文件 sudo fallocate -l 8G /swapfile # 2. 设置权限 sudo chmod 600 /swapfile # 3. 格式化为交换空间 sudo mkswap /swapfile # 4. 启用新的交换文件 sudo swapon /swapfile # 5. 添加到 fstab 使其永久生效 ⭐重要步骤⭐ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

更换大小:

# 禁用交换文件 sudo swapoff /swapfile # 删除旧的交换文件 sudo rm /swapfile # 验证是否已禁用 free -h

修改优先级:
vi /etc/sysctl.conf

vm.swappiness = 60 # 0-100 值越大,赵用swap

sysctl -p # 配置生效。

4.JIRA 安装备忘:

mkdir -p /mydata/docker/jira/{data,logs,home}

权限: chmod -R 333 /{...}

docker compose :

services: jira: image: cptactionhank/atlassian-jira-software container_name: jira ports: - "8080:8080" environment: - JVM_MINIMUM_MEMORY=512m - JVM_MAXIMUM_MEMORY=1024m - JAVA_OPTS=-Djava.awt.headless=true volumes: - /mydata/docker/jira/home:/var/atlassian/jira - /mydata/docker/jira/logs:/opt/atlassian/jira/logs restart: unless-stopped networks: - jira-network networks: jira-network: driver: bridge

http://localhost:8080 开始配置

5.Neo4j 图数据库安装使用

docker pull neo4j # 创建neo4j容器 docker run -it -d -p 7474:7474 -p 7687:7687 \ -v /mydata/docker/neo4j/data:/data \ -v /mydata/docker/neo4j/logs:/logs \ -v /mydata/docker/neo4j/conf:/var/lib/neo4j/conf \ -v /mydata/docker/neo4j/import:/var/lib/neo4j/import \ -v /mydata/docker/neo4j/plugins:/var/lib/neo4j/plugins \ -e NEO4J_AUTH=neo4j/password \ --name neo4j neo4j 或者使用docker-compose.yml :
services: neo4j: image: neo4j # 推荐使用较新的稳定版本 container_name: neo4j ports: - "7474:7474" # Neo4j Browser 和 HTTP API - "7687:7687" # Bolt 协议(驱动连接) environment: - NEO4J_AUTH=neo4j/password # 设置初始密码,建议修改为更安全的密码 - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes # 接受许可协议 volumes: - /mydata/neo4j/data:/data # 持久化图数据 - /mydata/neo4j/logs:/logs # 日志文件 - /mydata/neo4j/plugins:/plugins # 插件目录(如 APOC) - /mydata/neo4j/import:/import # 导入 CSV 等文件的目录 - /mydata/neo4j/conf:/var/lib/neo4j/conf # 配置文件(可选) restart: unless-stopped
http://ip:7474/

安装好后,安装插件:apoc ,下载地址:http://doc.we-yun.com:1008/doc/

按理说将 apoc-5.12.0-core.jar 复制 到 /mydata/neo4j/plugins 下,docker restart neo4j 就可以了。但以下命令可以检查挂载是否是成功的,

docker exec -it neo4j ls -id /plugins /var/lib/neo4j/plugins

如果inode 号不一致,用 docker cp /mydata/.../plugins/abc.jar neo4j:/var/.../plugins/

然后docker restart neo4j

在:ip:7474/ 运行 call apoc.help('apoc') 看安装成功与否。

6.neo4j常用语法:

create (n:person {name:'Xiaohong'}) RETURN n create (n:person {name:'Xiaoming'}) RETURN n create (n:person {name:'Xiaojun'}) RETURN n create (n:person {name:'Xiaoqiang'}) RETURN n create (n:location{city:'Zhengzhou',province:'Henan'}) create (n:location{city:'Xinxiang',province:'Henan'}) create (n:location{city:'Baoding',province:'Hebei'}) create (n:location{city:'Shijiazhuang',province:'Hebei'}) //创建关系时,create merge 都可以,但merge不会重复 match (a:person{name:'Xiaohong'}),(b:person{name:'Xiaoming'}) merge (a)-[:FRIENDS{since:2020}]->(b); match (a:person{name:'Xiaojun'}),(b:person{name:'Xiaoqiang'}) merge (a)-[:FRIENDS{since:2010}]->(b); match (a:person{name:'Xiaoming'}),(b:person{name:'Xiaojun'}) merge (a)-[:FRIENDS{since:2011}]->(b); match(a:person{name:'Xiaohong'}),(b:location{city:'Baoding'}) merge(a)-[:born{year:2001}]->(b); match(a:person{name:'Xiaoming'}),(b:location{city:'Baoding'}) merge(a)-[:born{year:2002}]->(b); match(a:person{name:'Xiaojun'}),(b:location{city:'Xinxiang'}) merge(a)-[:born{year:1990}]->(b); match(a:person{name:'Xiaoqiang'}),(b:location{city:'Zhengzhou'}) merge(a)-[:born{year:1990}]->(b); //查询出生于Xinxiang的人。 match(a:person)-[:born]->(b:location{city:'Xinxiang'}) return a,b //删除节点 match(a:location{city:'Zhengzhou'}) delete a //修改/增加节点的属性: match(a:person{name:'Xiaoming'}) set a.age=23 删除节点属性: match(a:person{name:'Xiaoming'}) remove a.age //以下可以查小红的朋友的朋友 MATCH (a:person{name:'Xiaohong'})-[:FRIENDS]->(friend)-[:FRIENDS]->(b) RETURN a.name, friend.name, b.name 返回: a.name friend.name b.name "Xiaohong" "Xiaoming" "Xiaojun"

7.neo4j与dify的交互

在dify中新建工作流,先用LLM生成Neo4j的查询语句,再加一个Http请求的结点,把HEADER 定义好,body中使用LLM中生成的语句,最后再加一个LLM结点,在上下文中说明使用前两者输出。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 3:21:53

NSGA-III MATLAB完整实现:多目标优化与Pareto前沿求解指南

简介:非支配排序遗传算法第三代是对第二代算法的重要改进,本资源提供在MATLAB环境下稳定运行的完整实现,面向需要求解多目标优化问题的科研人员、工程技术人员和算法学习者,适用于工程设计、决策分析与机器学习等场景。压缩包为zi…

作者头像 李华
网站建设 2026/10/21 3:20:50

策略梯度到PPO:降低方差、步长约束与连续控制全解析

学策略梯度的时候,很多人都会经历同一个阶段:看公式觉得理所当然,REINFORCE 就两行,策略梯度定理也清清楚楚,但一旦自己动手训练一个智能体,奖励曲线抖得像心律失常。我当初跟这门强化学习公开课的时候&…

作者头像 李华
网站建设 2026/10/21 3:20:07

Linux命令行重定向与管道原理及实战应用

1. 这不是“命令行玄学”,而是每天都在用的底层逻辑你有没有过这样的经历:在终端里敲完一条命令,屏幕瞬间刷出几百行日志,眼睛根本跟不上滚动速度;或者想把某个程序的错误信息单独保存下来分析,却只能眼睁睁…

作者头像 李华
网站建设 2026/10/21 3:19:32

7B模型金融智能体架构演进:从RAG到多Agent编排

1. 项目背景:为什么非要用7B模型做金融智能体做金融智能体这个项目,是从一次需求评审开始的。业务那边提了个很实际的需求:让投研人员用自然语言直接查公司财报、算财务指标、对比行业数据,不用再手动翻PDF和Excel。听起来不复杂&…

作者头像 李华
网站建设 2026/10/21 3:19:23

STM32 L298N电机驱动代码详解:PWM调速与方向控制避坑指南

简介:针对STM32与L298N电机控制应用场景,代码包提供可直接运行的Keil工程代码,适合正在学习嵌入式电机驱动、需要用按键调速调向的开发者。压缩包共143个文件,以h头文件、c源文件、o目标文件为主,另有hex烧录文件、uvp…

作者头像 李华
网站建设 2026/10/21 3:18:48

触摸键检测芯片TS223

一、概述TS223是 触 摸 键 检 测 IC, 提 供 1个 触 摸 键 。 触 摸 检 测 IC是 为 了用 可 变 面 积 的 键 取 代 传 统 的 按 钮 键 而 设 计 的 。低 功 耗 和 宽 工 作 电 压是 触 摸 键 的 DC和 AC特 点 。TS223采 用 SSOP16、 SOT23-6的 封 装 形 式 封 装 。二…

作者头像 李华