当前位置: 首页 > article >正文

Dify在Ubuntu20.04系统的部署

文章目录

    • 一、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.kler.cn/a/565303.html

相关文章:

  • OSPF在校园网络的应用
  • Ollama使用笔记【更新ing】
  • MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  • 代码随想录算法【Day57】
  • 笔记:大模型Tokens是啥?为啥大模型按Tokens收费?
  • Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调
  • Spark map与mapPartitions算子源码级深度解析
  • 在本机电脑搭建AI大模型环境的要求和模型选择
  • 一个原教旨的多路径 TCP
  • 基于Rook的Ceph云原生存储部署与实践指南(上)
  • 文字描边实现内黄外绿效果
  • 算法日记29:leetcode322零钱兑换(DFS->记忆化搜索->DP)
  • Flask 应用结构与模块化管理详细笔记
  • React 项目创建与文件基础结构关系
  • MATLAB环境下从信号中去除60Hz工频干扰噪声
  • MySQL零基础教程09—正则表达式搜索(上)
  • C++ 设计模式 十:享元模式 (读书 现代c++设计模式)
  • [特殊字符] 蓝桥杯 Java B 组 之最小生成树(Prim、Kruskal) 并查集应用
  • AI人工智能机器学习之降维和数据压缩
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_rbtree_init