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 可以生成一个结构良好、连贯且与上下文相关的信息。这样可以节省大量时间,并确保你的回复清晰和专业。
### 安装和配置OneDrive客户端 #### 准备工作 为了能够在Ubuntu上顺利安装并使用OneDrive客户端,确保系统的软件包列表是最新的。这可以通过执行以下命令来完成: ```bash sudo apt-get update && sudo apt-get upgrade -y ``` #### 安装依赖项 一些必要的依赖项可能需要提前安装,这些依赖项有助于后续的OneDrive GUI或其他形式的OneDrive客户端正常运行。 ```bash sudo apt-get install software-properties-common -y ``` #### 添加PPA仓库 对于希望简化安装流程的用户而言,可以考虑通过添加官方维护者提供的PPA(Personal Package Archive)来获取最新版本的应用程序。针对OneDrive客户端,有专门的PPA可用。 ```bash sudo add-apt-repository ppa:yann1ck/onedrive sudo apt-get update ``` #### 安装OneDrive命令行工具 一旦PPA被成功加入到源列表中之后,就可以直接利用`apt-get`指令来进行OneDrive命令行工具的安装了。 ```bash sudo apt-get install onedrive ``` #### 配置OneDrive账户 初次启动OneDrive命令行工具时会提示进行账号关联操作,在终端内按照指示打开浏览器登录微软账号即可完成绑定过程[^1]。 #### 使用OneDriveGUI增强体验 考虑到部分用户偏好图形化界面而非纯文本环境下的交互方式,可选择额外安装由社区开发的支持GTK风格的OneDriveGUI应用程序。该应用不仅提供了更加友好的视觉效果还集成了更多便捷的功能选项。 ```bash sudo snap install --classic code # 示例为VSCode,此处应替换为onedrive-gtk实际snap名称如果存在的话 # 或者从GitHub下载编译版 ``` 需要注意的是,具体安装方法取决于所选的具体OneDriveGUI实现方案以及当前使用的Linux发行版特性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值