Dify在Ubuntu20.04系统的部署

news2025/3/1 4:07:03

文章目录

    • 一、dify 介绍
      • 1.核心功能优势
      • 2.应用场景
    • 二、dify 安装(docker方式)
      • 1.代码库下载
      • 2.配置文件修改
      • 3.启动docker 容器
    • 三、遇到问题与解决
      • 1.使用`sudo docker compose up -d`报错
      • 2.使用`service docker start`报错

一、dify 介绍

Dify 是一款开源的大语言模型(LLM)智能体开发平台,可以用于快速搭建个性化或具备商业价值的智能体。在这里插入图片描述

1.核心功能优势

(1)丰富的功能组件

AI 工作流:通过可视化画布构建和测试强大的 AI 工作流

RAG 管道:支持从文档摄入到检索的完整流程,可从 PDF、PPT 等常见格式中提取文本

Agent 智能体:基于 LLM 的推理能力,可以自主规划任务、调用工具,完成复杂任务

模型管理:支持数百种专有和开源的 LLM,如GPT、 Deepseek r1、Llama3 等,并提供模型性能比较功能

(2)工具集成

Dify 提供了 50 多种内置工具(如谷歌搜索、DALL·E、Stable Diffusion 等),并允许自定义模型接入

2.应用场景

智能客服与对话助手:通过自然语言处理技术快速响应用户咨询,支持上下文记忆和多轮对话设计。

内容生成与文档处理:自动生成文章、摘要、代码,或解析长文档进行结构化提取。

商业智能与数据分析:结合企业数据库,生成数据报告或提供决策建议。

二、dify 安装(docker方式)

1.代码库下载

git clone https://github.com/langgenius/dify 

下载后目录如下所示

drwxrwxr-x 11 allyoung allyoung  4096 Feb 24 03:33 ./
drwxrwxr-x 10 allyoung allyoung  4096 Feb 24 03:32 ../
drwxrwxr-x 22 allyoung allyoung  4096 Feb 24 03:33 api/
-rw-rw-r--  1 allyoung allyoung    56 Feb 24 03:33 AUTHORS
-rw-rw-r--  1 allyoung allyoung  9301 Feb 24 03:33 CONTRIBUTING_CN.md
-rw-rw-r--  1 allyoung allyoung 12656 Feb 24 03:33 CONTRIBUTING_JA.md
-rw-rw-r--  1 allyoung allyoung  9948 Feb 24 03:33 CONTRIBUTING.md
-rw-rw-r--  1 allyoung allyoung 12341 Feb 24 03:33 CONTRIBUTING_VI.md
drwxrwxr-x  3 allyoung allyoung  4096 Feb 24 03:33 dev/
drwxrwxr-x  2 allyoung allyoung  4096 Feb 24 03:33 .devcontainer/
drwxrwxr-x 10 allyoung allyoung  4096 Feb 24 03:33 docker/
drwxrwxr-x  8 allyoung allyoung  4096 Feb 24 03:33 .git/
-rw-rw-r--  1 allyoung allyoung   338 Feb 24 03:33 .gitattributes
drwxrwxr-x  7 allyoung allyoung  4096 Feb 24 03:33 .github/
-rw-rw-r--  1 allyoung allyoung  3279 Feb 24 03:33 .gitignore
drwxrwxr-x  2 allyoung allyoung  4096 Feb 24 03:33 images/
-rw-rw-r--  1 allyoung allyoung  2400 Feb 24 03:33 LICENSE
-rw-rw-r--  1 allyoung allyoung  1304 Feb 24 03:33 Makefile
-rw-rw-r--  1 allyoung allyoung 16631 Feb 24 03:33 README_AR.md
-rw-rw-r--  1 allyoung allyoung 13488 Feb 24 03:33 README_CN.md
-rw-rw-r--  1 allyoung allyoung 15162 Feb 24 03:33 README_ES.md
-rw-rw-r--  1 allyoung allyoung 15345 Feb 24 03:33 README_FR.md
-rw-rw-r--  1 allyoung allyoung 14846 Feb 24 03:33 README_JA.md
-rw-rw-r--  1 allyoung allyoung 13519 Feb 24 03:33 README_KL.md
-rw-rw-r--  1 allyoung allyoung 14279 Feb 24 03:33 README_KR.md
-rw-rw-r--  1 allyoung allyoung 13736 Feb 24 03:33 README.md
-rw-rw-r--  1 allyoung allyoung 14433 Feb 24 03:33 README_PT.md
-rw-rw-r--  1 allyoung allyoung 13615 Feb 24 03:33 README_SI.md
-rw-rw-r--  1 allyoung allyoung 14392 Feb 24 03:33 README_TR.md
-rw-rw-r--  1 allyoung allyoung 15423 Feb 24 03:33 README_VI.md
drwxrwxr-x  5 allyoung allyoung  4096 Feb 24 03:33 sdks/
drwxrwxr-x 20 allyoung allyoung  4096 Feb 24 03:33 web/

