Deepseek部署+Dify知识库构建

举报
码上开花_Lancer 发表于 2025/03/24 16:02:11 2025/03/24
【摘要】 一、DeepSeek快速安装部署DeepSeek是这段时间最热门的话题之一,其蒸馏模型可以实现低成本而高质量的推理,使得我们现在可以在本地小型化的硬件上也用上大模型这一AI利器。本实验指导用户通过Ollama来部署DeepSeek R1模型。实验目的本实验是deepseek的部署体验实验,选用deepseek:1.5b版本,权重文件大小约为1.1G,方便快速下载。并且该版本在CPU环境下部署...

一、DeepSeek快速安装部署

DeepSeek是这段时间最热门的话题之一,其蒸馏模型可以实现低成本而高质量的推理,使得我们现在可以在本地小型化的硬件上也用上大模型这一AI利器。本实验指导用户通过Ollama来部署DeepSeek R1模型。

实验目的

本实验是deepseek的部署体验实验,选用deepseek:1.5b版本,权重文件大小约为1.1G,方便快速下载。并且该版本在CPU环境下部署运行时,流畅性能满足个人体验使用。

通过本实验,开发者可以了解并掌握通过Ollama来部署DeepSeek R1模型的常用方法。

操作前提

1. 实验环境准备

点击浏览器刷新按钮,刷新实验界面

1.1 创建ECS

1. 登录账号后,将跳转至控制台页面,点击左上角服务列表按钮,找到【弹性云服务器ECS】,点击进入ECS控制台界面:

1.1 创建ECS

1. 登录账号后,将跳转至控制台页面,点击左上角服务列表按钮,找到【弹性云服务器ECS】,点击进入ECS控制台界面:

说明:如选项卡里没有【弹性云服务器ECS】,可在搜索框里输入“ECS”搜索。



2. 点击右上角“购买弹性云服务器”按钮



3. 计费模式选择“按需计费”,区域选择“北京四”



4. 选择“x86计算”架构,规格选择“**c7.xlarge.2**”

本实验是deepseek的部署体验,选用deepseek:1.5b版本,权重文件大小约为1.1G,支持在CPU环境下部署运行,选用4C8G的ECS即可。



5. 镜像选择“CentOS 7.6 64bit”


6. 系统盘大小增加至100G



7. 接下来配置网络

VPC:保持默认即可:

说明:如果没有默认VPC, 可点击后面的“新建虚拟私有云”创建。



8. 安全组:保持default安全组选中即可:

说明:如果没有默认安全组,可点击“新建安全组”创建。



9. 公网访问:

弹性公网IP:现在购买

线路:全动态BGP

公网带宽:选择“按流量计费”

带宽大小:100

说明:因Ollama拉取Deepseek模型速度不稳定,使用默认带宽下载可能会超时,请按照建议带宽配置。



10. 云服务器管理

云服务器名称:ecs-cent

密码:Huawei1234%

(请记住此密码,注意:服务器名称和密码必须是以上值,否则影响实验进度显示。)

点击“下一步:确认配置”





11. 勾选协议,点击“立即购买”:



创建完成,可在首页看到刚创建的ECS



1.2 登录ECS

1. 远程登录ECS



2. 使用CloudShell登录



3. 输入密码,密码为购买ECS是输入的root密码Huawei1234%,点击“连接”



进入后,如下所示:



2 安装ollama



Ollama 是一个强大的开源工具,旨在帮助用户在本地运行、管理和部署大型语言模型(LLMs,Large Language Models)。它简化了 LLMs 的安装、配置和运行流程,使用户能够快速下载、运行和与各种预训练的语言模型进行交互。Ollama 支持多种流行的开源模型(如 LLaMA、Mistral、DeepSeek 等),特别适合开发者在本地环境中快速实验和开发。



下面,为您提供两种方案来安装ollama:方案一通过linux命令从github下载最新版本的工具进行安装;方案二通过下载已备份在OBS中的ollama工具进行安装,下载速度较快,ollama版本为2024年2月10日版本。

方案一:执行linux命令安装Ollama



执行linux命令

curl -fsSL https://ollama.com/install.sh | sh





说明:Ollama工具是在github上进行下载,可能会存在失败情况,失败后,可再次执行命令重试,也可以采用方案二进行安装。





方案二:下载Ollama安装包安装

下载Ollama安装包

wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama-linux-amd64.tgz





解压安装包

sudo tar -C /usr -xzf ollama-linux-amd64.tgz

增加执行权限,创建Ollama用户

sudo chmod +x /usr/bin/ollama
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

创建ollama.service

cat << EOF > /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=default.target
EOF



重新加载配置文件

sudo systemctl daemon-reload

将服务添加到启动时期的目录

sudo systemctl enable ollama

启动ollama服务

sudo systemctl start ollama

检查启动成功,执行命令:

ollama -v

至此,ollama服务安装启动完成。



3. 下载并运行deepseek-r1的1.5b



借助 ollama 工具来部署 Deepseek 大模型,以下为您提供两种方案:方案一通过ollama命令拉取 deepseek-r1:1.5b,模型版本与社区版本一致,但模型拉取时间较长;方案二通过下载已备份在OBS中的模型文件进行部署,下载速度较快,Deepseek版本为2024年2月14日版本。



方案一:使用ollama拉取 deepseek-r1:1.5b ,模型版本与社区一致,但模型拉取时间较长,请耐心等待。

如拉取失败,可重新执行命令进行拉取。

如拉取速度变慢,可使用 ctrl+c 停止命令,重新执行拉取命令进行拉取,ollama拉取支持断点续传。

ollama pull deepseek-r1:1.5b







运行deepseek-r1:1.5b

ollama run deepseek-r1:1.5b







方案二:从OBS下载ollama模型文件并运行,版本为2025年2月14日版本

从OBS下载文件

wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama_deepseek_r1_1.5b.tar.gz



解压缩

sudo tar -C /usr/share/ollama/.ollama/models -xzf ollama_deepseek_r1_1.5b.tar.gz

将模型文件放在ollama目录

cd /usr/share/ollama/.ollama/models
mv ./deepseek/sha256* ./blobs
mkdir -p ./manifests/registry.ollama.ai/library/deepseek-r1
mv ./deepseek/1.5b ./manifests/registry.ollama.ai/library/deepseek-r1
rm -rf deepseek/



查看ollama模型列表

ollama list



运行deepseek-r1:1.5b

ollama run deepseek-r1:1.5b



至此请赶快和deepseek聊一聊吧!



说明:可以通过实验界面右上角的【复制粘贴】向实验桌面传入中文,将要提问的内容粘贴到复制粘贴板上,在待写入的窗口右键,选择粘贴即可。



样例:生成ai学习的学习计划

说明:如果遇到deepseek回答不准确,建议传入 /bye ,停止deepseek,尝试重新运行。


但是当我询问专业一点的知识的时候,通用大模型是没有办法实现的,这里就需要用到知识库来回答。



二、快速搭建Dify LLM应用开发平台

1 方案概述

Dify官方在国内未提供SaaS服务,该解决方案基于Flexus云服务器X实例帮助您快速私有化部署开箱即用的Dify LLM应用开发平台,使开发者可以快速搭建生产级的生成式AI应用。

方案架构

图1-1 方案架构图

该解决方案将会一键部署如下资源:

  • 创建1华为云Flexus云服务器X实例,用于搭建Dify-LLM应用开发平台。
  • 创建1弹性公网IP EIP并关联华为云Flexus云服务器X实例,提供访问公网和被公网访问能力。
  • 创建一个安全组,通过配置安全组规则,为云服务器提供安全防护。

2 快速部署

本章节主要帮助用户快速一键部署Dify-LLM应用开发平台,预计5-10分钟部署完成(受网络影响可以能会有波动)。

步骤 1     浏览器访问Dify-LLM应用开发平台一键部署解决方案主页,如下图所示,选择需要部署的区域,单击一键部署。

图2-1 选择部署区域

步骤 2     在选择模板界面中,单击“下一步”。

图2-2 选择模板

步骤 3     在配置参数界面中,密码为必填项,其他参数可使用默认值(参考附录 表5-3参数说明),单击“下一步”。(如果这台Dify服务器需要对接数字人,推荐安装Dify 0.15.2版本,请在dify_version选项填入0.15.2)

图2-3 配置参数

步骤 4     在资源设置界面中,在权限委托下拉框中选择“rf_admin_trust”委托可不选,打开回滚设置开关,单击“下一步”。

图2-4 资源栈设置

步骤 5     在配置确认界面中,单击“创建执行计划”。

图2-5 配置确认

