当前位置: 首页 > news >正文

华为云Flexus+DeepSeek征文|SpringBoot开发实战:基于ModelArts Studio高效集成DeepSeek大模型服务

目录

一、前言

二、ModelArts Studio(MaaS)介绍与使用

2.1ModelArts Studio(MaaS)介绍

2.2 ModelArts Studio(MaaS)使用场景

2.3 开通MaaS服务

2.4 开通DeepSeek-V3商用服务

三、MaaS模型服务接口测试

3.1 获取API Key

3.2 获取模型列表接口:/v1/models

3.3 聊天对话型生成调用接口:/v1/chat/completions

3.4 面向传统文本补全接口:/v1/completions

四、Springboot整合MaaS模型服务接口

4.1 Springboot代码整合

4.2 测试验证

4.3 调用统计

五、总结


一、前言

华为云ModelArts Studio(MaaS)作为全托管的AI开发平台,为企业和开发者提供了便捷的大模型部署和应用能力。本文将详细介绍如何通过Spring Boot应用调用ModelArts Studio上部署的DeepSeek-V3模型服务,包括平台介绍、接口测试和代码整合等内容。

二、ModelArts Studio(MaaS)介绍与使用

2.1ModelArts Studio(MaaS)介绍

ModelArts Studio是华为云面向AI开发者的全托管服务平台,支持从数据处理、模型开发到部署上线的全生命周期管理。其ModelArts Studio产品架构如图:

总结其核心优势在于:

  • ​全托管服务​​:无需管理底层基础设施,专注于模型开发和应用
  • ​多模型支持​​:支持多种预训练大模型和自定义模型部署
  • ​弹性扩展​​:根据业务需求自动调整计算资源
  • ​安全可靠​​:提供多层次的安全防护机制

2.2 ModelArts Studio(MaaS)使用场景

华为MaaS服务提供了简单易用的模型开发工具链,支持大模型定制开发,让模型应用与业务系统无缝衔接,降低企业AI落地的成本与难度,能够在多种场景灵活使用。主要有如下场景:

  • ​智能客服​​:快速构建企业级智能客服系统
  • ​内容创作​​:辅助生成文章、故事、代码等内容
  • ​知识问答​​:构建企业知识库问答系统
  • ​数据分析​​:自动化数据分析和报告生成
  • ​多模态应用​​:结合图像、语音等多模态数据处理

2.3 开通MaaS服务

访问MaaS平台,点击MaaS控制台跳转华为云登录页面,登录或者注册华为账号即可。

2.4 开通DeepSeek-V3商用服务

登录成功之后自动跳转ModelArts Studio控制台,在模型推理-在线推理的商用服务找到DeepSeek-V3/R1模型,点击「开通服务」,即可体验对应模型服务。

根据个人需求可以开通DeepSeek-V3或者DeepSeek-R1模型。

开通成功之后,返回控制台就可以看到付费状态显示开通,并且在操作栏可以看到在线体验已高亮。

三、MaaS模型服务接口测试

开通完开通DeepSeek-V3/商用服务,接下来就可以进行模型服务接口调用。MaaS模型服务接口可以参考:调用ModelArts Studio(MaaS)部署的模型服务_AI开发平台ModelArts_华为云

 点击调用说明,可以看到接口请求域名

即请求域名如下:https://api.modelarts-maas.com/,后续所有MaaS模型服务接口都是通过这个请求。MaaS模型服务接口包括下面三个:

  • /v1/chat/completions
  • /v1/models
  • /v1/completions

注意:

  • /v1/models使用GET方法不需要请求体,而/v1/chat/completions与/v1/completions均需要POST请求方式和对应的JSON请求体。
  • 请求头为Authorization: Bearer YOUR_API_KEY,这里注意前面还有Bearer+空格
  • 对于POST请求,还需包含Content-Type: application/json。

3.1 获取API Key

API Key是调用MaaS服务的身份凭证,每个API Key对应唯一的用户和服务权限,在ModelArts Studio控制台-API Key管理进行创建生成。

这里需要注意的是API Key只会展示一次,所以生成完成之后需要复制保存起来。

3.2 获取模型列表接口:/v1/models

​功能说明​​:
该接口用于获取当前用户可用的模型列表,无需请求体,仅需通过请求头传入认证信息。

3.3 聊天对话型生成调用接口:/v1/chat/completions

该接口主要用于对话式交互场景,支持多轮对话和上下文理解,比如向模型提问:介绍一下你的功能?

请求参数如下:

{"model": "DeepSeek-V3","messages": [{"role": "user", "content": "介绍一下你的功能"}],"temperature": 0.7
}

请求响应结果如下:

3.4 面向传统文本补全接口:/v1/completions

这个接口主要是面向传统文本补全,即根据给定的prompt生成相应文本,让其讲一个大灰狼和小白兔的故事。请求参数如下:

