Spring AI Alibaba 基于 Spring AI 构建,深度对接阿里云百炼平台,提供统一抽象 API,支持通义千问、RAG 知识库检索、Function Call 工具调用、多智能体 Graph 编排。熟悉 SpringBoot 开发风格,几乎零学习成本。
今天这篇手把手完整集成教程,从环境准备、获取密钥、引入依赖、配置文件、编写代码、测试接口,一步到位,复制代码就能跑。面试、项目开发都能用。
一、前置准备工作1. 环境要求Spring Boot 3.xJDK 17+Maven/Gradle阿里云百炼 DashScope 账号,获取 API Key2. 获取 DashScope API Key登录阿里云百炼 Model Studio 平台进入 API-KEY 管理页面,创建密钥复制生成的sk-xxxx密钥,注意不要硬编码提交到代码仓库,推荐环境变量注入安全提醒:生产环境严禁把 API Key 写死在 yml 配置文件提交 Git,优先使用环境变量、配置中心托管密钥。
二、Maven 引入依赖(pom.xml)在dependencyManagement中引入 BOM 统一管理版本,避免版本冲突,再引入核心 starter。
三、application.yml 配置文件spring:
ai:
dashscope:
api-key: ${DASHSCOPE_API_KEY} # 环境变量读取密钥,本地调试可以临时替换成sk-xxx
chat:
options:
model: qwen-turbo # 可选 qwen-turbo、qwen-plus、qwen-max
temperature: 0.7 # 随机性,0最严谨,越高越发散model:模型名称,qwen-turbo 速度快成本低,适合普通业务问答;qwen-max 能力最强temperature:温度参数,知识库问答场景建议调低到 0.1~0.3,减少模型幻觉四、编写代码实现对话能力1. 启动类import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AiDemoApplication {
public static void main(String[] args) {
SpringApplication.run(AiDemoApplication.class, args);
}
}2. 编写 Controller,提供对话接口import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AiChatController {
private final ChatClient chatClient;
// ChatClient自动注入
public AiChatController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/ai/chat")
public String chat(@RequestParam String message){
return chatClient.prompt(message)
.call()
.content();
}
}启动项目,访问接口:http://127.0.0.1:8080/ai/chat?message=介绍下Spring AI Alibaba,即可拿到大模型返回结果。
五、进阶:流式输出接口(打字机效果)很多 AI 产品需要流式返回,SSE 推送内容,Spring AI Alibaba 原生支持,代码改动很小:
@GetMapping(value = "/ai/stream", produces = "text/event-stream")
public Flux
return chatClient.prompt(message)
.stream()
.content();
}前端使用 EventSource 订阅,实现逐字输出效果,适合智能问答页面。
六、核心能力简单介绍(面试 / 项目亮点)统一抽象,模型无感切换 Spring AI 定义一套标准 API,底层模型可以切换通义千问、DeepSeek 等,业务代码几乎不用改动。不用为每个模型单独封装 SDK。Prompt 模板 支持 PromptTemplate,把提示词模板写在配置或者文件,方便管理系统提示词,不需要硬编码字符串。Function Call 工具调用 模型可以调用后端 Java 方法,实现联网查询、数据库查询,构建 Agent 智能体。RAG 向量检索 内置向量存储抽象,结合文档切片、向量化,实现私有知识库问答,企业内部文档问答场景首选。Graph 多智能体编排 Spring AI Alibaba 扩展 Graph 能力,搭建复杂工作流、多 Agent 协作,适合复杂业务 AI 流程。七、开发踩坑点(重点避坑)JDK 版本必须 17+,SpringBoot3 要求,JDK8 无法运行。API Key 不要硬编码进代码,提交 Git 会造成密钥泄露,产生高额费用。模型名称写错会鉴权失败,qwen-turbo、qwen-plus 名称严格区分。流式接口返回类型必须指定text/event-stream,否则前端无法正常 SSE 接收。调用频率过高会触发 DashScope 限流,生产做好限流、重试机制。temperature 参数不是越高越好,知识库场景温度太高,幻觉会变多。八、生产扩展方向基础对话跑通之后,可以继续扩展能力:
接入 RAG,上传 PDF、文档构建私有知识库开发 Function Call,让大模型调用后端业务接口基于 Graph 搭建多 Agent 工作流,完成复杂任务编排增加对话记忆 ChatMemory,实现多轮上下文对话增加日志、链路追踪,监控 token 消耗、调用耗时写在最后对于 Java 后端来说,Spring AI Alibaba 大大降低了大模型接入成本。不用手写 HTTP 请求,统一 API 抽象,兼顾简单对话和复杂 Agent 场景。不管是做业务 AI 功能,还是面试聊 AI 项目,都是很好的技术选型。
你打算用 Spring AI Alibaba 做什么场景?知识库问答还是 Agent 工具调用?评论区聊聊。