AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

AGI 之 【Dify】 之  使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

目录

AGI 之 【Dify】 之  使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

一、简单介绍

二、Docker 下载安装

三、Dify 下载安装,及部署

附录:一些报错问题处理

一、启动容器报错 Get "https://registry-1.docker.io/v2/": net/http: request canceled

二、docker compose up -d 的时候,docker-db-1 总是重启 Restarting,无法正常 Running


一、简单介绍

AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。

Dify 是一个开源的大语言模型(LLM)应用开发平台,它旨在简化和加速生成式 AI 应用的创建和部署。这个平台结合了后端即服务(Backend as Service, BaaS)和 LLMOps 的理念,为开发者提供了一个用户友好的界面和一系列强大的工具,使他们能够快速搭建生产级的 AI 应用。

Dify 的核心功能包括:

  1. 低代码/无代码开发:通过可视化的方式允许开发者轻松定义 Prompt、上下文和插件等,无需深入底层技术细节。
  2. 模块化设计:采用模块化的设计,每个模块都有清晰的功能和接口,可以根据需求选择性地使用。
  3. 丰富的功能组件:包括 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,帮助开发者从原型到生产的全过程。
  4. 支持多种大语言模型:已支持 OpenAI GPT 系列等模型,并计划进一步扩展。
  5. 数据处理和特征工程工具:提供了数据清洗、特征选择、特征变换等功能,帮助开发者更好地准备数据。
  6. 集成外部知识源:允许自定义 API 接入外部知识源,让大型语言模型深入理解企业知识和业务。

Dify 提供了四种基于 LLM 构建的应用程序,可以针对不同的应用场景和需求进行优化和定制,包括聊天助手、文本生成、智能代理和工作流程。此外,Dify 还支持从 Notion 导入数据,并设置同步,使得数据在 Notion 更新后便自动同步到 Dify。Dify 中存在知识库数据集的单独 API,这与他的服务 API 不同,可以单独使用数据集的 API。

Dify 适合各种技术背景的开发者使用,即使是没有编程基础的用户也能快速上手并参与到 AI 应用的定义和数据运营过程中。作为一个开源项目,Dify 在 GitHub 上有活跃的社区支持,鼓励用户贡献和分享经验。

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 的主要特点包括:

  1. 轻量级:Docker 容器与其他虚拟化技术相比,占用的资源更少,启动速度更快。

  2. 可移植性:Docker 容器可以在不同的机器、数据中心或云服务提供商之间轻松移动。

  3. 环境一致性:Docker 确保应用在不同环境之间具有一致性,从而减少了“在我机器上可以运行”的问题。

  4. 快速部署:Docker 容器的启动时间通常只需几秒钟,这使得部署应用变得更加迅速。

  5. 微服务架构:Docker 容器非常适合微服务架构,每个服务可以独立运行在自己的容器中。

  6. 版本控制和团队协作:Docker 容器可以与现代的 DevOps 工具链紧密结合,支持持续集成和持续部署(CI/CD)。

  7. 隔离性:每个容器都是相互隔离的,运行在自己的环境中,拥有自己的文件系统。

  8. 安全性:容器提供了一个额外的安全层,因为它们运行在用户空间,并且可以利用 Linux 内核的安全特性。

Docker 使用客户端-服务器架构,使用 Docker 守护进程来管理容器。Docker 客户端与守护进程通信,而守护进程负责构建、运行和分发容器。用户可以通过命令行接口(CLI)、Docker Compose(用于定义和运行多容器 Docker 应用的工具)或图形用户界面(GUI)与 Docker 交互。

注意 Dify Docker部署有部署要求,不过目前一般的电脑都符合要求:

二、Docker 下载安装

Docker Windows 版本下载地址:Windows | Docker Docs

为了在 Windows 系统上部署 Dify,你需要先安装 Docker Desktop。

Windows 中的 Docker 可以依赖于两种环境:Hyper-V(虚拟环境)和 WSL(Windows Linux 子系统)。

其中,利用 WSL 环境的部署方案,这需要你从 Microsoft Store 下载一个 Linux 发行版。

