1.安装dify git clone https://gitee.com/dify_ai/dify.gitcd dify/dockercp .env.example .env修改端口号 vi .env 中 EXPOSE_NGINX_PORT888docker 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-alpinerestart: alwaysprivileged: true # 加这一行。---------------------------------------更新DIFYcd dify/dockerdocker compose downgit pull origin maindocker compose pulldocker compose up -d---------------------------------------------配置https域名a.将证书上传至dify/docker/nginx/ssl 目录下b.修改 dify/docker 下面的.env文件# ------------------------------ NGINX_SERVER_NAMEXXX # 这里填写自己的域名 NGINX_HTTPS_ENABLEDtrue # 改成true ... NGINX_SSL_CERT_FILENAMEYYY.crt # 这里是下载的证书文件 NGINX_SSL_CERT_KEY_FILENAMEZZZ.key # 这里是下载的证书文件注意一下如果是从别的服务器反向代理到这个dify ip则不需要在这里做以上的配置直接在做反向代理的nginx 加cert 等操作即可。让容器中的nginx重启docker exec nginx nginx -t docker exec nginx nginx -s reload2.安装ADH 在安装目录执行git clone https://gitee.com/chen_jian1994/awesome-digital-human-live2d.git进行目录执行docker compose -f docker-compose-quickStart.yaml up -d访问http://localhost:88803.在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.confvm.swappiness 60 # 0-100 值越大赵用swapsysctl -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_MEMORY512m - JVM_MAXIMUM_MEMORY1024m - JAVA_OPTS-Djava.awt.headlesstrue 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: bridgehttp://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_AUTHneo4j/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_AUTHneo4j/password # 设置初始密码建议修改为更安全的密码 - NEO4J_ACCEPT_LICENSE_AGREEMENTyes # 接受许可协议 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-stoppedhttp://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.age23 删除节点属性 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 Xiaojun7.neo4j与dify的交互在dify中新建工作流先用LLM生成Neo4j的查询语句再加一个Http请求的结点把HEADER 定义好body中使用LLM中生成的语句最后再加一个LLM结点在上下文中说明使用前两者输出。