步骤 6     在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。

               单击“部署”,并且在弹出的执行计划确认框中单击“执行”。

图2-6 执行计划

步骤 8     (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表5-2)请及时登录费用中心,手动完成待支付订单的费用支付。

步骤 9     待“事件”中出现“Apply required resource success”,表示该解决方案资源已发放完成。

图2-7 部署完成

步骤 10     刷新页面,在“输出”中查看Dify-LLM应用开发平台访问说明。

图2-8 说明

3 开始使用

安全组规则修改(可选)

  • 该解决方案使用80端口用来访问Dify默认对该方案创建的VPC子网网段放开请参考修改安全组规则,配置IP地址白名单,以便能正常访问服务。
  • 该解决方案使用22端口用来以SSH方式远程登录云服务器,若需远程登录云服务器,请参考修改安全组规则,配置IP地址白名单,以便能正常访问服务。
  • 该解决方案部署成功后,环境初始化预计5-10分钟,受网络、带宽影响,部署时间会有波动部署完成之后方可正常访问。

步骤 1     登录开发平台:等待应用下载及部署完毕(约5-10分钟)后,输入快速部署步骤10的访问地址,即可浏览Dify的开发平台。首次登陆需注册管理员账号,依次填写邮箱、账号、密码。

图3-1 Dify平台

步骤二     如需关闭、重启、管理此文档创建的FleuxsX 实例资源,请前往x实例控制台。

拓展应用请参考:

4 一键卸载

步骤 1     登录资源编排 RFS资源栈,找到该解决方案创建的资源栈,单击资源栈名称右侧“删除”按钮。

图4-1 一键卸载

步骤 2     在弹出的删除资源栈确定框中,删除方式选择删除资源,输入Delete,单击“确定”,即可卸载解决方案。

图4-2 删除资源栈确认

5 附录

资源和成本规划

该解决方案主要部署如下资源,以下费用仅供参考,具体请参考华为云官网价格详情,实际收费以账单为准。

表5-1 资源和成本规划(按需计费)

华为云服务

配置示例

每月预估花费

华为云Flexus云服务器X实例

按需计费

区域:华北-北京四

规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.2u.4g | 2 | 4 GB

镜像:Ubuntu 22.04 server 64bit

系统盘:高IO | 100GB

购买量:1

197.28

弹性公网IP EIP

区域:华北-北京四

计费模式:按需计费

线路:动态BGP

公网带宽:按流量计费

带宽大小:300Mbit/s

购买量:1

0.80/GB

合计

-

197.28 + 弹性公网IP EIP费用

 

表5-2 资源和成本规划(包年包月)

华为云服务

配置示例

每月预估花费

华为云Flexus云服务器X实例

包年包月

区域:华北-北京四

规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.2u.4g | 2 | 4 GB

镜像:Ubuntu 22.04 server 64bit

系统盘:高IO | 100GB

购买量:1

143.00

弹性公网IP EIP

区域:华北-北京四

计费模式:按需计费

线路:动态BGP

公网带宽:按流量计费

带宽大小:300Mbit/s

购买量:1

0.80/GB

合计

-

143.00 + 弹性公网IP EIP费用

 

表5-3 参数说明

参数名称

类型

是否可选

参数解释

默认值

vpc_name

string

必填

虚拟私有云名称,该模板使用新建VPC,不允许重名。取值范围:1-54个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。

dify-llm-application-development-platform-demo

secgroup_name

string

必填

安全组名称,该模板新建安全组,请参考安全组规则修改进行配置。取值范围:1-64个字符,支持字母、数字、中文、下划线(_)、中划线(-)、英文句号(.)。

dify-llm-application-development-platform-demo

ecs_name

string

必填

云服务器实例名称,不支持重名。取值范围:1-60个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。

dify-llm-application-development-platform-demo

flexus_flavor

string

必填

云服务器实例规格,支持弹性云服务器 ECS及华为云Flexus 云服务器X实例。Flexus 云服务器X实例规格ID命名规则为x1.?u.?g,例如2vCPUs4GiB规格IDx1.2u.4g,具体华为云Flexus 云服务器X实例规格请参考控制台。弹性云服务器规格名称,具体请参考官网弹性云服务器规格清单

x1.2u.4g

ecs_password

string

必填