如果你的电脑无法使用 Microsoft Store 下载,比如生产环境电脑,那么可以选择使用基于 Hyper-V 的部署方法。启用 Hyper-V 环境的两种方法,下面介绍启用 Hyper-V 环境的方法,任选其一操作即可:

1、以管理员权限打开 PowerShell 控制台

2、输入如下命令即可

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 

3、或者使用 “启用或关闭 Windows 功能”,找到并勾选“Hyper-V”,然后点击“确定”按钮以启用该功能

4、开启 Hyper-V 功能,会提示重启电脑,这时候重启电脑即可

5、下载 Docker ,根据需要选择下载即可

6、下载好Docker ,双击安装即可

值得注意的是如果使用 Hyper-V ,则需要取消勾选第一项

三、Dify 下载安装,及部署

Dify 官网:Dify.AI · 生成式 AI 应用创新引擎

Dify 进行 Docker Compose 部署可以参考:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

1、进入 Dify  官网,如图点击进入 Github ,克隆或者下载代码

2、下载好后,Shift + 鼠标右键,打开 Powershell

3、在 Powershell 中,进入 Dify 源代码的 Docker 目录 ,复制环境配置文件

命:1:cd .\docker\

命令2:cp .env.example .env

4、这里就要启动 Docker,确定当前的 Docker  版本

根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。

你可以通过命令:docker compose version 检查版本

  •     如果版本是 Docker Compose V2,使用以下命令:docker compose up -d
  •     如果版本是 Docker Compose V1,使用以下命令:docker-compose up -d

5、这里是 V2 版本,使用 docker compose up -d 命令来启动容器

运行命令后,开始会拉取数据,然后会看到类似以下的输出,显示所有容器的状态和端口映射:

6、运行完之后,输入 命令可以看到运行的服务

命令:docker compose ps

7、docker 界面也运行正常

8、在浏览器上,输入 http://localhost/install ,这时候也会正常显示设置管理员账号界面

输入信息,配置登录账号

9、在浏览器上,输入 http://localhost/signin,这时候也会正常显示登陆界面,登陆即可

10、登录之后,在工作室创建你的应用,开始玩转 Dify 吧

附录:一些报错问题处理

一、启动容器报错 Get "https://registry-1.docker.io/v2/": net/http: request canceled

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)

分析可能原因:

1)这个是因为源的问题,我们可以使用国内的镜像源。具体操作为:找到C:\Users\Administrator.docker\daemon.json(或者C:\Users\你的用户名.docker\daemon.json)文件

(如果.docker文件下没有daemon.json文件,就自己手动新增)

2)然后添加以下内容:

{"registry-mirrors": ["https://docker.211678.top","https://docker.1panel.live","https://hub.rat.dev","https://docker.m.daocloud.io","https://do.nark.eu.org","https://dockerpull.com","https://dockerproxy.cn","https://docker.awsl9527.cn"]
}

3)保存后重启docker,重启操作为在打开docker Desktop的前提下,点击电脑右小角的小图标,点击“Restart ”,版本不同可能显示不同。

二、docker compose up -d 的时候,docker-db-1 总是重启 Restarting,无法正常 Running

此时 http://localhost/install 界面也一直在转圈,网页一直加载中

docker-db-1 相关日志如下:

