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.mzph.cn/news/896485.shtml

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

相关文章

kafka-关于ISR-概述

一. 什么是ISR &#xff1f; Kafka 中通常每个分区都有多个副本&#xff0c;其中一个副本被选举为 Leader&#xff0c;其他副本为 Follower。ISR 是指与 Leader 副本保持同步的 Follower 副本集合。ISR 机制的核心是确保数据在多个副本之间的一致性和可靠性&#xff0c;同时在 …

1_安装JDK和Hadoop

一、解压jdk和hadoop安装包 下载 通过百度网盘分享的文件&#xff1a;jdk-8u172-linux-x64.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1VjhdpfyqdC7ivEBIjTn8tA 提取码&#xff1a;iz25 二、配置环境变量 vi /root/.bashrc添加 #set java environment export JAVA_H…

.Net 9下使用Tensorflow.net---DNN_Keras

.Net 9下使用Tensorflow.net---DNN_Keras 1、创建应用&#xff0c;导入依赖2、编写代码1&#xff09;添加引用2&#xff09;创建基础对象3&#xff09;初始化数据集4&#xff09;重点步骤&#xff1a;创建 Keras下的DNN模型5&#xff09;训练模型得到评估值6&#xff09;结果输…

边缘计算收益低的三大指标

边缘计算收益低的三大指标主要包括以下方面&#xff1a; 1. 资源贡献不足&#xff1a; 边缘计算的收益通常基于所提供的带宽、存储和计算资源来计算。如果设备的网络带宽有限、在线时间短或提供的存储容量较小&#xff0c;可能无法满足平台设定的最低贡献标准&#xff0c;从而导…

重大更新!锂电池剩余寿命预测新增 CALCE 数据集

往期精彩内容&#xff1a; 单步预测-风速预测模型代码全家桶-CSDN博客 半天入门&#xff01;锂电池剩余寿命预测&#xff08;Python&#xff09;-CSDN博客 超强预测模型&#xff1a;二次分解-组合预测-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;BiLSTM-Attention预测模型…

开发一个交易所需要哪些技术?

在当今数字化时代&#xff0c;交易所作为金融市场的重要组成部分&#xff0c;其技术架构和功能的复杂性日益增加。无论是传统的股票、期货交易所&#xff0c;还是新兴的数字货币交易所&#xff0c;开发一个高效、安全、可靠的交易所系统都是一个复杂而系统的工程。本文将深入探…

Java语言Leetcode中常用的一些基础语法

文章目录 Java语言Leetcode中常用的一些基础语法栈与队列栈队列 类型转换字符串与字符数组的转换数组与 List 的转换 排序使用 Collections.sort()使用 List.sort()自定义对象排序 Java语言Leetcode中常用的一些基础语法 栈与队列 栈 在Java中&#xff0c;栈通常可以通过 ja…

C++ STL(三)list

目录 list是什么 构造函数 元素访问 容量操作 修改 迭代器 code实例 实现简单的list forward_list是什么 构造函数 元素访问 容量 修改 迭代器 code实例 实现一个简单的forward_list list是什么 std::list 是 C 标准模板库&#xff08;STL&#xff09;中的一个…

【Maui】系统找不到指定的文件Xamarin.Android.Aapt2.targets

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 And…

sql server 复制从备份初始化数据

参考 &#xff1a; 从备份初始化订阅&#xff08;事务&#xff09; - SQL Server | Microsoft Learn sql server 复制默认是用快照初始化数据的&#xff0c;也支持从备份初始化数据&#xff0c;参考如上

GDidees CMS v3.9.1本地文件泄露漏洞(CVE-2023-27179)

漏洞简介&#xff1a; GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞&#xff0c;漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。 漏洞环境&#xff1a; 春秋云镜中的漏洞靶标&#xff0c;CVE编号为CVE-2023-27179 漏洞复现: 进入靶场发现没…

Redis面试题----MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?

要保证 Redis 中存储的 20w 数据都是热点数据&#xff0c;可以从数据筛选和数据淘汰两个大的方面来考虑&#xff0c;以下是详细的实现思路和方法&#xff1a; 数据筛选 1. 基于业务规则 分析业务场景&#xff1a;不同的业务场景有不同的热点数据特征。例如&#xff0c;在电商…

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝 问题展示解决办法 问题展示 在使用docker中的consul服务的时候&#xff0c;通过命令行注册相应的服务&#xff08;比如cloudwego项目的demo_proto以及user服务&#xff09;失败。 解决办法 经过分析&#xff0c;是…

【第十节】C++设计模式(结构型模式)-Flyweight( 享元)模式

目录 一、问题背景 二、模式选择 三、代码实现 四、总结讨论 一、问题背景 享元模式&#xff08;Flyweight Pattern&#xff09;在对象存储优化中的应用 在面向对象系统的设计与实现中&#xff0c;创建对象是最常见的操作之一。然而&#xff0c;如果一个应用程序使用了过多…

spring boot 2.7 + seata +微服务 降级失败问题修复

文章引流 一个简单而使用的API管理工具 版本号 spring boot 2.7.17 spring-cloud-dependencies 2021.0.8 spring-cloud-circuitbreaker-resilience4j 2.1.7 spring-cloud-starter-alibaba-seata 2021.1 jdk 1.8原因分析 未配置属性 feign.circuitbreaker.enabledtrue # 未…

实现实时数据仓库开源项目

根据你的需求&#xff0c;以下是一些可以实现类似 ClickHouse 的实时数仓功能的项目&#xff0c;这些项目提供了高性能的数据处理和分析能力&#xff0c;适合实时数据仓库的场景&#xff1a; 1. Apache Doris Apache Doris 是一个开源的实时数据仓库&#xff0c;支持高吞吐量…

【字符串】最长公共前缀 最长回文子串

文章目录 14. 最长公共前缀解题思路&#xff1a;模拟5. 最长回文子串解题思路一&#xff1a;动态规划解题思路二&#xff1a;中心扩散法 14. 最长公共前缀 14. 最长公共前缀 ​ 编写一个函数来查找字符串数组中的最长公共前缀。 ​ 如果不存在公共前缀&#xff0c;返回空字符…

Maven的传递性、排除依赖、生命周期、插件

一、Maven的传递性 蓝色背景中的两个jar包是projectA的直接依赖&#xff0c;其余的Jar包是projectA的间接依赖。 projectA可以使用直接依赖&#xff0c;也可以使用间接依赖。 maven-projectB项目引入了maven-projectC(整个项目打成了jar包&#xff09;和junit两个jar包。 ma…

API,URL,Token,XML,JSON是干嘛的

API&#xff0c;URL&#xff0c;Token&#xff0c;XML&#xff0c;JSON是干嘛的 API的作用 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一组定义和协议&#xff0c;用于构建和交互软件应用程序。API允许不同的软件系统之间…

Spring Boot操作MaxComputer(保姆级教程)

目录 引言 一、引入依赖 二、配置文件 application.properties&#xff08;信息用自己的奥&#xff09; 三、实体类User.java 四、UserController 五、UserService 六、UserDao 七、UserDao.xml 八、postman 访问&#xff0c;成功查询数据 附件(修改和删除数据) 引言…