目录
2.2 ModelArts Studio(MaaS)使用场景
3.3 聊天对话型生成调用接口:/v1/chat/completions
3.4 面向传统文本补全接口:/v1/completions
一、前言
华为云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,影响用户体验。后续可针对此问题进行优化,如优化请求策略、设计批量处理机制等,以提升系统性能,更好地发挥该技术栈的应用价值。
大家可以去体验感受一下,欢迎评论区一起交流。