华为云之基于DeepSeek搭建Agent智能助手实践指南【玩转华为云】

举报
江湖有缘 发表于 2025/07/29 00:46:56 2025/07/29
【摘要】 一、Ollma与DeepSeek介绍 1.1 Ollama简介Ollama 是一个专注于在本地运行大型语言模型的开源工具和框架。它提供了一种简单的方式,让用户可以在本地计算机上运行、测试和开发基于大语言模型的应用,而无需依赖云端服务。Ollama 支持多种流行的模型,如 Llama 系列,并通过命令行界面(CLI)和 API 接口提供便捷的交互方式,适合开发者和研究人员快速部署和实验大模型...

一、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环境下运行流畅,非常适合个人体验和开发Agent科研助手。通过此次实践,我们将掌握掌握Agent科研助手的代码实现。

2.2 本次实践目标

  • 熟悉华为云 ECS 服务器的相关知识与操作。​
  • 熟练运用 Linux 系统环境。​
  • 掌握通过 Ollama 来部署 DeepSeek R1 模型的方法
  • 掌握Agent科研助手的代码实现

2.3 华为云ECS云服务器介绍

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

image.png

三、购买ECS云服务器

3.1 登录华为云

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

3.2 购买弹性云服务器

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

在这里插入图片描述

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

  • 计费模式:按需计费
  • 区域:北京四,可用随机
  • 实例规格:CPU架构选择X86架构,规格为c7.xlarge.2
  • 系统盘:通用型SSD,40G
  • 操作系统:使用镜像为openEuler 22.03 64bit(10GiB)
  • 网络配置:VPC均保持默认即可
  • 安全组:默认
  • 公网访问:弹性公网-购买,全动态BGP,按流量计费,100Mbit/带宽;
  • 云服务器管理:服务器名称默认自定义,服务器密码自行设置。
  • 其余配置默认即可,配置完毕后,可检查配置概要以检查配置是否正确,点击“立即购买”。

在这里插入图片描述

在这里插入图片描述

3.3登录ECS弹性云服务器

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

在这里插入图片描述

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

在这里插入图片描述

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

ssh root@*EIP*

在这里插入图片描述

3.4 检查系统环境

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

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


[root@ecs-d377 ~]# uname -r 
4.19.90-2003.4.0.0036.oe1.x86_64



四、安装ollama工具

4.1 下载ollama安装包

下载ollama安装包进行安装,如下所示:

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

在这里插入图片描述

  • 解压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

在这里插入图片描述

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

在这里插入图片描述

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

ollama -v

在这里插入图片描述

五、运行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

在这里插入图片描述

  • 进行解压缩操作:
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

在这里插入图片描述

注意:运行报错提示权限报错,需要执行以下命令,进行权限授权。

 chown -R ollama:ollama /usr/share/ollama/
 chown -R ollama:ollama /usr/lib/ollama/

六、部署Agent智能助手

6.1 构建知识库

我们新建及编辑library.txt文件,涉及各种科目的文献资料。