running bootstrap script ... 2024-10-14T04:20:59.355405500Z The files belonging to this database system will be owned by user "postgres".
2024-10-14 12:20:59 This user must also own the server process.
2024-10-14 12:20:59 
2024-10-14 12:20:59 The database cluster will be initialized with locale "en_US.utf8".
2024-10-14 12:20:59 The default database encoding has accordingly been set to "UTF8".
2024-10-14 12:20:59 The default text search configuration will be set to "english".
2024-10-14 12:20:59 
2024-10-14 12:20:59 Data page checksums are disabled.
2024-10-14 12:20:59 
2024-10-14 12:20:59 fixing permissions on existing directory /var/lib/postgresql/data/pgdata ... ok
2024-10-14 12:19:58 2024-10-14 04:19:58.620 UTC [63] FATAL:  data directory "/var/lib/postgresql/data/pgdata" has invalid permissions
2024-10-14 12:19:58 2024-10-14 04:19:58.620 UTC [63] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
2024-10-14 12:19:58 child process exited with exit code 1
2024-10-14 12:19:58 initdb: removing contents of data directory "/var/lib/postgresql/data/pgdata"
2024-10-14 12:20:59 creating subdirectories ... ok
2024-10-14 12:20:59 selecting dynamic shared memory implementation ... posix
2024-10-14 12:20:59 selecting default max_connections ... 20
2024-10-14 12:21:00 selecting default shared_buffers ... 400kB
2024-10-14 12:21:00 selecting default time zone ... UTC
2024-10-14 12:21:00 creating configuration files ... ok
2024-10-14 12:21:00 2024-10-14 04:21:00.539 UTC [63] FATAL:  data directory "/var/lib/postgresql/data/pgdata" has invalid permissions
2024-10-14 12:21:00 2024-10-14 04:21:00.539 UTC [63] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
2024-10-14 12:21:00 child process exited with exit code 1
2024-10-14 12:21:00 initdb: removing contents of data directory "/var/lib/postgresql/data/pgdata"
2024-10-14 12:21:00 running bootstrap script ...

解决方式之一如下

1、在 dify/docker 文件夹下找到 docker-compose.yaml

2、找到文件夹中的 volumes/db/data ,替换为 postgres-data,如下图

(不同版本,内容可能有些不一样)

3、最后在末尾,添加上 postgres-data

4、保存上面修改,然后在 powershell down 一下 容器

命令:docker compose down -v

5、之后,再次重新启动一下容器

命令:docker compose up

6、docker-db-1 运行正常了

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

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

相关文章

线上游戏 线下陪玩线下家政陪聊陪诊陪游系统多少钱

关于线上游戏、线下陪玩、线下家政、陪聊、陪诊、陪游等系统的价格,由于这些服务涉及多个不同的行业和领域,且每个行业内部的定价也会因服务内容、服务质量、服务地区、服务提供商等多种因素而有所不同,因此很难给出一个统一的答案。 一般来…

【Linux】解读信号的本质&相关函数及指令的介绍

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