2.配置文件修改

进入代码库下载目录dify中的docker目录

cd ./dify/docker

.env.example改名为.env

cp .env.example .env

3.启动docker 容器

通过 $ docker compose version 命令检查版本,根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。

示例如下

$  docker compose version
Docker Compose version v2.20.3

本机Docker Compose 版本为v2,使用以下命令:

sudo docker compose up -d #Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多容器的 Docker 应用程序。借助一个 YAML 文件(通常命名为 `docker-compose.yml`),你可以对应用程序的服务、网络、卷等配置进行定义,然后使用 Docker Compose 命令一键式地启动、停止和管理整个应用程序。

这里如果版本是 Docker Compose V1,使用以下命令:

sudo docker-compose up -d

运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s 
 ✔ Network docker_default             Created                                                                 0.0s 
 ✔ Container docker-redis-1           Started                                                                 2.4s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s 
 ✔ Container docker-sandbox-1         Started                                                                 2.7s 
 ✔ Container docker-web-1             Started                                                                 2.7s 
 ✔ Container docker-weaviate-1        Started                                                                 2.4s 
 ✔ Container docker-db-1              Started                                                                 2.7s 
 ✔ Container docker-api-1             Started                                                                 6.5s 
 ✔ Container docker-worker-1          Started                                                                 6.4s 
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最后检查是否所有容器都正常运行:

docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox

