CentOS 7中安装Dify
Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时,会需要用到Dify来帮我们快捷的开发和应用。
大家可以参考学习它的中文文档:https://github.com/langgenius/dify/blob/main/README_CN.md
一、系统要求
在安装 Dify 之前,请确保您的机器满足以下最低系统要求:
- CPU >= 2 Core
- RAM >= 4 GiB
二、安装 Dify
1.安装Docker 和 Docker Compose
安装开始之前,建议大家有且只考虑Docker环境来启动Dify,因为逐个安装环境的工作量非常大。安装方法可以参照我上一篇文章:CentOS 7 中安装 Docker和Docker Compose-CSDN博客
2. 克隆 Dify 仓库
从 Dify 的 GitHub 仓库克隆项目代码到本地:
git clone https://github.com/langgenius/dify.git
cd dify
这一步可能会失败,原因是访问github的网络不稳定导致的,多试几次吧。
3.快速启动
启动 Dify 服务器的最简单方法是运行我们的 docker-compose.yml 文件。
cd docker
cp .env.example .env
docker compose up -d
docker compose up -d会根据docker-compose.yml 文件中的配置,下载所需的 Docker 镜像并启动相关容器。
4.修改源(最关键的一步)
在安装过程中,部分同学可能会在执行docker compose up -d时遇到问题:
[root@localhost docker]# docker compose up -d
[+] Running 10/10✘ worker Error context canceled 15.0s✘ redis Error context canceled 15.0s✘ web Error Get "https://registry-1.docker.io/v2/": context deadline ... 15.0s✘ nginx Error Get "https://registry-1.docker.io/v2/": context deadlin... 15.0s✘ plugin_daemon Error context canceled 15.0s✘ db Error Get "https://registry-1.docker.io/v2/": net/http: request ... 15.0s✘ ssrf_proxy Error context canceled 15.0s✘ api Error Get "https://registry-1.docker.io/v2/": dial tcp 199.59.1... 15.0s✘ weaviate Error Get "https://registry-1.docker.io/v2/": dial tcp 199... 15.0s✘ sandbox Error Get "https://registry-1.docker.io/v2/": net/http: req... 15.0s
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
这是在尝试从 Docker 官方镜像源下载软件包时,网络超时。国内访问 Docker Hub 有时会出现网络不稳定的状况,你可以
4.1.配置国内的 Docker 镜像源
sudo vi /etc/docker/daemon.json
4.2.添加如下内容
{
"registry-mirrors":["https://docker.1panel.live","https://docker.nju.edu.cn","https://registry.cn-hangzhou.aliyuncs.com","https://mirror.ccs.tencentyun.com","https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com","https://docker.mirrors.ustc.edu.cn","https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"
]
}
补充下,以上镜像源有些可能只会对一部分软件包有用,对另外一些软件包无效。所以呢,我们就数量凑质量,多凑一些镜像源 。最终凑齐所有需要的软件包。至于镜像源的地址网上有很多,搜来能用就行。截止到本稿日,以上镜像源是可以下载所有需要的软件包了。
4.3.重启Docker后生效
sudo systemctl restart docker
4.4.确认 Docker 镜像源配置生效
docker info | grep "Registry Mirrors"
如果输出显示了你配置的镜像源,说明配置已生效;若没有显示,需要再次检查 /etc/docker/daemon.json 文件的配置以及是否正确重启了 Docker 服务。
4.5.再来一次
[root@localhost docker]# docker compose up -d
[+] Running 80/32✔ redis Pulled 165.1s✔ db Pulled 179.9s✔ ssrf_proxy Pulled 97.0s✔ sandbox Pulled 98.9s✔ weaviate Pulled 54.4s✔ nginx Pulled 158.9s✔ api Pulled 182.6s✔ web Pulled 164.5s✔ worker Pulled 182.6s✔ plugin_daemon Pulled 112.0s[+] Running 12/12✔ Network docker_default Created 0.5s✔ Network docker_ssrf_proxy_network Created 0.1s✔ Container docker-redis-1 Started 7.2s✔ Container docker-sandbox-1 Started 7.2s✔ Container docker-weaviate-1 Started 7.2s✔ Container docker-ssrf_proxy-1 Started 7.5s✔ Container docker-plugin_daemon-1 Started 7.2s✔ Container docker-db-1 Started 7.3s✔ Container docker-web-1 Started 7.3s✔ Container docker-worker-1 Started 6.8s✔ Container docker-api-1 Started 6.7s✔ Container docker-nginx-1 Started 7.7s
发现成功咯
三、自定义配置
如果您需要自定义配置,请参考 .env.example 文件中的注释,并更新 .env 文件中对应的值。此外,您可能需要根据您的具体部署环境和需求对 docker-compose.yaml 文件本身进行调整,例如更改镜像版本、端口映射或卷挂载。完成任何更改后,请重新运行 docker-compose up -d。您可以在此处找到可用环境变量的完整列表
四、验证安装
判断安装成功的直接标准,肯定是能访问Dify的控制台啦
直接浏览器输入Dify服务器的ip即可,默认端口80,比如http://localhost
首次登录需要设置管理员账号密码