{"model": "DeepSeek-V3","prompt": "讲一个大灰狼和小白兔的故事","max_tokens": 150,"temperature": 0.7
}

请求响应结果如下:

四、Springboot整合MaaS模型服务接口

MaaS模型服务接口测试完毕之后,接下来就可以在代码进行整合了,本次模拟开发一个AI交流工具,主要需求是在网页对话框,输入咨询问题,AI工具能够响应回调,并且后续可以结合自己业务进行改造。

4.1 Springboot代码整合

根据接口文档,编写接口请求MaaS模型聊天对话型生成调用接口/v1/chat/completions工具方法。

public String chat(String question) {// 修改 messages 部分,使用 JSONObject 数组而不是 String 数组JSONObject json = new JSONObject();json.put("model", "DeepSeek-V3");JSONArray messages = new JSONArray();JSONObject message = new JSONObject();message.put("role", "user");message.put("content", question);messages.add(message);json.put("messages", messages);json.put("temperature", 0.7);String response = HttpRequest.post("https://api.modelarts-    maas.com/v1/chat/completions").body(json.toString()) // 设置请求体为JSON格式.header("Authorization", "Bearer " + apiToken).header("Content-Type", "application/json").timeout(20000) // 设置超时时间.execute().body();// 获取message内容JSONObject jsonObject = JSONObject.parseObject(response);JSONObject messageR = jsonObject.getJSONArray("choices").getJSONObject(0).getJSONObject("message");return messageR.getString("content");}

前端可以请求问题咨询,并将接收结果通知响应到前端页面中。

 // 发送消息到后端接口function sendMessage() {const question = document.getElementById('questionInput').value.trim();if (!question) {alert('请输入问题!');return;}// 添加用户消息到聊天框addMessage(question, 'user');// 调用后端接口fetch('/maas/v1/chat', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({ question }), // 发送 JSON 数据}).then(response => response.json()).then(data => {// 添加机器人回复到聊天框var data = data.data;addMessage(data.response, 'bot');}).catch(error => {console.error('Error:', error);addMessage('请求失败,请稍后重试。', 'bot');});// 清空输入框document.getElementById('questionInput').value = '';}

4.2 测试验证

启动服务,在对话框中输入咨询问题,比如:介绍一下你的功能,可以看到自动将结果渲染到前端页面中。

4.3 调用统计

可以看到调用次数,token数,请求成功和失败数,已经响应时间。

五、总结

本次基于Spring Boot调用ModelArts Studio(MaaS)部署的DeepSeek-V3模型服务项目顺利完成。可以看到其优势显著,整合对接简单,成本低,适合AI小白,只需获取API Key进行HTTP请求即可快速上手,开发效率高且资源投入少,应用场景广泛,能满足多种业务需求。

然而,项目也存在不足,接口调用响应时间较长,平均响应时间达8851.25ms,影响用户体验。后续可针对此问题进行优化,如优化请求策略、设计批量处理机制等,以提升系统性能,更好地发挥该技术栈的应用价值。

大家可以去体验感受一下,欢迎评论区一起交流。

http://www.dtcms.com/a/194691.html

相关文章:

  • 归并排序:分治思想的优雅实现
  • 后端框架(1):Mybatis
  • 在 C# 中将 DataGridView 数据导出为 CSV
  • ROS资料推荐学习
  • xss-labs靶场第11-14关基础详解
  • Microsoft Azure 服务4月更新告示
  • handsome主题美化及优化:10.1.0最新版 - 1
  • 网站运维基础 | 2. cms介绍及wordpress的搭建
  • 大模型——Crawl4AI使用JsonCssExtractionStrategy进行结构化数据提取
  • 真题卷001——算法备赛
  • PCIeSwitch 学习
  • MySQL的触发器
  • 本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
  • 哈希表的实现02
  • 【C++/Qt shared_ptr 与 线程池】合作使用案例
  • 非受控组件在React中的使用场景有哪些?
  • node.js文件系统(fs) - 创建文件、打开文件、写入数据、追加数据、读取数据、创建目录、删除目录
  • 【带文档】网上点餐系统 springboot + vue 全栈项目实战(源码+数据库+万字说明文档)
  • 操作系统|| 虚拟内存页置换算法
  • COMSOL随机参数化表面流体流动模拟
  • 记录算法笔记(2025.5.15)将有序数组转换为二叉搜索树
  • 城市排水管网流量监测系统解决方案
  • CS016-4-unity ecs
  • MySQL高效开发规范
  • 基于SpringBoot的房屋租赁管理系统
  • C语言的9*9乘法表(两种思路,选择适合自己的。)
  • 使用 OpenCV 将图像中标记特定颜色区域
  • 根据台账批量制作个人表
  • idea运行
  • 时源芯微|EMC常用器件原理及选型