云服务器密码,长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,仅支持小写字母、数字、中划线(-)、英文句号(.)。修改密码,请参考重置云服务器密码登录ECS控制台修改密码。管理员账户默认root

gitlab_password

string

必填

搭建的gitlab私有仓库密码,取值范围:长度为8-26个字符,密码至少包含大写字母、小写字母、数字和特殊字符(~!@#%^-_=)中的三种,gitlab用户名默认root

ecs_volume_size

number

必填

云服务器系统盘大小,磁盘类型默认为高IO,单位:GB,取值范围为40-1,024,不支持缩盘。

100

bandwidth_size

number

必填

弹性公网带宽大小,该模板计费方式为按流量计费。单位:Mbit/s,取值范围:1-300Mbit/s

300

charging_mode

string

必填

计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费)。

postPaid

charge_period_unit

string

必填

计费周期单位,当计费方式设置为prePaid,此参数是必填项。有效值为:month(包月)和year(包年)。

month

charge_period

number

必填

计费周期,当计费模式设置为prePaid,此参数是必填项。可选值为:1-3year)、1-9month)。

1

 

当您首次使用华为云时注册的账号,则无需执行创建rf_admin_trust委托,如果您使用的是IAM用户账户,请确认您是否在admin用户组中,如果您不在admin组中,则需要为您的账号授予相关权限,并完成以下步骤。

创建rf_admin_trust委托(可选)

步骤 1     进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“统一身份认证”菜单。

图5-1 统一身份认证菜单

步骤 2     进入“委托”菜单,搜索“rf_admin_trust”委托

图5-2 委托列表

  • 如果委托存在,则不用执行接下来的创建委托的步骤
  • 如果委托不存在时执行接下来的步骤创建委托

步骤 3     单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“RFS”,单击“下一步”。

图5-3创建委托

步骤 4     在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果,单击“下一步”

图5-4 选择策略

步骤 5     选择“所有资源”,并单击“下一步”完成配置

图5-5 设置授权范围

步骤 6     “委托”列表中出现“rf_admin_trust”委托则创建成功

图5-6 委托列表

约束与限制

  • 部署该解决方案之前,您需要注册华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态,请根据附录 表5-2中预估价格,确保余额充足。

名词解释

  • 华为云Flexus云服务器X实例:Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器。Flexus云服务器X实例功能接近ECS 同时还具备独有特点,例如Flexus云服务器X实例具有更灵活的vCPU内存配比、支持热变配不中断业务变更规格、支持性能模式等。
  • 弹性云服务器 ECS:是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境。
  • 虚拟私有云 VPC:是用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可以基于VPC构建独立的云上网络空间,配合弹性公网IP云连接云专线等服务实现与Internet、云内私网、跨云私网互通,帮您打造可靠、稳定、高效的专属云上网络。
  • 弹性公网IP EIP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑,提供访问公网和被公网访问能力。


三、开通ModelArts Studio 模型服务+ 使用Dify 知识库平台构建Agent

3.1 ModelArts Studio 模型服务

3.1.1 访问 ModelArts Studio 模型部署

进入云主机,打开浏览器,输入 https://console.huaweicloud.com/modelarts/?region=cn-east-4&locale=zh-cn#/model-studio/deployment ,即可访问ModelArts Studio

3.1.2 领取免费 Token 额度

领取千万免费token额度,可用于体验Qwen、Chatglm等系列模型,免费额度仅适合用于体验模型。Qwen2.5系列预置服务还支持Function Calling,可以用于构建Agent。

3.1.3 获取大模型API和名称

Qwen2_5-72B-Instruct为例,点击更多-调用,获取API地址和模型名称。

3.1.4 创建API Key

左侧鉴权管理-创建API Key,保存创建的密钥信息

最多创建5个密钥,密钥只会在新建后显示一次,请妥善保存。

3.1.5 调试大模型API

我们使用 curl 脚本调试大模型API,确保API配置可用,在终端执行以下命令。

# 调试API
curl -X POST "yourBaseUrl" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer yourApiKey" \
  -d '{
    "model": "yourModelName",
    "max_tokens": 20,
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "你好"}
    ],
    "stream": false,
    "temperature": 1.0
  }'

请把yourBaseUrlyourApiKeyyourModelName替换为步骤3.1.3和步骤3.1.4中的信息。

能看到类似的返回即为API配置可用。

