专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
GiantPandaCV  ·  AwesomeCLIP---100+篇CLI ... ·  2 天前  
GiantPandaCV  ·  小白视角:利用 vllm serve 新的 ... ·  4 天前  
GiantPandaCV  ·  小白视角:利用 SGL 来 Serve ... ·  6 天前  
GiantPandaCV  ·  小白视角:vllm 迁移到 SGLang ... ·  1 周前  
51好读  ›  专栏  ›  GiantPandaCV

在白嫖的阿里云ECS上手动部署Dify运行大模型应用

GiantPandaCV  · 公众号  · 3D  · 2024-08-30 12:36

正文

0x0. 前言

近期,想尝试搭建一个知识库聊天机器人。作为一个《武林外传》的忠实粉丝,我希望能够创建一个基于这部经典喜剧的智能问答系统。我选择的方案是基于Dify在云服务器上部署一个知识库聊天机器人。很早之前用过阿里云的免费试用,就一台,配置差强人意。但是最近听说有升级,变成了按个人用户300元总额度计算,可以自由选择配置,更有包括香港在内的7个节点可以选,这不得用起来。我开了一台免费的2核心CPU 4GB内存的机器,并在这台机器上部署了Dify平台,再结合Qwen2-7B-Chat大模型API,成功建立起了一个基于《武林外传》剧本的知识库聊天机器人。

0x1. 阿里云ECS简介以及如何试用300元免费额度的云服务器

这个活动需要满足是新用户的条件,然后进入 https://free.aliyun.com/?spm=5176.13830350.J_9630841290.4.3b3750d0kpmRdO&product=1351 或者 https://click.aliyun.com/m/1000396521/ 这两个页面即可免费体验阿里云ECS了。进入页面之后我们可以选择我们需要的配置:

我这里选择了2CPU/4GB内存/40G SSD的配置,大概是每小时0.47元,一共可以免费体验626小时。如果我们有时候不用这台服务器可以选择关机,这样就不会一直消耗额度了。

接着点击修改密码会自动配置ssh登陆方式。然后实例下方会出现公网ip,我们可以通过ssh直接连接。

我建议使用vscode连接,后面部署Dify时vscode可以自动转发端口,让我们可以本地访问在ECS服务器上部署的Dify。

0x2. Dify简介

https://docs.dify.ai/v/zh-hans Dify的官方文档有详细的介绍。对个人用户来说,Dify提供了很多种AI应用的构建方法,只要我们有Dify支持的大模型API或者自己通过某个sever框架部署的大模型推理服务都可以很轻松的构建出来AI应用,例如聊天机器人,知识库,Agent等等。

我们不仅可以自己根据Dify提供的组建设计AI应用,我们还可以访问无数种其他人搭建好发布的AI应用模板,类似于github的开源仓库,我们可以站在巨人的肩膀上前进。

0x3. 本文的核心任务

这里来演示一下在阿里云ECS免费试用的机器上本地部署Dify,然后配置Qwen2-7B-Chat大模型的API Key并把本地的一个《武林外传》剧本当作知识库在Dify上建立一个机器人。

0x3.1 如何在ECS上部署

我这里选择的是在ECS上使用Docker Compose来部署Dify,首先在ECS上安装Docker和Docker Compose,然后按照Dify提供的官方教程来进行部署:https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/docker-compose 。在这个过程中踩了一个坑,在执行docker compose up -d拉镜像的时候会失败,稳定报错为:error pulling image configuration: download failed after attempts=6:xxx timeout。尝试了科学上网以及阿里云加速镜像两种方法都失败了,后来把能找到的镜像都加上了才成功。操作过程如下:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

然后我是在vscode上连接的ECS机器,会自动做端口转发,浏览器输入转发地址就可以进入到Dify的前端页面了。

0x3.2 Dify建立Qwen2-7B-Chat+本地知识库机器人

我们首先需要设置一个管理员账户才能进入系统:

进入Dify之后我们在工作室页面可以看到左侧可以选择创建空白应用或者从应用模板导入:

然后点击设置里面的模型提供商我们可以看到Dify支持哪些模型供应商,这里的支持既有以API Key的方式提供访问,也有通过推理框架例如Ollama部署服务提供的server接口的方式。

我这里选择了硅基流动提供的免费Qwen2-7B-Chat模型,把API-Key设置好。

下面是创建的Qwen2-7B-Chat空白应用的截图:

0x3.3 给聊天助手加入知识库

接下来是如何加入本地的《武林外传》剧本作为向量库,创建知识库的流程大概如下:

处理完毕之后我们可以回到上一节搭建的Qwen-2-7B聊天助手,挂上知识库。然后提问题模型就会根据我们的语义或者关键词去知识库里面查找内容:

0x5. 阿里云ECS和其它云服务器的简单对比

对个人来说,无论是做AI应用还是搭建博客网站都需要选择一个云服务器,在选择云服务器的初期最好是自己先做一个免费的试用,货比三家再选择,我这里收集到了几家云服务器厂商免费试用的产品信息:

阿里云给的免费试用额度是这里最大的,并且可选的最高配置以及服务器台数等硬件配置也是最高的。感兴 趣的小伙伴可以参加阿里云ECS 的这个免费试用活动。

0x6. 总结

我这⾥在⼀台2核⼼CPU 4GB内存的ECS上部署了Dify,并利⽤Qwen2-7B-Chat⼤模型API以及《武林外传》的剧本建⽴了⼀个知识库聊天机器⼈。Dify是⼀个开源的⼤语⾔模型应⽤开发平台,⽀持多种预训练模型和知识库集成,可快速构建⽣成式AI应⽤。接着我演示了如何在Dify上配置API Key接⼊Qwen2-7B⼤模型,并上传本地⽂件构建知识库,为聊天机器⼈提供相关知识。除了聊天机器人,ECS还有许多其他用途,用于游戏服务器、Web应用托管、负载均衡等等都是可以的,此次灵活的试用机制也提供了更多的自主选择。ECS免费试用升级,一共300元的总额度,可以同时开多台主机搭配使用,是之前从来没有的活动,一定不要错过。