dify docker部署全过程
简绍
Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
docker dify 部署
官网地址:
https://docs.dify.ai/zh-hans/guides/knowledge-base
去官方仓库 将代码 拉下来
git clone https://github.com/langgenius/dify.git
进入 Dify 源代码的 Docker 目录
cd dify/docker
复制配置环境
cp .env.example .env
启动 docker compose 安装容器
docker compose up -d
等容器安装完后 可以看到 80 端口被占用
网址: http://127.0.0.1

安装问题
如 80 端口打不开,麻烦修改 env 文件, 找到如下调整端口
# ------------------------------ # Docker Compose Service Expose Host Port Configurations # ------------------------------ EXPOSE_NGINX_PORT=8190 EXPOSE_NGINX_SSL_PORT=1443
打开网址报 502 或者 无法登录, 大概率是 nginx 转发失败
通过 查找 docker-web-1 和 docker-api-1 服务 的信息, 寻找对应的 IPAddress 的地址
C:\Users\sys>docker inspect docker-api-1 "Gateway": "172.19.0.1", "IPAddress": "172.19.0.6", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0,
C:\Users\sys>docker inspect docker-web-1 "Gateway": "172.19.0.1", "IPAddress": "172.19.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "DNSNames": [ "docker-web-1", "web", "a9044b828f6e" ]
修改 dify/docker/nginx/conf.d 文件夹下
- 3000 端口是 docker-web-1 的 ip address 填入
- 5001 端口是 docker-api-1 的 ip address 填入
后面直接重启对应的 nginx 容器

# Please do not directly edit this file. Instead, modify the .env variables related to NGINX configuration.
server {
listen ${NGINX_PORT};
server_name ${NGINX_SERVER_NAME};
location /console/api {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /api {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /v1 {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /files {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /explore {
proxy_pass http://172.19.0.5:3000;
include proxy.conf;
}
location /e {
proxy_pass http://plugin_daemon:5002;
proxy_set_header Dify-Hook-Url ://;
include proxy.conf;
}
location / {
proxy_pass http://172.19.0.5:3000;
include proxy.conf;
}
# placeholder for acme challenge location
${ACME_CHALLENGE_LOCATION}
# placeholder for https config defined in https.conf.template
${HTTPS_CONFIG}
}
500 报错
等待后台 api 启动, 以及可能版本升级出现数据库升级问题,可以考虑参考官方升级文档或者清除数据库文件记录
添加模型
在设备里有个 模型提供商, 可以在这边通过 ollama、xinference 等等 手段添加模型


使用方式
知识库添加自己的文档信息,然后通过Rerank 模型 和 Embedding 模型 导入知识库就可以了

模型供应商列表
Dify 为以下模型提供商提供原生支持:



其中 (🛠️) 代表支持 Function Calling,(👓) 代表视觉能力。
工作流
基本介绍工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
Dify 工作流分为两种类型:
- Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
- Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。为解决自然语言输入中用户意图识别的复杂性,Chatflow 提供了问题理解类节点。相对于 Workflow 增加了 Chatbot 特性的支持,如:对话历史(Memory)、标注回复、Answer 节点等。
为解决自动化和批处理情景中复杂业务逻辑,工作流提供了丰富的逻辑节点,如代码节点、IF/ELSE 节点、模板转换、迭代节点等,除此之外也将提供定时和事件触发的能力,方便构建自动化流程。
常见案例
客户服务
- 通过将 LLM 集成到你的客户服务系统中,你可以自动化回答常见问题,减轻支持团队的工作负担。
- LLM 可以理解客户查询的上下文和意图,并实时生成有帮助且准确的回答。
内容生成
- 无论你需要创建博客文章、产品描述还是营销材料,LLM 都可以通过生成高质量内容来帮助你。
- 只需提供一个大纲或主题,LLM将利用其广泛的知识库来制作引人入胜、信息丰富且结构良好的内容。
任务自动化
- 可以与各种任务管理系统集成,如 Trello、Slack、Lark、以自动化项目和任务管理。
- 通过使用自然语言处理,LLM 可以理解和解释用户输入,创建任务,更新状态和分配优先级,无需手动干预。
数据分析和报告
- 可以用于分析大型知识库并生成报告或摘要。
- 通过提供相关信息给 LLM,它可以识别趋势、模式和洞察力,将原始数据转化为可操作的智能。
- 对于希望做出数据驱动决策的企业来说,这尤其有价值。
邮件自动化处理
- LLM 可以用于起草电子邮件、社交媒体更新和其他形式的沟通。
- 通过提供简要的大纲或关键要点,LLM 可以生成一个结构良好、连贯且与上下文相关的信息。
- 这样可以节省大量时间,并确保你的回复清晰和专业。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker Desktop安装WSL --update报错问题成功解决办法
这篇文章主要介绍了如何在Windows 11上设置WSL2为默认版本,解决WSL2安装和卸载过程中遇到的问题,包括强制中断命令、wsl--uninstall命令无效以及手动删除Linux发行版的方法,需要的朋友可以参考下2025-02-02
在Ubuntu Server 22.04上安装 Docker的详细步骤记录
通过使用容器技术,Docker能够让开发人员将应用及其依赖环境一同打包,从而实现快速部署、一致的开发环境和优秀的可移植性,这篇文章主要给大家给大家介绍了关于在Ubuntu Server 22.04上安装 Docker详细步骤的相关资料,需要的朋友可以参考下2024-08-08
解决docker pull出现错误:Error response from daemon
这篇文章主要给大家介绍了关于解决docker pull出现错误:Error response from daemon的相关资料,这个错误提示一般是因为你没有权限拉取对应的镜像,文中将解决办法介绍的非常详细,需要的朋友可以参考下2023-12-12
Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境
计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务,本文给大家介绍Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境,感兴趣的朋友一起看看吧2023-12-12


最新评论