NAME                  IMAGE                              COMMAND                   SERVICE      CREATED              STATUS                        PORTS
docker-api-1          langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   api          About a minute ago   Up About a minute             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           About a minute ago   Up About a minute (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        About a minute ago   Up About a minute             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        About a minute ago   Up About a minute (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                   sandbox      About a minute ago   Up About a minute             
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   About a minute ago   Up About a minute             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     About a minute ago   Up About a minute             
docker-web-1          langgenius/dify-web:0.6.13         "/bin/sh ./entrypoin…"   web          About a minute ago   Up About a minute             3000/tcp
docker-worker-1       langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   worker       About a minute ago   Up About a minute             5001/tcp

然后即可在浏览器上输入http://<your_ip>进行登陆。效果如下
在这里插入图片描述

三、遇到问题与解决

1.使用sudo docker compose up -d报错

报错日志如下

$ sudo docker compose up -d
[sudo] password for allyoung: 
[+] Running 10/10
 ✘ web Error                                                                                                                                                                                                                               15.0s 
 ✘ worker Error                                                                                                                                                                                                                            15.0s 
 ✘ nginx Error                                                                                                                                                                                                                             15.0s 
 ✘ db Error                                                                                                                                                                                                                                15.0s 
 ✘ redis Error                                                                                                                                                                                                                             15.0s 
 ✘ ssrf_proxy Error                                                                                                                                                                                                                        15.0s 
 ✘ plugin_daemon Error                                                                                                                                                                                                                     15.0s 
 ✘ api Error                                                                                                                                                                                                                               15.0s 
 ✘ sandbox Error                                                                                                                                                                                                                           15.0s 
 ✘ weaviate Error                                                                                                                                                                                                                          15.0s 
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

原因在于网络超时,无法获取到docker 镜像。

解决:增加docker镜像地址。

sudo vim /etc/docker/daemon.json

daemon.json中写入如下内容

{
 	"registry-mirrors": [
       "https://pull.loridocker.com",
       "https://docker.hlmirror.com",
       "https://dockerpull.cn"
  ]
 }

注意修改镜像地址后,要重启docker 后生效。命令如下

systemctl daemon-reload
systemctl restart docker

然后重新执行sudo docker compose up -d即可。

2.使用service docker start报错

报错日志如下

# service docker start
Failed to start docker.service: Unit docker.service not found.
# docker -v
Docker version 27.2.0, build 3ab4256

原因在于docker 安装不完整。

解决:

curl -sSL https://get.docker.com/ |sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达梦:内存相关参数

目录 28个相关参数1. 内存池相关MEMORY_POOLMEMORY_N_POOLSMEMORY_BAK_POOL 2. 大缓冲区相关HUGE_BUFFERHUGE_BUFFER_POOLS 3. 共享缓冲区相关BUFFERBUFFER_POOLSBUFFER_MODEMAX_BUFFER 4. 快速池相关FAST_POOL_PAGES 5. 回收池相关RECYCLE_POOLS 6. 回滚段池相关ROLLSEG_POOLS…

计算机毕设-基于springboot的融合多源高校画像数据与协同过滤算法的高考择校推荐系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

《Qt动画编程实战:轻松实现头像旋转效果》

《Qt动画编程实战&#xff1a;轻松实现头像旋转效果》 Qt 提供了丰富的动画框架&#xff0c;可以轻松实现各种平滑的动画效果。其中&#xff0c;旋转动画是一种常见的 UI 交互方式&#xff0c;广泛应用于加载指示器、按钮动画、场景变换等。本篇文章将详细介绍如何使用 Qt 实现…

SpringBoot3—快速入门

一、简介 &#xff08;1&#xff09;前置知识 Java17Spring、SpringMVC、MyBatisMaven、IDEA &#xff08;2&#xff09;环境要求 &#xff08;3&#xff09;SpringBoot3是什么 核心概念&#xff1a;Spring Boot 底层是 Spring&#xff0c;能简单、快速地创建一个独立的、生…

Python基于机器学习的微博舆情情感分析系统,微博评论情感分析可视化系统(全新升级)

大家好&#xff0c;今天为大家带来的是Python基于机器学习的微博舆情情感分析系统&#xff0c;微博评论情感分析可视化系统&#xff0c;这个系统在原本的系统上进行优化升级。 算法从开源框架的 snlow &#xff0c;到支持机器学习的 lstm 算法可以手动输入语句&#xff0c;进行…

Matlab地图绘制教程第2期—水陆填充图

上一期分享了海岸线图的绘制方法&#xff1a; 本着由浅入深的理念&#xff0c;本期再来分享一下水陆填充图的绘制方法。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab地图绘制教程系列&#xff0c;旨在降低大家使用Matlab进行地图类科研绘图的门槛&#xff0c;…

云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书

云创智城YunCharge 新能源充电行业系统说明书 ⚡官方文档 ⚡官网地址 1. 引言 随着全球环境保护和能源危机的加剧&#xff0c;新能源汽车行业得到了快速发展&#xff0c;充电基础设施建设也随之蓬勃发展。新能源充电行业系统旨在提供高效、便捷的充电服务&#xff0c;满足电…

(八)Java-Collection

一、Collection接口 1.特点 Collection实现子类可以存放多个元素&#xff0c;每个元素可以是Object&#xff1b; 有些Collection的实现类&#xff0c;可以存放重复的元素&#xff0c;有些不可以&#xff1b; 有些Collection的实现类&#xff0c;有些是有序的&#xff08;Li…

小程序高度问题背景scss

不同的机型&#xff0c;他的比例啥的都会不一样&#xff0c;同样的rpx也会有不同的效果。所以这里选择了取消高度。 <view class"box-border" :style"{padding-top: ${navHeight}px,}"><!-- 已登录 --><view v-if"userStore.userInfo&…

Cuppa CMS v1.0 任意文件读取(CVE-2022-25401)

漏洞简介&#xff1a; Cuppa CMS v1.0 administrator/templates/default/html/windows/right.php文件存在任意文件读取漏洞 漏洞环境&#xff1a; 春秋云镜中的漏洞靶标&#xff0c;CVE编号为CVE-2022-25401 漏洞复现 弱口令行不通 直接访问administrator/templates/defau…

基于Spark的电商供应链系统的设计与实现

目录 1.研究背景与意义 2、国内外研究现状 3、相关理论与技术 &#xff08;一&#xff09;分布式计算系统Spark &#xff08;二&#xff09;数据仓库Hive &#xff08;三&#xff09;读取服务器本地磁盘的日志数据Flume &#xff08;四&#xff09;分布式消息队列Kafka …

从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(二)

1.安装mogondb数据库 参考MongoDB安装配置教程&#xff08;详细版&#xff09;_mongodb安装详细步骤-CSDN博客 安装mondbcompass数据库连接工具 参考https://www.mongodb.com/zh-cn/docs/compass/current/connect/ 2.后端服务 1.创建src文件夹 并在src文件夹下创建 index…

server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)

从你提供的配置文件&#xff08;应该是 Spring Boot 的 application.yml 或 application.properties 文件&#xff09;来看&#xff0c;以下部分与会话超时时间相关&#xff1a; server:servlet:session:timeout: 12h # timeout: 30cookie:name: VENDER_SID会话超时时间的…

使用vscode导出Markdown的PDF无法显示数学公式的问题

我的硬件环境是M2的MacBook air&#xff0c;在vscode中使用了Markdown PDF来导出md文件对应的PDF。但不管导出html还是PDF文件&#xff0c;数学公式都是显示的源代码。 我看了许多教程&#xff0c;给的是这个方法&#xff1a;在md文件对应的html文件中加上以下代码&#xff1a…

Idea编译项目很久之后,提示 Error:java:OutOfMemoryError:insufficient memory

项目挺老的的了&#xff0c;平常项目启动&#xff0c;也要挺久的&#xff0c;但是最起码能启动成功&#xff0c;今天下午的时候&#xff0c;项目启动了十几分&#xff0c;一直在转圈&#xff0c;后面控制台输出了这一行异常 Error:java:OutOfMemoryError:insufficient memory …

LSTM长短期记忆网络-原理分析

1 简介 概念 LSTM&#xff08;Long Short-Term Memory&#xff09;也称为长短期记忆网络&#xff0c;是一种改进的循环神经网络&#xff08;RNN&#xff09;&#xff0c;专门设计用于解决传统RNN的梯度消失问题和长程依赖问题。LSTM通过引入门机制和细胞状态&#xff0c;能够更…

IP------PPP协议

这只是IP的其中一块内容PPP&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一章内容为网络类型&#xff0c;可通过以下路径查看IP---网络类型-CSDN博客&#xff0c;欢迎指正 3.PPP协议 1.PPP优点 网络类型&#xff1a;p2p PPP---点到点协议 兼容性会更强凡是接口或…

基于 C++ Qt 的 Fluent Design 组件库 QFluentWidgets

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库&#xff0c;内置超过 150 个开箱即用的 Fluent Designer 组件&#xff0c;支持亮暗主题无缝切换和自定义主题色。 编译示例 以 Qt5 为例&#xff08;Qt6 也支持&#xff09;&#xff0c;将 libQFluentWidgets.d…

ClkLog里程碑:荣获2024上海开源技术应用创新竞赛三等奖

2024年10月&#xff0c;ClkLog团队参加了由上海计算机软件技术开发中心、上海开源信息技术协会联合承办的2024上海数智融合“智慧工匠”选树、“领军先锋”评选活动——开源技术应用创新竞赛。我们不仅成功晋级决赛&#xff0c;还荣获了三等奖&#xff01;这一成就不仅是对ClkL…

TCP基本入门-简单认识一下什么是TCP

部分内容来源&#xff1a;小林Coding TCP的特点 1.面向连接 一定是“一对一”才能连接&#xff0c;不能像 UDP 协议可以一个主机同时向多个主机发送消息&#xff0c;也就是一对多是无法做到的 2.可靠的 无论的网络链路中出现了怎样的链路变化&#xff0c;TCP 都可以保证一个…