[Linux#62][TCP] 首位长度:封装与分用 | 序号:可靠性原理 | 滑动窗口:流量控制

目录 一. 认识TCP协议的报头 1.TCP头部格式 2. TCP协议的特点 二. TCP如何封装与分用 TCP 报文封装与解包 如何封装解包,如何分用 分离有效载荷 隐含问题:TCP 与 UDP 报头的区别 封装和解包的逆向过程 如何分用 TCP 报文 如何通过端口号找到绑…

HNU-并行算法设计与分析-期末考查报告

《并行算法设计与分析》期末考查题实现与分析报告 by 甘晴void 1 题目重述 Consider a sparse matrix stored in the compressed row format (you may find a description of this format on the web or anysuitable text on sparse linear algebra). Write an OpenMP progra…

UE4 材质学习笔记08(雨滴流淌着色器/雨水涟漪着色器)

一.雨滴流淌着色器 法线贴图在红色通道和绿色通道上,那是法线的X轴和Y轴,在蓝色通道中 我有个用于雨滴流淌的蒙版,在Alpha通道中,有个时间偏移蒙版。这些贴图都是可以在PS上制作做来的,雨滴流淌图可以直接用笔刷画出来…

如何下载3GPP协议?

一、进入3GPP网页 https://www.3gpp.org/ 二、点击“Specifications &Technologies” 三、点击“FTP Server” 网址: https://www.3gpp.org/specifications-technologies 四、找到“latest”,查看最新版 网址: https://www.3gpp.org/ftp…

DeepFM模型预测高潜购买用户

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色&…

十一、Linux 之Linux 磁盘分区、挂载

1、linux分区 1.1 原理介 Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。Linux 采用了一种叫“载入”的处理方法,它的整…

Ubuntu22.04环境下源码安装OpenCV 4.8.1

因为项目需要用OpenCV对yolov8模型进行推理,通过DNN模块,之前本地的OpenCV版本是4.5.4(好像安装完ROS2 humble之后系统就自带了opencv),加载onnx模型一直报错,网上查询到需要4.7以上,干脆直接升…

sql 语句相关的函数

1. 聚合函数 这些函数用于对一组值进行计算,并返回单个值。 1.COUNT(): 计算行数。count SELECT COUNT(*) FROM students;2.SUM(): 求和。sum SELECT SUM(salary) FROM employees;3.AVG(): 计算平均值。avg SELECT AVG(score) FROM test_scores;4.MAX(): 找到最…

思维,CF 1980E - Permutation of Rows and Columns

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1980E - Permutation of Rows and Columns 二、解题报告 1、思路分析 我…

Golang | Leetcode Golang题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; func findComplement(num int) int {highBit : 0for i : 1; i < 30; i {if num < 1<<i {break}highBit i}mask : 1<<(highBit1) - 1return num ^ mask }

邻接矩阵的无向图(C语言代码)

无向图是对称的 所以 &#xff1a; G->matrix[i][j] 1; G->matrix[j][i] 1; AB线段为1的同时 BA的线段也为1 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #define MAXVEX 100//最大顶点数 typedef struc…

一键解锁新技能!2024年电脑录屏神器推荐

咱们现在这个时代&#xff0c;电脑录屏软件就跟手机一样&#xff0c;几乎人人都有。不管是教别人怎么做事&#xff0c;记录开会内容&#xff0c;还是把玩游戏时候的高光时刻分享给朋友&#xff0c;有个好用的录屏软件真的能让事情变得简单很多。今天我就来给你介绍四款2024年超…

解决低版本pytorch和onnx组合时torch.atan2()不被onnx支持的问题

解决这个问题&#xff0c;最简单的当然是升级pytorch和onnx到比较高的版本&#xff0c;例如有人验证过的组合: pytorch2.1.1cu118, onnxruntime1.16.3 但是因为你的模型或cuda环境等约束&#xff0c;不能安装这么高的版本的pytorch和onnx组合时(例如我的环境是pytorch1.12&…

数据结构5——队列

1. 队列的概念及结构 队列的概念&#xff1a; 与栈相比&#xff0c;队列也是一种特殊的线性表&#xff0c;不同的是&#xff0c;队列只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作。队列遵守先进先出 FIFO(First In First Out)的原则。 入队列&#xff1…

Qualitor checkAcesso.php 任意文件上传漏洞复现(CVE-2024-44849)

0x01 漏洞概述 Qualitor 8.24及之前版本存在任意文件上传漏洞,未经身份验证远程攻击者可利用该漏洞代码执行,写入WebShell,进一步控制服务器权限。 0x02 复现环境 FOFA:app="Qualitor-Web" 0x03 漏洞复现 PoC POST /html/ad/adfilestorage/request/checkAcess…

暖水毯/取暖毯语音识别控制芯片IC方案

暖水毯、取暖毯作为现代家居生活的温暖伴侣&#xff0c;其智能化升级已是大势所趋。在暖水毯与取暖毯中融入语音识别控制芯片IC方案&#xff0c;为用户的冬日取暖体验带来了革命性的变革。 一、暖水毯/取暖毯增加语音识别控制芯片方案&#xff0c;让产品能通过对话来调节&…

RSA简单实例

RSA简单实例 RSA是一种非对称加密算法&#xff0c;其安全性基于质因数分解的困难性。下面以p3和q5为例&#xff0c;详细解释RSA算法的产生过程以及加密解密过程&#xff1a; 一、RSA算法的产生过程 选择质数&#xff1a; 随机选择两个不相等的质数p和q。在这个例子中&#…

分享5款堪称神器的软件

​ 今天再来推荐5个超级好用的效率软件&#xff0c;每个都堪称神器中的神器&#xff0c;用完后觉得不好用你找我。 1. 启动器——Launchy ​ Launchy是一款开源的启动器软件&#xff0c;帮助用户快速启动应用程序、文件夹和文件。用户只需通过快捷键调出Launchy界面&#xff…