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

在阿里云上部署 Docker并通过 Docker 安装 Dify

目录

一、在服务器上安装docker和docker compose

1.1 首先关闭防火墙

1.2 安装docker依赖包

1.3 设置阿里云镜像源并安装docker-ce社区版

1.4 开启docker服务并设置开机自启动

1.5 查看docker版本信息

1.6 设置镜像加速

1.7 将docker compose环境复制到系统的bin目录下以系统识别,并查看版本

二、用docker compose编排安装Dify

2.1 克隆 Dify 源代码至本地

2.2 进入Dify的docker目录下将.env.example备份并用docker compose编排

2.3 编排启动成功,再次检查443端口

2.4 检查九个容器是否正常运行

2.5 在浏览器输入公网IP地址,会自动跳转到安装界面注册dify账号。

三、使用 Dify 构建一个建议的问答知识库机器人

3.1 既然要交互式的问答知识库机器人,因此要选择大模型

3.2 在知识库板块选择创建知识库,这边自行上传了一些文件

3.3 选择经济型的索引方式下一步

3.4 自行修改库名创建完成

3.5 在工作室板块创建聊天助手

3.6 在上下文添加知识库以及开场白、下一步问题建议等

3.7 发布并运行

3.8 测试问答知识库机器人


服务器配置:推荐4核8G以上,否则过低配置Dify安装过后会卡死,本实验环境是8核16G

一、在服务器上安装docker和docker compose

1.1 首先关闭防火墙

1.2 安装docker依赖包

1.3 设置阿里云镜像源并安装docker-ce社区版

1.4 开启docker服务并设置开机自启动

1.5 查看docker版本信息

1.6 设置镜像加速

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置

1.7 将docker compose环境复制到系统的bin目录下以系统识别,并查看版本

二、用docker compose编排安装Dify

2.1 克隆 Dify 源代码至本地

2.2 进入Dify的docker目录下将.env.example备份并用docker compose编排

出现报错:

通过报错原因得知,没有langgenius/dify-web:0.7.0版本,因此在 docker-compose.yaml文件中将所有的0.7.0替换成已有版本0.6.16,将镜像删掉重新用compose进行编排。

Github官网中也有同样的问题,得知目前还没有开放0.7.0的镜像导致拉取不到。

再次出现报错:

拉取镜像超时,是由于镜像加速的原因造成的。

解决方法:

更换镜像加速,将已设置的国内加速地址更换成六个docker镜像加速地址,编排时会选择其中速度最快的地址用于加速。一定要记得重启docker服务才可以生效。

ss -natp | grep 443命令检查443端口是否被占用,否则仍然开启不成功,出现死机的现象。

git checkout 0.6.16 命令将yaml文件中的0.7.0版本全部替换成0.6.16,然后重新编排。

2.3 编排启动成功,再次检查443端口

若如下图则表示可以访问服务器的公网IP可以正常使用dify。

2.4 检查九个容器是否正常运行

包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。(up为运行状态)

2.5 在浏览器输入公网IP地址,会自动跳转到安装界面注册dify账号。

至此使用docker compose编排dify安装成功。

三、使用 Dify 构建一个建议的问答知识库机器人

3.1 既然要交互式的问答知识库机器人,因此要选择大模型

此次实验我选择了智谱AI模型,点击链接跳转到官网去登录获取APIKEY

3.2 在知识库板块选择创建知识库,这边自行上传了一些文件

3.3 选择经济型的索引方式下一步

3.4 自行修改库名创建完成

3.5 在工作室板块创建聊天助手

3.6 在上下文添加知识库以及开场白、下一步问题建议等

3.7 发布并运行

3.8 测试问答知识库机器人

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux (Ubuntu) conda:未找到命令报错处理
  • 大模型预训练与微调之间的关系
  • css渐变边框的两种方案
  • Sql Server 触发器中的临时表
  • LeetCode.22。括号生成
  • C++观察者模式:订阅博主~
  • 2024-08-05升级问题:Android中ScrollView嵌套listview并解决listview显示问题
  • 在Ubuntu 16.04上安装Jenkins的方法
  • 第N8周:使用Word2vec实现文本分类
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • C语言:for、while、do-while循环语句
  • Android系统架构
  • Spring 声明式事务 @Transactional
  • 【STM32单片机_(HAL库)】3-2-3【中断EXTI】【电动车报警器项目】433M无线收发模块实验
  • 【LeetCode热题100】滑动窗口
  • [PHP内核探索]PHP中的哈希表
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 03Go 类型总结
  • Cookie 在前端中的实践
  • django开发-定时任务的使用
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • gops —— Go 程序诊断分析工具
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • TCP拥塞控制
  • tensorflow学习笔记3——MNIST应用篇
  • Terraform入门 - 1. 安装Terraform
  • 初识 beanstalkd
  • 给github项目添加CI badge
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 聚类分析——Kmeans
  • 那些年我们用过的显示性能指标
  • 硬币翻转问题,区间操作
  • MPAndroidChart 教程:Y轴 YAxis
  • 第二十章:异步和文件I/O.(二十三)
  • # Maven错误Error executing Maven
  • #define、const、typedef的差别
  • #QT(一种朴素的计算器实现方法)
  • (02)Hive SQL编译成MapReduce任务的过程
  • (vue)页面文件上传获取:action地址
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三)elasticsearch 源码之启动流程分析
  • (算法)Game
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)iOS字体
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NetCore部署微服务(二)
  • .net操作Excel出错解决