vim library.txt
深度学习在医学影像诊断中的应用:本文探讨了深度学习技术在医学影像诊断中的应用,重点研究了卷积神经网络(CNN)在识别病理图像中的准确性。通过对比传统方法,深度学习模型在检测肿瘤和病变方面表现出更高的敏感性和特异性。研究结果表明,深度学习有望成为未来医学影像诊断的重要工具。
人工智能在疾病预测中的应用:本文研究了人工智能技术在疾病预测中的应用,特别是机器学习算法在分析电子健康记录中的有效性。研究发现,基于机器学习的模型能够准确预测慢性疾病的发生风险,为早期干预提供了重要依据。文章建议进一步优化算法以提高预测精度。
气候变化对全球生物多样性的长期影响:本研究分析了过去50年气候变化对全球生物多样性的长期影响。通过建立生态模型,我们发现温度升高和降水模式的改变对物种分布产生了显著影响。研究预测,如果不采取有效措施,未来几十年内许多物种将面临灭绝风险。文章呼吁加强全球生态保护措施,以应对气候变化带来的挑战。
气候变化与海洋生态系统:本文探讨了气候变化对海洋生态系统的影响,重点关注海洋温度上升和酸化对珊瑚礁和海洋生物的影响。研究发现,珊瑚礁的白化现象与海水温度升高密切相关,而海洋酸化则对贝类生物的生存构成威胁。文章建议采取全球行动以减缓气候变化对海洋生态系统的影响。
量子计算的现状与未来发展趋势:量子计算作为一种新兴技术,正在迅速发展。本文综述了量子计算的基本原理、当前的技术进展以及面临的挑战。研究指出,量子比特的稳定性是实现大规模量子计算的关键。此外,文章还探讨了量子计算在密码学、材料科学和人工智能等领域的潜在应用。
量子通信技术的突破与应用:本文介绍了量子通信技术的最新突破及其在信息安全领域的应用。量子通信利用量子纠缠和不可克隆定理,实现了理论上无条件安全的通信。研究展示了量子通信在金融、军事和政务领域的应用前景,并讨论了其商业化面临的挑战。
人工智能伦理:算法偏见与社会公平:随着人工智能技术的广泛应用,算法偏见问题日益受到关注。本文分析了算法偏见的成因及其对社会公平的影响,提出了几种减少偏见的方法,包括数据增强、模型校准和公平性评估指标。研究强调,确保人工智能的公平性是实现技术可持续发展的关键。
人工智能在司法领域的应用与伦理挑战:本文探讨了人工智能在司法领域的应用,特别是算法辅助判决系统的伦理问题。研究指出,虽然人工智能可以提高司法效率,但也可能因算法偏见导致不公正的结果。文章建议建立伦理框架以规范人工智能在司法领域的应用。
新能源汽车的市场接受度与政策影响:本文通过市场调研和数据分析,探讨了新能源汽车的市场接受度及其受政策影响的程度。研究发现,政府补贴和基础设施建设对消费者购买意愿有显著影响。文章建议进一步完善政策支持体系,以加速新能源汽车的市场普及。
新能源汽车的电池技术与可持续发展:本文研究了新能源汽车的电池技术进展及其对可持续发展的影响。研究指出,电池能量密度的提高和成本的降低是推动新能源汽车普及的关键。文章还讨论了电池回收和再利用的重要性,以减少对环境的影响。
基因编辑技术在农业中的应用与挑战:基因编辑技术为农业发展带来了新的机遇。本文综述了基因编辑在提高作物抗病性、产量和营养价值方面的应用。同时,文章也讨论了基因编辑技术面临的伦理和监管挑战,呼吁建立科学合理的政策框架以推动其可持续发展。
基因编辑技术在医学中的应用与伦理困境:本文探讨了基因编辑技术在医学中的应用,特别是治疗遗传性疾病和癌症的潜力。研究指出,虽然基因编辑技术在治疗方面具有巨大潜力,但也引发了关于人类生殖系编辑的伦理争议。文章呼吁加强伦理审查和公众讨论。
5G通信技术对工业互联网的推动作用:5G通信技术的高速率和低延迟特性使其成为工业互联网的重要支撑。本文分析了5G技术在智能制造、远程控制和物联网中的应用。研究指出,5G技术能够显著提高生产效率和灵活性,但同时也需要解决网络安全和数据隐私问题。
6G通信技术的展望与挑战:本文展望了6G通信技术的发展前景及其面临的挑战。6G技术预计将实现更高的数据传输速率和更低的延迟,支持更广泛的应用场景。研究讨论了6G技术的关键技术方向,包括太赫兹通信和智能反射面技术,并分析了其商业化的时间表和潜在障碍。
海洋微塑料污染的生态影响与治理策略:海洋微塑料污染已成为全球性的环境问题。本文通过实地采样和实验研究,分析了微塑料对海洋生物的生态影响。研究发现,微塑料能够吸附有害物质并进入食物链,对海洋生态系统构成威胁。文章提出了几种治理策略,包括源头控制和生态修复。
微塑料污染对淡水生态系统的威胁:本文研究了微塑料污染对淡水生态系统的影响,重点关注湖泊和河流中的微塑料分布及其对水生生物的影响。研究发现,微塑料通过食物链传递,对淡水生物的健康和生存构成威胁。文章建议加强监测和治理措施,以保护淡水生态系统。
区块链技术在供应链管理中的应用:区块链技术以其去中心化和不可篡改的特性,为供应链管理带来了新的解决方案。本文探讨了区块链在提高供应链透明度、降低成本和增强安全性方面的应用。研究结果表明,区块链技术能够有效优化供应链管理流程,提升企业竞争力。
区块链技术在金融领域的应用与挑战:本文研究了区块链技术在金融领域的应用,特别是去中心化金融(DeFi)的发展。研究指出,区块链技术能够提高金融交易的透明度和效率,但也面临监管和安全挑战。文章讨论了区块链技术在金融领域的未来发展方向。
虚拟现实技术在教育领域的创新应用:虚拟现实(VR)技术为教育领域带来了全新的教学体验。本文研究了VR技术在沉浸式学习、远程教育和职业培训中的应用。研究发现,VR技术能够显著提高学生的学习兴趣和效果,但同时也需要解决设备成本和内容开发的挑战。
增强现实技术在工业培训中的应用:本文探讨了增强现实(AR)技术在工业培训中的应用,特别是通过AR设备提供实时指导和培训。研究发现,AR技术能够提高培训效率和质量,减少人为错误。文章讨论了AR技术在工业领域的未来应用前景。

