华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio打造AingDesk AI聊天助手
引言
一、ModelArts Studio平台介绍
华为云ModelArts Studio简介
华为云ModelArts Studio
是基于ModelArts构建的一站式大模型即服务平台(MaaS),深度整合昇腾算力资源与全链路开发工具,为开发者提供从数据准备、模型训练微调、提示词工程到应用部署的全流程解决方案。平台不仅预置主流开源大模型,还具备海量数据智能预处理、自动化标注、分布式训练及模型自动生成能力,全面覆盖AI模型全生命周期管理。无论是深耕算法的工程师、AI领域初学者,还是寻求智能化转型的企业,都能依托ModelArts Studio的高效开发能力,快速实现AI应用的高质量落地与规模化部署。
华为云ModelArts Studio平台地址
:https://www.huaweicloud.com/product/modelarts/studio.html
ModelArts Studio主要特点
✅ 模型全、免配置、免调优、性能优
业界 SOTA 大模型覆盖度高达 99%,内置最优超参配置,结合昇腾算子优化与显存管理,显著提升训练与推理性能。✅ 开箱即用,一站式模型开发服务
提供模型调优、压缩、部署、评测等全栈工具,功能覆盖大模型全生命周期,用户无需搭建即可直接使用。✅ 资源一站式按需开通,建设周期短
计算资源可分钟级获取,支持按需计费、弹性扩缩容,并具备断点续训与故障快速恢复能力。✅ 多服务组合竞争力,一站式应用能力集成
支持 MCP Server、LangChain、RAG、Agent、Guard、九问等组件即插即用,灵活构建复杂 AI 应用场景。✅ 兼容性强,适配主流框架与自定义需求
全面支持 TensorFlow、PyTorch、MindSpore 等主流 AI 框架,同时支持用户自研算法框架接入。
二、安装AingDesk应用
AingDesk应用介绍
🌟 AingDesk 简介
AingDesk
是一款简单易用、功能丰富的 AI 助手工具,支持知识库管理、模型 API 接入、联网搜索、智能体创建、在线分享等能力,适用于个人开发者与企业用户快速构建本地化 AI 应用。
🔍 核心功能与特点
功能 | 描述 |
---|---|
一键部署本地AI模型及主流模型API | 支持本地私有模型和主流平台模型的快速接入与部署。 |
本地知识库管理 | 可上传文档建立专属知识库,实现个性化问答与检索。 |
智能体创建 | 提供灵活配置界面,轻松打造具备特定角色和行为的AI智能体。 |
在线分享功能 | 支持将对话场景一键分享给他人使用,便于协作与展示。 |
联网搜索支持 | 实时接入互联网信息,提升回答的时效性与准确性。 |
服务器端部署支持 | 支持私有化部署,保障数据安全与系统稳定性。 |
单次多模型同时对话(即将上线) | 即将支持多个AI模型在同一对话中协同工作,提升对比分析能力。 |
下载地址
- AingDesk下载地址:https://github.com/aingdesk/AingDesk/releases/tag/v1.2.4
安装AingDesk工具
下载AingDesk安装包后,在本地Windows上直接安装即可。
三、开通DeepSeek-R1-0528商用服务
访问ModelArts Studio控制台
我们登录华为云官网后,在ModelArts Studio介绍页中(官网地址:https://www.huaweicloud.com/product/modelarts/studio.html),我们点击“ModelArts Studio控制台”后,即可进入ModelArts Studio控制台页面。
DeepSeek-R1-0528 介绍
DeepSeek-R1-0528 是 DeepSeek 最新推出的大语言模型版本,专为提升复杂代码生成与数学推理能力而设计。该模型在训练数据和算法架构上进行了深度优化,显著提升了以下方面的能力:
- 逻辑推理准确性
- 程序生成效率
- 数学问题求解能力
适用于如自动化编程、科研辅助、金融建模、数据分析等对精度与性能要求极高的高端应用场景,是开发者与研究人员的理想选择。
☁️ 华为云 ModelArts Studio(MaaS 平台)正式接入 DeepSeek-R1-0528
华为云 ModelArts Studio 是一站式 AI 开发平台,现已全面接入 DeepSeek-R1-0528,进一步丰富了其 MaaS(Model as a Service)服务能力。
基于 昇腾云的强大算力底座,用户可实现:
✅ 一键部署调用
✅ 低成本灵活扩展
✅ 高效应对复杂AI任务
此次合作不仅显著增强了平台在代码生成与数学推理方面的表现,也大幅降低了使用门槛与成本,助力开发者与企业快速构建智能化应用,推动 AI 技术落地。
📌 立即体验 DeepSeek-R1-0528,开启智能开发新篇章!
开通DeepSeek-R1-0528服务
在ModelArts Studio控制台首页的左侧菜单栏中,我们选择模型推理——在线推理,选择商务服务DeepSeek-R1-0528,点击“开通服务”。
备注:
服务类型 | 描述 | 注意事项 |
---|---|---|
免费服务 | 适合用于体验模型,受严格的速率限制。 | 平台可能会不定时调整其适用模型、免费额度、有效期等内容。 |
- 单个模型提供200万token推理额度。 | 额度消耗完后可选择开通商用级别的推理API服务或部署为付费服务使用。 | |
商用服务 | 提供商用级别的推理API服务。 | 开通后可获取付费API服务(仅限贵阳一)。 |
- 用户可以前往费用中心查看模型服务的优惠折扣发放和使用情况。 | 可以前往“我的服务”部署为个人服务后付费使用。 |
点击“开通服务”后,我们勾选同意协议,确认“
立即开通
”。
生成API Key
进入API Key管理页面。可以选择“创建API Key”,注意保存此API Key,建议保存在本地以便后续使用。
复制及保存OpenAI SDK信息
我们可以查看DeepSeek-R1-0528的使用说明,只需要点击“调用说明”选项。
调用说明如下所示,我们将DeepSeek-R1-0528服务的OpenAI SDK相关文件复制,保存在本地文本文件或本地笔记中。
四、AingDesk配置工作
添加模型供应商
在AingDesk的左下角中,我们点击【第三方模型API】,进入模型配置页面。
在第三方API配置界面中,点击【添加模型服务商】,进行其添加界面。
可参考以下配置填写:
- 供应商名称:华为云
- 接口地址:https://api.modelarts-maas.com/v1
- 密钥: 填写API Key
在刚才的自定义的模型服务商华为云中,可以看到已经自动为我们拉取华为云ModelArts Studio提供的模型名称列表,包括
deepseek-r1-250528
等。
模型选择
在AingDesk对话设置中,在上方的模型选择中,我们直接选择刚才添加的模型
deepseek-r1-250528
。
对话测试
在第一轮对话测试中,当我们询问对方的身份时,DeepSeek-R1-250528 模型给出了非常准确的回答。
在第二轮对话测试中,我们询问了《简·爱》的主要内容,AingDesk AI聊天助手给出了完整且准确的回答,充分展现了其出色的语义理解和知识整合能力。这也体现了华为云ModelArts Studio上部署的DeepSeek-R1-250528模型在实际应用中的强大性能与商用价值。
在第三轮对话中,我们向 AingDesk 提出请求:“请为我们生成一个漂亮美观的生日祝福 HTML 静态网页。”AingDesk 快速生成了一个界面美观、结构清晰且具有良好可读性的 HTML 静态网页,整体质量表现非常出色。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>温馨生日祝福</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
height: 100vh;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
color: #5a3e36;
}
.container {
background: rgba(255, 255, 255, 0.85);
border-radius: 20px;
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
padding: 40px;
max-width: 800px;
width: 90%;
text-align: center;
position: relative;
overflow: hidden;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
z-index: 10;
}
.birthday-title {
font-size: 3.5rem;
margin-bottom: 20px;
color: #e74c3c;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
letter-spacing: 2px;
animation: pulse 2s infinite;
}
.message {
font-size: 1.25rem;
line-height: 1.8;
margin-bottom: 30px;
color: #5a3e36;
}
.cake-container {
position: relative;
height: 200px;
margin: 30px 0;
}
.cake {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 200px;
height: 100px;
background: linear-gradient(to right, #e6b980 0%, #eacda3 100%);
border-radius: 10px 10px 0 0;
z-index: 5;
}
.cake:before {
content: '';
position: absolute;
top: -10px;
left: 0;
width: 100%;
height: 20px;
background: linear-gradient(to right, #f8b500 0%, #fceabb 100%);
border-radius: 10px 10px 0 0;
}
.candle {
position: absolute;
bottom: 100px;
width: 10px;
height: 40px;
background: #fff;
z-index: 10;
border-radius: 5px 5px 0 0;
}
.candle:nth-child(1) { left: 45%; }
.candle:nth-child(2) { left: 50%; }
.candle:nth-child(3) { left: 55%; }
.flame {
position: absolute;
top: -15px;
left: 50%;
transform: translateX(-50%);
width: 12px;
height: 20px;
background: #ffde7d;
border-radius: 50% 50% 20% 20%;
box-shadow: 0 0 15px #ffde7d, 0 0 30px #ff9a3c;
animation: flicker 1.5s infinite alternate;
}
.wishes {
font-style: italic;
font-size: 1.4rem;
margin-top: 30px;
color: #e74c3c;
font-weight: 600;
}
.balloon {
position: absolute;
width: 60px;
height: 70px;
border-radius: 50%;
bottom: -100px;
z-index: 1;
}
.balloon:before {
content: '';
position: absolute;
bottom: -20px;
left: 50%;
transform: translateX(-50%);
width: 2px;
height: 30px;
background: rgba(255, 255, 255, 0.6);
}
.balloon:nth-child(1) {
left: 10%;
background: radial-gradient(circle at 30% 30%, #ff9a9e, #e74c3c);
animation: float 15s linear infinite;
animation-delay: 0s;
}
.balloon:nth-child(2) {
left: 20%;
background: radial-gradient(circle at 30% 30%, #a6c1ee, #3498db);
animation: float 18s linear infinite;
animation-delay: 2s;
}
.balloon:nth-child(3) {
left: 30%;
background: radial-gradient(circle at 30% 30%, #c2e59c, #64b3f4);
animation: float 14s linear infinite;
animation-delay: 1s;
}
.balloon:nth-child(4) {
left: 70%;
background: radial-gradient(circle at 30% 30%, #ffecd2, #fcb69f);
animation: float 16s linear infinite;
animation-delay: 4s;
}
.balloon:nth-child(5) {
left: 80%;
background: radial-gradient(circle at 30% 30%, #d4fc79, #96e6a1);
animation: float 17s linear infinite;
animation-delay: 3s;
}
.balloon:nth-child(6) {
left: 90%;
background: radial-gradient(circle at 30% 30%, #fbc2eb, #a6c1ee);
animation: float 12s linear infinite;
animation-delay: 5s;
}
.confetti {
position: absolute;
width: 10px;
height: 10px;
background: #f1c40f;
border-radius: 50%;
top: -20px;
animation: confetti-fall 5s linear infinite;
}
.btn {
background: linear-gradient(to right, #ff9a9e, #fad0c4);
border: none;
padding: 15px 40px;
font-size: 1.2rem;
border-radius: 50px;
cursor: pointer;
color: white;
font-weight: 600;
margin-top: 20px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
z-index: 20;
position: relative;
}
.btn:hover {
transform: translateY(-5px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.signature {
margin-top: 30px;
font-size: 1.1rem;
color: #7f8c8d;
font-style: italic;
}
@keyframes float {
0% {
transform: translateY(0) rotate(0deg);
bottom: -100px;
}
100% {
transform: translateY(-120vh) rotate(360deg);
bottom: 100vh;
}
}
@keyframes flicker {
0%, 100% {
height: 20px;
box-shadow: 0 0 15px #ffde7d, 0 0 30px #ff9a3c;
}
50% {
height: 24px;
box-shadow: 0 0 20px #ffde7d, 0 0 40px #ff6b6b;
}
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
@keyframes confetti-fall {
0% {
transform: translateY(0) rotate(0deg);
opacity: 1;
}
100% {
transform: translateY(100vh) rotate(720deg);
opacity: 0;
}
}
@media (max-width: 768px) {
.birthday-title {
font-size: 2.5rem;
}
.message {
font-size: 1.1rem;
}
.cake-container {
height: 150px;
}
.cake {
width: 150px;
}
}
</style>
</head>
<body>
<!-- 气球装饰 -->
<div class="balloon"></div>
<div class="balloon"></div>
<div class="balloon"></div>
<div class="balloon"></div>
<div class="balloon"></div>
<div class="balloon"></div>
<!-- 主要内容容器 -->
<div class="container">
<h1 class="birthday-title"><i class="fas fa-birthday-cake"></i> 生日快乐! <i class="fas fa-birthday-cake"></i></h1>
<p class="message">
在这特别的日子里,愿所有的快乐、所有的幸福、所有的温馨、所有的好运都围绕在你的身边!
愿你的每一天都如今天般灿烂美好,愿你的梦想都能实现,愿你的生活充满欢笑和惊喜。
</p>
<div class="cake-container">
<div class="cake">
<div class="candle">
<div class="flame"></div>
</div>
<div class="candle">
<div class="flame"></div>
</div>
<div class="candle">
<div class="flame"></div>
</div>
</div>
</div>
<p class="wishes">
<i class="fas fa-heart"></i> 愿你拥有一个难忘的生日! <i class="fas fa-heart"></i>
</p>
<button class="btn" id="confettiBtn">
<i class="fas fa-gift"></i> 释放庆祝彩花
</button>
<p class="signature">—— 来自所有关心你的人</p>
</div>
<script>
// 创建彩花效果
document.getElementById('confettiBtn').addEventListener('click', function() {
const colors = ['#f1c40f', '#e74c3c', '#3498db', '#2ecc71', '#9b59b6', '#1abc9c'];
const container = document.querySelector('.container');
for (let i = 0; i < 100; i++) {
const confetti = document.createElement('div');
confetti.className = 'confetti';
confetti.style.left = Math.random() * 100 + '%';
confetti.style.animationDelay = Math.random() * 5 + 's';
confetti.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
confetti.style.width = Math.random() * 15 + 5 + 'px';
confetti.style.height = confetti.style.width;
container.appendChild(confetti);
// 移除彩花元素以优化性能
setTimeout(() => {
confetti.remove();
}, 5000);
}
// 添加按钮效果
this.innerHTML = '<i class="fas fa-gift"></i> 彩花飞舞中...';
this.disabled = true;
setTimeout(() => {
this.innerHTML = '<i class="fas fa-gift"></i> 再次释放彩花';
this.disabled = false;
}, 2000);
});
// 添加更多彩花背景效果
setInterval(() => {
const confetti = document.createElement('div');
confetti.className = 'confetti';
confetti.style.left = Math.random() * 100 + '%';
confetti.style.animationDuration = Math.random() * 3 + 5 + 's';
confetti.style.backgroundColor = ['#f1c40f', '#e74c3c', '#3498db', '#2ecc71', '#9b59b6', '#1abc9c'][Math.floor(Math.random() * 6)];
confetti.style.width = Math.random() * 10 + 5 + 'px';
confetti.style.height = confetti.style.width;
document.body.appendChild(confetti);
// 移除彩花元素以优化性能
setTimeout(() => {
confetti.remove();
}, 6000);
}, 200);
</script>
</body>
</html>
五、使用体验
在基于华为云 ModelArts Studio 平台部署并使用 AingDesk AI 聊天助手 的过程中,我深刻感受到其强大的集成能力与出色的交互体验。整个部署流程简洁高效,平台提供了完善的模型管理、API 配置和在线调试功能,即使是初次接触AI开发的用户也能快速上手。借助 DeepSeek 提供的高质量语言模型 DeepSeek-R1-250528,AingDesk 展现出了极高的对话理解能力和多轮交互稳定性,在知识问答、代码生成、网页设计等多个场景下都表现优异。无论是本地测试还是对外服务,系统响应迅速,输出内容准确且富有逻辑性,真正实现了“开箱即用”的智能助手体验。通过此次实践,我对华为云 ModelArts Studio 在 AI 工程化落地方面的强大支撑能力有了更深入的认识,也为 AingDesk 在未来更多应用场景中的拓展充满信心。
六、实践总结
🎯 总结:强强联合,让 AI 开发更简单高效!
在本次基于 华为云 ModelArts Studio 打造 AingDesk AI 聊天助手 的实践中,我们深刻感受到华为云在 AI 领域的强大支撑能力。从模型部署到接口调用,再到服务上线,整个流程高效流畅,真正实现了“开箱即用”的智能开发体验。结合 Flexus 弹性云服务器 和 DeepSeek 高质量大模型,AI 应用落地从未如此轻松。
⚡ ModelArts Studio:一站式 AI 工程化平台典范
华为云 ModelArts Studio 凭借其一站式的开发体验、可视化的操作界面与强大的资源调度能力,成为我们构建 AI 助手的理想选择。无论是本地模型部署、API 接口封装,还是多模型协同测试,ModelArts Studio 都展现了卓越的稳定性与灵活性,极大降低了 AI 开发门槛。
- ✅ 模型一键部署
- 🔧 接口快速调试
- 📊 服务实时监控
- 🌐 多环境灵活切换
🌟 华为云 + DeepSeek = AI 未来的最佳拍档
通过本次项目,我们不仅验证了 AingDesk AI 聊天助手 在问答、代码生成、网页设计等多个场景下的实用价值,也更加坚定了对 华为云平台 和 DeepSeek 模型能力的信心。两者强强联合,为企业和个人开发者提供了从想法到落地的完整解决方案。
🚀 如果你也想打造属于自己的 AI 应用,不妨从 华为云 ModelArts Studio 开始,开启你的智能开发之旅!