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 字段是否为已开通模型的名称

七、官方资源


如果你需要集成百炼更多高级能力(如图像生成、多轮对话、插件调用等),我也可以继续提供帮助。是否需要我补充这些内容?