{"id":"chat-1d324bf7eb884c728b2542ddc53f7218","object":"chat.completion","created":1734748674,"model":"Qwen2.5-72B","choices":[{"index":0,"message":{"role":"assistant","content":"你好!很高兴见到你!你有什么问题或者需要帮助吗?","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":20,"total_tokens":35,"completion_tokens":15},"prompt_logprobs":null}

3.2 安装和配置Dify.AI

3.2.1 安装Dify.AI

安装脚本见: https://gitcode.com/huqi/huaweicloud-dify
如有问题欢迎反馈: https://gitcode.com/huqi/huaweicloud-dify/discussion

进入云主机,打开终端,执行以下命令,安装Dify.AI

# 下载安装脚本
sudo wget -P /home/ https://raw.gitcode.com/huqi/huaweicloud-dify/raw/main/install.sh
# 执行安装脚本
sudo bash /home/install.sh

安装完毕后显示安装过程结束,详细日志请查看: /var/dify-install.log 即为安装成功。

3.2.2 登录Dify.AI

通过云主机,打开浏览器,输入http://127.0.0.1即可访问Dify.AI

如果端口80无法访问,我们可以通过命令去查看端口的使用情况,确定Dify.AI使用的端口。

# 查看端口使用情况
sudo netstat -tulnp | grep docker

首次登陆需注册管理员账号,依次填写邮箱、账号、密码。

3.2.3 配置Dify.AI

进入Dify平台,点击右上角设置,进入模型供应商页签,选择OpenAI-API-compatible供应商,关键信息配置如下:

  • 模型类型选择LLM
  • 模型名称请填入步骤2.1.3服务信息中的模型名称
  • API Key 请填入步骤2.1.4中创建的API Key
  • API endpoint URL请填入步骤2.1.3中的API地址,并且删除最后面chat/completions部分
  • Completion mode请选择对话
  • 模型上下文长度\最大 token 上限保持默认
  • Function calling保持默认不支持
  • Stream function calling保持默认不支持
  • 流模式返回结果的分隔符保持默认\n\n

3.3 构建Agent

3.3.1 创建Agent

在Dify平台(http://127.0.0.1/apps),点击工作室–Agent-创建空白应用,进入Agent页签,填写Agent名称。

3.3.2 Agent 设置

在右上角单击“Agent 设置”,选择上一步配置好的模型进行使用。

Function Call 模式会报错,实际使用代理模型,下图为 Agent 设置示意图

3.3.3 编排提示词配置

在“编排”页面的“提示词”文本框,输入以下信息。

你是一位乐于助人的AI助手。在回答用户问题时,你需要遵循以下原则:

1. 始终使用自然语言解释你将要采取的行动
2. 在调用工具之前,说明你要使用哪个工具以及原因
3. 在获取信息的过程中,清晰地描述你正在做什么
4. 永远不要返回空的回复 - 确保用自然语言解释你的每个步骤

举例说明:
当用户询问今日热点新闻时,你应该这样回复:
"让我使用新闻搜索工具为您查询今日热点新闻..."
然后再进行具体的工具调用。

重要提示:
- 先表达你的理解和计划
- 再使用相应的工具
- 每次回复都必须包含对用户的清晰解释
基于以上原则,请根据用户的问题,给出相应的回答。

3.3.4 编排工具配置

在“编排”页面的“工具”区域右侧,单击“添加”,按需添加工具并与模型进行对话调用。
Dify内置有丰富的插件,同时支持自定义工具的创建

3.3.5 调试Agent

我们可以进行调试和预览。

3.3.5 使用Agent

我们可以通过网页的方式,直接与Agent对话,也可以通过API的方式,将Agent集成到其他系统中。

4 实验总结

通过本实验,我们了解了如何使用ModelArts Studio平台和开源Agent框架Dify.AI构建个性化聊天助手。ModelArts Studio提供了丰富的开源大模型资源,支持一键部署模型服务并通过API调用。Dify.AI则是一个功能强大的Agent开发框架,通过可视化的工作流编排方式,让开发者能够快速构建聊天助手、知识库、Agent等智能应用,大幅提升AI应用开发效率。

4 参考文档

我正在参加【有奖征集 第34期】华为开发者空间一行代码快速上云,参与视频、文章投稿赢2000元开发者礼包
链接:https://bbs.huaweicloud.com/blogs/438987

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
 
    • 收藏
 
  • 关注作者

作者其他文章

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。