恭喜你,出现这个界面,代表Dify我们安装成功啦
我们设置完管理员账号后,进入控制台看看,并试着添加一个空白应用
好啦,我们可以添加deepseek,gpt等大模型,并研发丰富多彩的AI智能体(Agent)吧
相关文章:
CentOS 7中安装Dify
Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时,会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...
qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系
qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系 code review! 文章目录 qt-C++笔记之Linux下Qt环境变量设置及与QtCreator的关系一.Qt关键的环境变量1.1.PATH1.2.LD_LIBRARY_PATH1.3.QML2_IMPORT_PATH二.若不手动设置这三个环境变量2.1.PATH 的默认路径2.2.LD_LIBRARY_…...
问deepseek:有哪些支持OpenMP多线程并行的AMG代数多重网格软件库
AMG(Algebraic Multigrid)是一种用于求解大规模稀疏线性方程组的有效方法,广泛应用于科学计算和工程领域。OpenMP 是一种用于共享内存并行编程的 API,支持多线程并行计算。 以下是一些支持 OpenMP 多线程的开源 AMG 软件包&#…...
【Flink银行反欺诈系统设计方案】1.短时间内多次大额交易场景的flink与cep的实现
【flink应用系列】1.Flink银行反欺诈系统设计方案 1. 经典案例:短时间内多次大额交易1.1 场景描述1.2 风险判定逻辑 2. 使用Flink实现2.1 实现思路2.2 代码实现2.3 使用Flink流处理 3. 使用Flink CEP实现3.1 实现思路3.2 代码实现 4. 总结 1. 经典案例:短…...
Android 系统开发的指导文档
Android 系统开发的指导文档 文章目录 Android 系统开发的指导文档一、基础准备1、学习编程语言2、熟悉开发环境 二、核心知识学习1、Android 系统架构:2、四大组件(1)Activity:是 Android 应用中最基本的组件,用于实现…...
网络编程——http
在Linux系统中使用C语言实现HTTP客户端或服务器通常涉及使用套接字编程和一些HTTP协议的基本知识。下面是一个简单的示例,展示了如何用C语言实现一个HTTP客户端,向一个HTTP服务器发送请求并接收响应。 1. HTTP客户端示例 (C语言) 这个例子展示了如何用C…...
Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果
Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果 目录 Flutter 学习之旅 之 flutter 使用 carousel_slider 简单实现轮播图效果 一、简单介绍 二、简单介绍 carousel_slider 三、安装 carousel_slider 四、简单案例实现 五、关键代码 一、简单介…...
【JavaScript—前端快速入门】JavaScript 对象与函数
JavaScript 对象 1. JavaScripe 数组 创建数组的方式 使用 new 关键字创建 使用字面量方式创建 [常用] 注意,JavaScipt 不要求数组元素类型都相同; 数组操作 读:使用下标的方式访问数组元素(从0开始) 保存代码,打开…...
java中的局部变量
文章目录 一、定义二、作用域和作用位置三、声明周期和初始化四、内存管理五、Java内存区域划分六、例子 一、定义 在java中,局部变量指在方法、构造方法、代码块(如{}包裹的语句块)内部声明的变量 class work {{int a 10;}public work() {i…...
【芯片设计】AI芯片前端设计工程师面试记录·20250303
【芯片前端设计面试经验专栏介绍】 专栏聚焦数字芯片前端设计核心技术与面试方法论,涵盖架构设计、RTL开发、验证方法学、低功耗设计、时序收敛等高频考点,深入解析行业头部企业的面试真题与设计场景。内容包含但不限于: 知识点系统梳理 :从Verilog/SV语法陷阱、FSM设计模式…...
(IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议
重点:IDE接入DeepSeek是否收费 收费! 本文章主要是为了给小白避雷,目前很多文章告诉大家怎么接入DeepSeek,但是并未告知大家是否收费。如果是想白嫖的,就可以不用去接入了。 一、引言 最近爆火的AI人工智能工具DeepSe…...
【算法学习之路】5.贪心算法
贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳!3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新…...
0x03 http协议和分层架构
HTTP协议 简介 Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应HTTP协议是无状态的协议ÿ…...
ES批量查询
在 Elasticsearch 中,multi_search(也称为 msearch)是一种允许你在单个请求中执行多个搜索操作的 API。它可以显著减少网络开销,尤其是在需要执行多个查询时。multi_search 会将多个查询打包成一个请求发送给 Elasticsearch&#…...
React Refs:深入理解与最佳实践
React Refs:深入理解与最佳实践 引言 在React中,refs是用于访问DOM元素或组件实例的一种方式。与类组件的ref属性不同,函数组件的ref需要使用useRef钩子。正确使用refs可以大大提升React应用的性能和可维护性。本文将深入探讨React Refs的原…...
智能合约安全指南 [特殊字符]️
智能合约安全指南 🛡️ 1. 安全基础 1.1 常见漏洞类型 重入攻击整数溢出权限控制缺陷随机数漏洞前后运行攻击签名重放 1.2 安全开发原则 最小权限原则检查-生效-交互模式状态机安全失败保护机制 2. 重入攻击防护 2.1 基本防护模式 contract ReentrancyGuarde…...
【Python项目】基于Python的书籍售卖系统
【Python项目】基于Python的书籍售卖系统 技术简介:采用Python技术、MYSQL数据库等实现。 系统简介:书籍售卖系统是一个基于B/S结构的在线图书销售平台,主要分为前台和后台两部分。前台系统功能模块分为(1)用户中心模…...
【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(未成功版)
【Linux】【网络】UDP打洞–>不同子网下的客户端和服务器通信(未成功版) 上次说基于UDP的打洞程序改了五版一直没有成功,要写一下问题所在,但是我后续又查询了一些资料,成功实现了,这次先写一下未成功的…...
(1)udp双向通信(2)udp实现文件复制(3)udp实现聊天室
一.udp双向通信 1.fork进程实现双向通信 【1】head.h 【2】client客户端 (1)父进程从键盘获取字符串 (2)输入quit,发送结束子进程信号 (3)exit退出父进程 (1)子进程接受…...
c高级第五天
1> 在终端提示输入一个成绩,通过shell判断该成绩的等级 [90,100] : A [80, 90) : B [70, 80) : C [60, 70) : D [0, 60) : 不及格 #!/bin/bash# 提示用户输入成绩 read -p "请输入成绩(0-100):" score# 判断成…...
【JQuery—前端快速入门】JQuery 操作元素
JQuery 操作元素 1. 获取/修改元素内容 三个简单的获取元素的方法: 这三个方法即可以获取元素的内容,又可以设置元素的内容. 有参数时,就进行元素的值设置,没有参数时,就进行元素内容的获取. 接下来,我们需…...
深度学习-139-RAG技术之Agentic Chunking分块技术的工作原理及简单实现
文章目录 1 传统分块的问题2 Agentic Chunking的工作原理3 Agentic Chunking怎么实现3.1 Propositioning文本3.1.1 大语言模型3.1.2 官方提示词模板3.1.3 抽取链3.2 使用LLM Agent创建文本块3.2.1 创建新文本块3.2.2 将proposition添加到文本块3.2.3 将proposition推送到合适的…...
BambuStudio学习笔记:Flow 类
Flow 类文档 概述 Flow 类用于管理3D打印过程中的挤出流程参数计算,包括挤出宽度、间距、流量等核心参数。支持桥梁模式、不同流程角色配置,提供多种流量计算方式。 头文件 #ifndef slic3r_Flow_hpp_ #define slic3r_Flow_hpp_ // ... #endif枚举类型…...
标签的ref属性 vue中为什么不用id标记标签
标签的ref属性 vue中为什么不用id标记标签 假设有一对父子组件,如果父组件和子组件中存在id相同的标签,会产生冲突。通过id获取标签会获取到先加载那个标签。 标签的ref属性的用法 在父组件App中,引入了子组件Person。 并使用ref标记了Pe…...
7.1.1 计算机网络的组成
文章目录 物理组成功能组成工作方式完整导图 物理组成 计算机网络是将分布在不同地域的计算机组织成系统,便于相互之间资源共享、传递信息。 计算机网络的物理组成包括硬件和软件。硬件中包含主机、前端处理器、连接设备、通信线路。软件中包含协议和应用软件。 功…...
IDEA 接入 Deepseek
在本篇文章中,我们将详细介绍如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek,让你的 AI 编程助手更智能,提高开发效率。 一、前置准备 在开始之前,请确保你已经具备以下条件: 安装了 JetBrains IDEA&…...
mapbox基础,使用点类型geojson加载symbol符号图层,用于标注文字
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️symbol符号图层样式二、🍀使用点类型…...
STM32---FreeRTOS中断管理试验
一、实验 实验目的:学会使用FreeRTOS的中断管理 创建两个定时器,一个优先级为4,另一个优先级为6;注意:系统所管理的优先级范围 :5~15 现象:两个定时器每1s,打印一段字符串&#x…...
Python 网络爬虫教程与案例详解
Python 网络爬虫教程与案例详解 在当今数字化时代,数据的价值愈发凸显。Python 作为一门强大的编程语言,在数据获取领域有着广泛的应用,其中网络爬虫便是一项重要的技术。网络爬虫能够自动从网页中提取所需数据,极大地提高了数据…...
HTTP 状态代码 501 502 问题
问题 单个客户端有时会出现 报错 501 或 502 如下: System.Net.Http.HttpRequestException: Response status code does not indicate success: 501 (Not Implemented) 分析 可以排除 服务器无法处理的问题(测试发现 一个客户端报错,不会影响…...
