华为云之基于DeepSeek构建个性化问答助理【玩转华为云】

举报
江湖有缘 发表于 2025/07/25 00:52:12 2025/07/25
【摘要】 华为云之基于DeepSeek构建个性化问答助理【玩转华为云】

华为云之基于DeepSeek构建个性化问答助理【玩转华为云】

一、Ollma与DeepSeek介绍

1.1 Ollama简介

Ollama 是一个专注于在本地运行大型语言模型的开源工具和框架。它提供了一种简单的方式,让用户可以在本地计算机上运行、测试和开发基于大语言模型的应用,而无需依赖云端服务。Ollama 支持多种流行的模型,如 Llama 系列,并通过命令行界面(CLI)和 API 接口提供便捷的交互方式,适合开发者和研究人员快速部署和实验大模型。由于其轻量级的设计和对 GPU 的良好支持,Ollama 成为了许多本地 AI 开发者的首选工具。

1.2 DeepSeek简介

DeepSeek 是一家由中国团队开发的大型语言模型公司,致力于构建高性能、大规模的语言模型,提供包括对话理解、文本生成、编程代码生成等多种能力。其核心产品 DeepSeek 系列模型在语言理解与生成方面表现出色,部分版本在性能上可与国际主流模型相媲美。DeepSeek 提供多种模型版本,支持企业级应用场景,并可通过 API 接入,适用于客服、内容创作、智能助手等多个领域。其目标是通过持续的技术创新,推动大模型在更多行业的落地应用。

二、本次实践介绍

2.1 实践环境简介

本次实践将在华为云开发者云实验平台上进行,使用华为云ECS弹性云服务器来搭建运行环境,并选用DeepSeek 1.5b模型版本,其1.1GB的权重文件便于快速部署。该模型在CPU环境下运行流畅,非常适合个人体验和开发个性化问答助理。通过此次实践,我们将掌握构建不同类型个性化智能助手的方法。

2.2 本次实践目标

熟悉华为云 ECS 服务器的相关知识与操作。​

熟练运用 Linux 系统环境。​

掌握通过 Ollama 来部署 DeepSeek R1 模型的方法

掌握构建不同类型的个性化智能助手

2.3 华为云ECS云服务器介绍

华为云弹性云服务器(ECS)作为一种云上计算服务,支持用户随时自助获取,且具备弹性伸缩能力。它能为用户打造出安全、可靠的应用环境,保障应用稳定运行。同时,其灵活、高效的特性,能很好地满足不同场景下的使用需求,为用户提供优质的服务体验。

null

三、购买ECS云服务器

3.1 登录华为云

查看华为云实验账号信息:进入实验环境后,我们在左侧的实验手册中可以看到华为云实验账号。

null

进入【实验操作桌面】,打开Chrome浏览器,首次可自动登录并进入华为云控制台页面。

null

登录完毕后,我们进入华为云控制台管理首页。

null

3.2 购买弹性云服务器

在华为云控制台中,我们点击弹性云服务器ECS【创建】选项,进入ECS购买界面。

null

购买的ECS实力,可参考以下配置:

计费模式:按需计费

区域:北京四,可用随机

实例规格:CPU架构选择X86架构,规格为c7.xlarge.2

系统盘:通用型SSD,40G

操作系统:使用镜像为openEuler 22.03 64bit(10GiB)

网络配置:VPC均保持默认即可

安全组:默认

公网访问:弹性公网-购买,全动态BGP,按流量计费,100Mbit/带宽;

云服务器管理:服务器名称(ecs-cent,),服务器密码Huawei1234%

其余配置默认即可,配置完毕后,可检查配置概要以检查配置是否正确,点击“立即购买”。

null

null

3.3登录ECS弹性云服务器

返回弹性云服务器列表后,可以看到我们购买的弹性云服务器ECS状态正常。

null

安全组配置:在入方向上,放行22端口。

null

我们通过实验桌面的Xfce工具进行SSH连接ECS,将以下命令的EIP替换我们实际ECS的弹性公网IP地址。如果无法登录,需要修改安全组配置,放行22端口。

ssh root@*EIP*

null

3.4 检查系统环境

检查操作系统版本和内核版本,如下所示:

[root@ecs-cent ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"

[root@ecs-cent ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64


四、安装ollama工具

4.1 下载ollama安装包

方案一:使用以下一键安装脚本进行安装,有可能因为网络等原因安装失败时,可重新执行命令安装。

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

方案二:下载ollama安装包进行安装,本次实践使用此方式。

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

null

解压ollama安装包,执行以下命令:

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

4.3 添加执行权限

设置ollama执行权限和创建ollama用户

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

null

4.4 配置ollama服务开机自启

在/etc/systemd/system/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

执行以下命令,启动ollama服务并设置开机自启。

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama

4.5 检查Ollama服务状态

检查ollama服务状态,确保正常启动。

sudo systemctl status ollama

null

检查ollama安装版本,如下所示:

ollama -v

null

五、运行DeepSeek大模型

5.1 下载模型文件(方法一,可选)

可使用ollama命令直接拉取deepseek-r1:1.5b模型,简单方便一个命令搞定,需要保证网络环境正常,下载速度比较慢。

ollama pull deepseek-r1:1.5b

5.2 下载模型文件(方法二)

在华为云OBS下载ollama模型文件deepseek-r1:1.5b,如下所示:

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

null

进行解压缩操作:

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

将解压后的ollama模型文件放在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/

5.3 运行DeepSeek模型

执行以下命令,运行deepseek-r1:1.5b

ollama run deepseek-r1:1.5b

null

六、体验不同AI助理

6.1 新建prompt文本

在xfce工具中,我们重新打开启动一个终端,进行SSH连接后,我们新建3个角色的prompt文本文件。

vim 调酒师.txt

null

vim 心理医生.txt

null

vim 数学老师.txt

null

6.2 构建多轮对话助理

编辑以下personal_bot.py文件:

vim personal_bot.py

import requests
import json

# 基础请求配置
url = "http://localhost:11434/api/generate"
headers = {"Content-Type": "application/json"}

# 从文件中读取初始提示
with open("prompt.txt", "r", encoding="utf-8") as file:
initial_prompt = file.read().strip()

# 初始化对话历史
conversation_history = initial_prompt

# 多轮交互
print("欢迎进入对话模式!输入 'exit' 退出对话。")
while True:
# 用户输入
user_input = input("\n你:")
if user_input.lower() == "exit":
print("对话结束。")
break

# 更新对话历史
conversation_history += f"\n用户:{user_input}"

# 请求参数
payload = {
"model": "deepseek-r1:1.5b", # 必须与运行的模型名称完全一致
"prompt": conversation_history, # 将对话历史作为 prompt
"stream": False, # 设为 True 可启用流式响应
"options": {
"temperature": 0.5, # 推荐值(平衡准确性与创造性)
"num_predict": 512, # 最大输出长度(1.5B模型建议≤1024)
"seed": 42 # 固定随机种子(保证结果可复现)
}
}

# 发送请求
response = requests.post(url, json=payload, headers=headers)

# 处理响应
if response.status_code == 200:
result = response.json()
model_response = result.get("response", "抱歉,我没有生成任何内容。")
print(f"\n模型:{model_response}")
# 将模型的回答加入对话历史
conversation_history += f"\n模型:{model_response}"
else:
print(f"请求失败(状态码 {response.status_code}): {response.text}")

6.3 不同对话结果展示

修改personal_bot.py文件的基础部分,将prompt.txt替换刚才编辑好的3个prompt文本文件。

调酒师角色:

with open("调酒师.txt", "r", encoding="utf-8") as file:
initial_prompt = file.read().strip()

null

python3 personal_bot.py

null

心理医生角色:

python3 personal_bot.py

null

数学老师角色:

python3 personal_bot.py

null

七、实践总结

在本次实践中,我基于华为云平台集成了DeepSeek大模型,成功构建了一个个性化问答助理原型。通过华为云提供的高效算力与灵活部署能力,模型运行稳定且响应速度快。我利用DeepSeek强大的语言理解与生成能力,结合实际场景对问答逻辑进行了优化与定制。整个实践过程不仅加深了我对大模型应用的理解,也让我体验到了华为云在AI开发上的便捷性与先进性。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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