Spring AI 是一个由 Spring 团队推出的 AI 应用开发框架,它支持主流大模型平台的接入,如 OpenAI、Azure OpenAI、Alibaba 百炼等。本文将详解如何通过 Spring AI 对接 阿里云百炼平台的大模型服务,并结合代码说明如何完成调用。
一、前置条件
1. 开通阿里云百炼平台
- 登录阿里云,开通百炼平台服务:https://bailian.console.aliyun.com
- 创建一个模型服务(如通义千问/Qwen)
- 获取:
API-KEY
Endpoint
- 模型名称(如
qwen-turbo
)
2. 项目环境
- Java 17+
- Spring Boot 3.x
- 引入 Spring AI 相关依赖
二、引入依赖(Maven)
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.8.1</version>
</dependency>
⚠️ 虽然是 openai
相关 starter,但 Spring AI 使用了 OpenAI 兼容的 API 规范,百炼平台也支持这种规范。
三、配置百炼平台参数(application.yml)
spring:
ai:
openai:
base-url: https://dashscope.aliyuncs.com/compatible-mode/v1 # 百炼兼容 OpenAI 接口的 endpoint
api-key: sk-xxx # 你的阿里云百炼 API KEY
model: qwen-turbo
四、代码使用示例
1. 调用接口示例(Chat 接口)
import org.springframework.ai.openai.api.OpenAiChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/chat")
public class ChatController {
@Autowired
private OpenAiChatClient chatClient;
@GetMapping
public String chat(@RequestParam String message) {
return chatClient.call(message);
}
}
2. 进阶:使用 PromptTemplate
和 ChatClient
import org.springframework.ai.chat.ChatClient;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.prompt.PromptTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class PromptController {
@Autowired
private ChatClient chatClient;
@GetMapping("/prompt")
public String promptChat(@RequestParam String question) {
PromptTemplate template = new PromptTemplate("请用中文回答这个问题:{question}");
Prompt prompt = template.create(Map.of("question", question));
return chatClient.call(prompt).getResult().getOutput().getContent();
}
}
五、注意事项
- 百炼的 OpenAI 兼容接口目前仅支持
Chat Completions
,路径为/compatible-mode/v1/chat/completions
- 模型名称应为阿里云平台提供的模型 ID,如
qwen-turbo
- 百炼接口的 Token 计费规则不同于 OpenAI,建议查看官方控制台文档
六、常见问题
问题 | 解决方式 |
---|---|
报 401 错误 | 检查 API-KEY 是否正确 |
报 404 | 检查 Endpoint 路径是否为 /compatible-mode/v1/chat/completions |
返回模型不一致错误 | 检查 model 字段是否为已开通模型的名称 |
七、官方资源
如果你需要集成百炼更多高级能力(如图像生成、多轮对话、插件调用等),我也可以继续提供帮助。是否需要我补充这些内容?
发表回复