6.2 编辑prompt.txt文件

编辑prompt.txt文件,如下所示:

vim prompt.txt
你是一个文献综述专家

在这里插入图片描述

6.3 智能助手实现

  • 构建主文件,内容如下:
vim main.py
import requests
import json

# ????
API_URL = "http://localhost:11434/api/generate"
HEADERS = {"Content-Type": "application/json"}
MODEL_NAME = "deepseek-r1:1.5b"

# ????
ROLE_PROMPTS = {
    "retriever": "??????????????????????????",
    "analyzer": "??????????????????????????",
    "evaluator": "??????????????????????????"
}

# ?????????
def load_file(filename):
    with open(filename, "r", encoding="utf-8") as file:
        return file.read().strip()

initial_prompt = load_file("prompt.txt")
library = load_file("library.txt")

# ??????
def process_conversation(prompt, history, role_type):
    payload = {
        "model": MODEL_NAME,
        "prompt": f"{ROLE_PROMPTS[role_type]}\n{history}\n{prompt}",
        "stream": False,
        "options": {
            "temperature": 0.5,
            "num_predict": 512,
            "seed": 42
        }
    }
    response = requests.post(API_URL, json=payload, headers=HEADERS)
    return response.json().get("response", "") if response.status_code == 200 else None

# ???
def main():
    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}"

        # ???????
        processing_steps = [
            ("retriever", f"???{library}\n???{user_input}\n????????????"),
            ("analyzer", f"???????{{result}}\n??????????????"),
            ("evaluator", f"???????{{result}}\n??????????????")
        ]

        last_result = None
        for step, prompt_template in processing_steps:
            if last_result is None and step != "retriever":
                continue
            
            prompt = prompt_template.format(result=last_result) if "result" in prompt_template else prompt_template
            result = process_conversation(prompt, conversation_history, step)
            
            if not result:
                print(f"{step}??????")
                break

            print(f"\n{step}???{result}")
            conversation_history += f"\n{step}???{result}"
            last_result = result

        if last_result:
            print(f"\n?????{last_result}")

if __name__ == "__main__":
    main()

在这里插入图片描述

  • 进行测试效果:
python3 main.py
  • 进行提问:
人工智能伦理相关的论文综述

可以看到第一步:检索专家从文档中进行相关内容的检索,此步骤需要等待时间长,需耐心等待几分钟。

在这里插入图片描述

在第二步中,分析专家将基于检索专家提供的输入内容进行深入分析。这一阶段的任务是仔细审查检索到的信息,并对其进行解析和提炼,以便准确理解用户的需求并提供有价值的反馈。分析专家不仅要对检索结果进行筛选以去除无关或冗余的数据,还需要识别关键信息点,将其组织成结构化的知识,便于后续处理。此外,分析过程可能包括数据的分类、情感分析、主题提取等高级操作,以确保输出的内容既精确又具有相关性。通过这种方式,分析专家能够为最终用户提供更加精准和个性化的回答。

在这里插入图片描述

在第三步中,评估专家将对分析专家输出的内容进行综合评审与优化。该环节旨在确保最终回复的准确性、逻辑性和完整性,提升回答的质量与用户体验。评估专家会检查内容是否存在遗漏、矛盾或模糊之处,并根据需要提出改进建议。同时,可结合用户反馈或预设评价标准进行动态调整,实现结果的持续优化。通过这一过程,系统能够输出更加可靠、专业且贴近用户需求的最终答案。

在这里插入图片描述

七、总结

本次基于华为云ECS搭建DeepSeek大模型Agent智能助手的实践顺利完成,成功实现了模型的部署与基础智能问答功能。通过Ollama工具的集成,有效简化了大模型的本地运行与管理流程。构建的多角色Agent框架初步实现了任务的分工协作,展示了良好的应用潜力。未来可通过优化角色分工、增强上下文管理与知识库动态更新机制,进一步提升系统的智能化水平。引入反馈回路和自我纠错机制,将有助于提高Agent的准确性和鲁棒性,为构建更复杂的智能应用奠定基础。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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