华为云之基于DeepSeek构建个性化问答助理【玩转华为云】 华为云之基于DeepSeek构建个性化问答助理【玩转华为云】一、Ollma与DeepSeek介绍1.1 Ollama简介1.2 DeepSeek简介二、本次实践介绍2.1 实践环境简介2.2 本次实践目标2.3 华为云ECS云服务器介绍三、购买ECS云服务器3.1 登录华为云3.2 购买弹性云服务器3.3登录ECS弹性云服务器3.4 检查系统环境四、安装ollama工具4.1 下载ollama安装包4.3 添加执行权限4.4 配置ollama服务开机自启4.5 检查Ollama服务状态五、运行DeepSeek大模型5.1 下载模型文件方法一可选5.2 下载模型文件方法二5.3 运行DeepSeek模型六、体验不同AI助理6.1 新建prompt文本6.2 构建多轮对话助理6.3 不同对话结果展示七、实践总结一、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作为一种云上计算服务支持用户随时自助获取且具备弹性伸缩能力。它能为用户打造出安全、可靠的应用环境保障应用稳定运行。同时其灵活、高效的特性能很好地满足不同场景下的使用需求为用户提供优质的服务体验。三、购买ECS云服务器3.1 登录华为云查看华为云实验账号信息进入实验环境后我们在左侧的实验手册中可以看到华为云实验账号。进入【实验操作桌面】打开Chrome浏览器首次可自动登录并进入华为云控制台页面。登录完毕后我们进入华为云控制台管理首页。3.2 购买弹性云服务器在华为云控制台中我们点击弹性云服务器ECS【创建】选项进入ECS购买界面。购买的ECS实力可参考以下配置计费模式按需计费区域北京四可用随机实例规格CPU架构选择X86架构规格为c7.xlarge.2系统盘通用型SSD40G操作系统使用镜像为openEuler 22.03 64bit(10GiB)网络配置VPC均保持默认即可安全组默认公网访问弹性公网-购买全动态BGP按流量计费100Mbit/带宽云服务器管理服务器名称ecs-cent,服务器密码Huawei1234%其余配置默认即可配置完毕后可检查配置概要以检查配置是否正确点击“立即购买”。3.3登录ECS弹性云服务器返回弹性云服务器列表后可以看到我们购买的弹性云服务器ECS状态正常。安全组配置在入方向上放行22端口。我们通过实验桌面的Xfce工具进行SSH连接ECS将以下命令的EIP替换我们实际ECS的弹性公网IP地址。如果无法登录需要修改安全组配置放行22端口。sshroot*EIP*3.4 检查系统环境检查操作系统版本和内核版本如下所示[rootecs-cent ~]# cat /etc/os-releaseNAMEopenEulerVERSION22.03 LTSIDopenEulerVERSION_ID22.03PRETTY_NAMEopenEuler 22.03 LTSANSI_COLOR0;31[rootecs-cent ~]# uname -r5.10.0-60.139.0.166.oe2203.x86_64四、安装ollama工具4.1 下载ollama安装包方案一使用以下一键安装脚本进行安装有可能因为网络等原因安装失败时可重新执行命令安装。curl-fsSLhttps://ollama.com/install.sh|sh方案二下载ollama安装包进行安装本次实践使用此方式。wgethttps://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama-linux-amd64.tgz解压ollama安装包执行以下命令sudotar-C/usr-xzfollama-linux-amd64.tgz4.3 添加执行权限设置ollama执行权限和创建ollama用户sudochmodx /usr/bin/ollamasudouseradd-r-s/bin/false-m-d/usr/share/ollama ollama4.4 配置ollama服务开机自启在/etc/systemd/system/ollama.service文件中编辑服务配置文件。catEOF/etc/systemd/system/ollama.service[Unit] DescriptionOllama Service Afternetwork-online.target [Service] ExecStart/usr/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 [Install] WantedBydefault.target EOF执行以下命令启动ollama服务并设置开机自启。sudosystemctl daemon-reloadsudosystemctlenableollamasudosystemctl start ollama4.5 检查Ollama服务状态检查ollama服务状态确保正常启动。sudosystemctl status ollama检查ollama安装版本如下所示ollama-v五、运行DeepSeek大模型5.1 下载模型文件方法一可选可使用ollama命令直接拉取deepseek-r1:1.5b模型简单方便一个命令搞定需要保证网络环境正常下载速度比较慢。ollama pull deepseek-r1:1.5b5.2 下载模型文件方法二在华为云OBS下载ollama模型文件deepseek-r1:1.5b如下所示wgethttps://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama_deepseek_r1_1.5b.tar.gz进行解压缩操作sudotar-C/usr/share/ollama/.ollama/models-xzfollama_deepseek_r1_1.5b.tar.gz将解压后的ollama模型文件放在ollama目录cd/usr/share/ollama/.ollama/modelsmv./deepseek/sha256* ./blobsmkdir-p./manifests/registry.ollama.ai/library/deepseek-r1mv./deepseek/1.5b ./manifests/registry.ollama.ai/library/deepseek-r1rm-rfdeepseek/5.3 运行DeepSeek模型执行以下命令运行deepseek-r1:1.5bollama run deepseek-r1:1.5b六、体验不同AI助理6.1 新建prompt文本在xfce工具中我们重新打开启动一个终端进行SSH连接后我们新建3个角色的prompt文本文件。vim调酒师.txtvim心理医生.txtvim数学老师.txt6.2 构建多轮对话助理编辑以下personal_bot.py文件vimpersonal_bot.pyimportrequestsimportjson# 基础请求配置urlhttp://localhost:11434/api/generateheaders{Content-Type:application/json}# 从文件中读取初始提示with open(prompt.txt,r,encodingutf-8)as file: initial_promptfile.read().strip()# 初始化对话历史conversation_historyinitial_prompt# 多轮交互print(欢迎进入对话模式输入 exit 退出对话。)whileTrue:# 用户输入user_inputinput(\n你)ifuser_input.lower()exit:print(对话结束。)break# 更新对话历史conversation_historyf\n用户{user_input}# 请求参数payload{model:deepseek-r1:1.5b,# 必须与运行的模型名称完全一致prompt:conversation_history,# 将对话历史作为 promptstream:False,# 设为 True 可启用流式响应options:{temperature:0.5,# 推荐值平衡准确性与创造性num_predict:512,# 最大输出长度1.5B模型建议≤1024seed:42# 固定随机种子保证结果可复现}}# 发送请求responserequests.post(url,jsonpayload,headersheaders)# 处理响应ifresponse.status_code200: resultresponse.json()model_responseresult.get(response,抱歉我没有生成任何内容。)print(f\n模型{model_response})# 将模型的回答加入对话历史conversation_historyf\n模型{model_response}else: print(f请求失败状态码 {response.status_code}: {response.text})6.3 不同对话结果展示修改personal_bot.py文件的基础部分将prompt.txt替换刚才编辑好的3个prompt文本文件。调酒师角色with open(调酒师.txt,r,encodingutf-8)as file: initial_promptfile.read().strip()python3 personal_bot.py心理医生角色python3 personal_bot.py数学老师角色python3 personal_bot.py七、实践总结在本次实践中我基于华为云平台集成了DeepSeek大模型成功构建了一个个性化问答助理原型。通过华为云提供的高效算力与灵活部署能力模型运行稳定且响应速度快。我利用DeepSeek强大的语言理解与生成能力结合实际场景对问答逻辑进行了优化与定制。整个实践过程不仅加深了我对大模型应用的理解也让我体验到了华为云在AI开发上的便捷性与先进性。