Spring AI Alibaba 从入门到实战:一站式掌握企业级 AI 应用开发
一、前言随着大模型技术的普及企业级 AI 应用开发需求激增。Spring AI Alibaba 作为基于 Spring AI 扩展的企业级 AI 开发框架兼具 Spring 生态原生优势与阿里云生态深度适配能力成为国内企业开发 AI 应用的首选。本文将从框架选型、快速入门、核心功能到实战案例全方位讲解 Spring AI Alibaba 的使用帮助开发者快速落地 AI 应用。二、AI 应用开发框架与大模型选型2.1 主流 AI 开发框架对比企业级 Java AI 应用开发框架主要有 Spring AI、Spring AI Alibaba、LangChain4j 三类核心能力对比如下能力点Spring AISpring AI AlibabaLangChain4j统一 LLM 调用接口✅✅兼容 增强✅RAG检索增强生成✅✅集成阿里云向量库✅功能更全基础 Agent / 工具调用✅✅✅核心能力企业级工作流 / Graph❌✅❌多 Agent 协作❌✅❌Human-in-the-Loop❌✅❌Spring 生态原生集成✅核心✅继承 增强❌需手动阿里云生态深度适配❌✅❌可观测性监控 / 日志✅基础✅企业级❌选型建议快速搭建基础 AI 应用标准聊天、简单 RAG→ 选 Spring AI国内企业 / 阿里云用户客服机器人、企业知识库→ 选 Spring AI Alibaba强烈推荐复杂 AI 应用无 Spring 依赖→ 选 LangChain4j。2.2 大模型部署方案对比大模型使用主要分「云端阿里云百炼」和「本地Ollama」两种方案核心差异如下对比维度阿里云百炼云端Ollama 本地部署部署成本低零硬件投入中需本地硬件数据隐私依赖云平台完全本地可控使用成本按调用量付费一次性硬件投入免费使用响应速度依赖网络本地极速响应模型能力满血版大模型轻量化模型受硬件限制适用场景企业级应用、公网服务、快速原型隐私敏感场景、离线使用、个人开发三、Spring AI Alibaba 快速入门3.1 核心概念Spring AI Alibaba基于 Spring AI 开源项目完全兼容其核心 APIChatClient、EmbeddingClient支持无缝迁移同时扩展企业级特性阿里云百炼一站式企业级大模型 MaaS 平台可理解为 “大模型超市”官网https://bailian.console.aliyun.com。3.2 环境准备基础环境Spring Boot 3 JDK 17 Maven阿里云百炼配置充值并创建 API Key复制目标模型名如 qwen3-max、deepseek-v3.2复制调用地址默认https://dashscope.aliyuncs.com/compatible-mode/v1。3.3 父工程搭建统一依赖版本xml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.itszb/groupId artifactIdssa_parent/artifactId packagingpom/packaging version1.0-SNAPSHOT/version properties maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target spring-ai.version1.0.0/spring-ai.version spring-ai-alibaba.version1.0.0.2/spring-ai-alibaba.version spring-boot.version3.4.5/spring-boot.version /properties dependencyManagement dependencies dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-bom/artifactId version${spring-ai-alibaba.version}/version typepom/type scopeimport/scope /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring-boot.version}/version typepom/type scopeimport/scope /dependency dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement /project3.4 基础对话示例以 Qwen 为例3.4.1 子工程依赖xml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent artifactIdssa_parent/artifactId groupIdcom.itszb/groupId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion artifactId01_ssa_hello/artifactId properties maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-starter-dashscope/artifactId /dependency /dependencies /project3.4.2 配置文件application.ymlyamlspring: ai: dashscope: api-key: sk-fbf61689d0434296a3c274b02f81**** # 替换为自己的API Key base-url: https://dashscope.aliyuncs.com/compatible-mode/v1 chat: options: model: qwen3-max3.4.3 核心代码Controllerjavapackage com.itszb.controller; import org.springframework.ai.chat.model.ChatModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController public class CharController { Autowired private ChatModel chatModel; GetMapping(/hello) public String hello( RequestParam(value msg, defaultValue 给我讲个笑话) String msg) { return chatModel.call(msg); } }启动类javapackage com.itszb; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class SsaHelloApp { public static void main(String[] args) { SpringApplication.run(SsaHelloApp.class, args); } }3.4.4 测试访问http://localhost:8080/hello?msg欢迎用户即可获取大模型响应。3.5 流式响应优化体验流式响应可逐字符返回结果提升用户体验核心代码如下javaGetMapping(value/stream, producestext/html;charsetUTF-8) public FluxString stream( RequestParam(value msg, defaultValue 你是谁) String msg) { return chatModel.stream(msg); }四、Spring AI Alibaba 调用本地 Ollama4.1 Ollama 安装与配置下载地址https://ollama.com/自定义安装路径以 Windows 为例shell# 将OllamaSetup.exe放到D:\Ollama执行以下命令 .\OllamaSetup.exe /DIRD:\Ollama配置模型存储路径新增系统环境变量OLLAMA_MODELSD:\Deepseek重启 Ollama拉取本地模型如 deepseek-r1:1.5bshellollama run deepseek-r1:1.5b4.2 调用本地模型4.2.1 依赖配置xmldependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-ollama/artifactId /dependency4.2.2 配置文件yamlspring: ai: ollama: base-url: http://localhost:11434 chat: model: deepseek-r1:1.5b4.2.3 核心代码java运行package com.itszb.controller; import org.springframework.ai.ollama.OllamaChatModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController public class ChatController { Autowired private OllamaChatModel ollamaChatModel; GetMapping(/ollama/chat) public String chat(RequestParam(value msg, defaultValue 你是谁) String msg) { return ollamaChatModel.call(msg); } }五、核心进阶功能5.1 ChatClient更优雅的交互方式ChatClient 基于 ChatModel 封装支持链式调用、上下文记忆、Prompt 模板化核心配置与使用如下5.1.1 配置 ChatClient Beanjava运行package com.itszb.config; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.model.ChatModel; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; Configuration public class ModelConfig { Bean public ChatClient chatClient(ChatModel dashScopeChatModel) { return ChatClient.builder(dashScopeChatModel).build(); } }5.1.2 调用示例java运行GetMapping(/chatClient/chat2) public String chat2( RequestParam(value msg, defaultValue 给我讲个笑话) String msg) { return chatClient .prompt() .user(msg) .call() .content(); }5.2 多模型配置与切换在一个应用中同时集成多个大模型灵活调用5.2.1 配置多模型 ChatClientjava运行Configuration public class ModelConfig { Bean public ChatClient qwen(ChatModel dashScopeChatModel) { return ChatClient.builder(dashScopeChatModel).defaultOptions( ChatOptions.builder().model(qwen3-max).build() ).build(); } Bean public ChatClient deepseek(ChatModel dashScopeChatModel) { return ChatClient.builder(dashScopeChatModel).defaultOptions( ChatOptions.builder().model(deepseek-v3.2).build() ).build(); } }5.2.2 调用多模型java运行RestController public class ChatController { Autowired Qualifier(qwen) private ChatClient qwenChatClient; Autowired Qualifier(deepseek) private ChatClient deepseekChatClient; GetMapping(/moreModel/chat1) public String chat1(RequestParam(value msg, defaultValue 你是谁) String msg) { return qwenChatClient.prompt().user(msg).call().content(); } GetMapping(/moreModel/chat2) public String chat2(RequestParam(value msg, defaultValue 你是谁) String msg) { return deepseekChatClient.prompt().user(msg).call().content(); } }5.3 提示词工程精准控制 AI 响应5.3.1 角色预设系统提示词java运行Bean public ChatClient chatClient(ChatModel dashScopeChatModel) { return ChatClient.builder(dashScopeChatModel) .defaultSystem(你是一名老中医你精通望闻问切回答简洁、专业只讲技术不闲聊。) .build(); }5.3.2 提示词模板java运行GetMapping(/prompt/chat3) public String chat3(RequestParam(name)String name, RequestParam(msg) String msg) { // 系统提示词模板 PromptTemplate systemPromptTemplate new PromptTemplate(你是一个美食咨询助手可以帮助人们查询美食信息。你的名字是{name},你应该用你的名字回复用户的请求。); Message systemPrompt systemPromptTemplate.createMessage(Map.of(name, name)); // 用户提示词模板 PromptTemplate userPromptTemplate new PromptTemplate(给我推荐北京{msg}的三种美食); Message userPrompt userPromptTemplate.createMessage(Map.of(msg, msg)); Prompt prompt new Prompt(List.of(systemPrompt, userPrompt)); return chatClient.prompt(prompt).call().content(); }5.4 函数调用连接 AI 与业务逻辑函数调用允许大模型触发外部函数如查数据库、调 API核心流程定义函数 → 模型决策调用 → 执行函数 → 返回结果生成最终回答。六、总结Spring AI Alibaba 凭借 Spring 生态原生集成、阿里云深度适配、企业级特性全覆盖等优势成为国内企业开发 AI 应用的最优解。本文从框架选型、环境搭建、基础调用到进阶功能多模型、ChatClient、提示词、函数调用覆盖了开发全流程。后续还将讲解 RAG 实现、综合案例等内容帮助开发者真正落地企业级 AI 应用。附版本兼容参考Spring AI AlibabaSpring AISpring Boot1.0.0.21.0.03.4.51.0.0-M6.11.0.0-M63.4.2