
一SpringAI基础理论Spring AI 是 Spring 官方在 2024 年推出的 AI 开发框架旨在将 Spring 的设计原则——可移植性、模块化设计和 POJO 编程模型——应用到 AI 工程领域。它不是一个简单的 AI SDK而是一套完整的 AI 应用开发框架让 Java 开发者可以用熟悉的 Spring Boot 风格来构建 AI 应用。该项目的创立基于一个信念下一波生成式 AI 应用程序将普及到多种编程语言而不仅限于 Python 开发者。它借鉴了 LangChain 和 LlamaIndex 等 Python 项目的灵感但并非直接移植。核心定位将企业的数据和API与AI 模型连接起来。1.1核心设计理念Spring AI 的设计哲学完全传承自 Spring 框架理念说明依赖注入通过 DI 管理 AI 组件实现松耦合POJO 编程使用普通 Java 对象进行开发降低复杂度模块化架构各功能模块独立可按需引入可配置性通过配置文件灵活切换实现非侵入式集成无需修改现有业务代码即可接入 AI 能力约定优于配置遵循 Spring Boot 的自动配置哲学1.2核心特性1.2.1全栈多供应商模型适配深度对接主流 AI 服务商聊天模型OpenAI、Anthropic (Claude)、通义千问、DeepSeek、Ollama 等嵌入模型文本向量化、语义搜索多模态模型图像识别、视频理解、音频转录语音交互音频转录、文本转语音所有模型统一接口封装切换模型无需修改业务代码。1.2.2标准化抽象 API提供ChatClient、EmbeddingModel、ImageModel等标准化接口支持同步和流式 API 调用结构化输出将 AI 非结构化响应自动映射到 Java POJO模型特定高级功能如 Function Calling1.2.3原生集成 Spring Boot通过 Starter 依赖与自动装配实现一键集成Spring Initializr 可快速生成项目骨架支持虚拟线程、GraalVM 原生镜像通过 Micrometer 实现可观测性集成 Spring Boot DevTools、Docker Compose 和 Testcontainers1.2.4向量数据库与 RAG 支持跨向量存储提供商提供便携式 API支持Apache Cassandra、Milvus、PGVector、Redis、Elasticsearch、Chroma 等类 SQL 元数据过滤器 API检索增强生成RAG1.2.5工具/函数调用允许 AI 模型请求执行客户端工具和函数按需访问实时信息并采取行动。支持通过Tool注解或java.util.Function对象定义工具。1.2.6ETL 框架与可观测性数据工程的文档摄取 ETL 框架AI 相关操作的可观测性支持AI 模型评估工具帮助防止幻觉响应1.2.7Advisors API封装常见的生成式 AI 模式转换发送给和来自 LLM 的数据实现针对文档的问答等常见用例。1.3核心概念与架构1.3.1核心概念概念说明Model模型处理和生成信息的算法Spring AI 支持语言、图像、音频的输入输出Prompt提示词引导 AI 模型产生特定输出的语言输入包含 system/user 等角色Prompt Template提示模板使用 StringTemplate 创建和管理提示支持占位符填充Embedding嵌入文本/图像/视频的向量表示用于捕捉语义关系Token令牌AI 模型工作的基本单元约 0.75 个英文单词1.3.2架构分层Spring AI 的架构可分为三层接口层通过AIClient等接口定义 AI 服务的标准调用方式支持同步/异步核心引擎层模型管理与动态路由支持模型版本管理和 A/B 测试基础设施层通过自动配置机制支持自定义序列化器、请求拦截器、健康检查等扩展核心模块包括Core Abstractions统一的 AI 任务抽象Extensions通过 Spring 自动配置集成企业级组件Ecosystem与 Spring Cloud、Spring Data 等无缝融合1.4快速上手1.4.1添加依赖在pom.xml中添加 Spring Milestones 仓库和 BOMrepositories repository idspring-milestones/id nameSpring Milestones/name urlhttps://repo.spring.io/milestone/url /repository /repositories properties spring-ai.version1.1.2/spring-ai.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-openai-spring-boot-starter/artifactId /dependency /dependencies1.4.2配置 API Key在application.yml中配置spring: ai: openai: api-key: ${OPENAI_API_KEY} chat: options: model: gpt-4o国内开发者可使用阿里云通义千问。1.4.3编写调用代码通过ChatClient即可完成 AI 调用。1.5适用场景场景说明智能客服传统企业应用快速接入智能问答RAG 知识库从零搭建基于文档的问答系统内容生成代码生成、文案创作、文本摘要语义搜索基于文本嵌入的相似性检索微服务 AI 模块独立部署 AI 服务模块AI Agent 开发构建具备工具调用能力的智能体1.6总结Spring AI 的核心价值在于统一抽象一套接口覆盖所有主流 AI 模型切换零成本降低门槛Java 开发者无需 AI 底层知识即可集成 AI 能力企业级就绪继承 Spring Boot 的生产级特性开箱即用完整生态覆盖模型调用、向量存储、RAG、Agent 等全流程官方资源官网https://spring.io/projects/spring-ai[reference:64]官方文档https://docs.spring.io/spring-ai/reference/index.html[reference:65]中文文档https://spring-ai.springdoc.cn/docs/1.0.0/index.html[reference:66]二SpringAI特性介绍Spring AI 是一个面向人工智能工程的应用框架。解决了 AI 集成的基本挑战将企业数据和API与AI 模型连接起来。2.1特性2.1.1提示词工厂可以说是大模型应用中最简单也是最核心的一个技术。他是我们更大模型交互的媒介提示词给的好大模型才能按你想要的方式响应。2.1.2对话拦截advisors面向切面的思想对对模型对话和响应进行增强。2.1.3对话记忆Autowired ChatMemoryRepository chatMemoryRepository;通过一个bean组件就可以让大模型拥有对话记忆功能可谓是做到了开箱即用2.1.4tools让大模型可以跟企业业务API进行互联 这一块实现起来也是非常的优雅class DateTimeTools { Tool(description Get the current date and time in the users timezone) String getCurrentDateTime() { return LocalDateTime.now().atZone(LocaleContextHolder.getTimeZone().toZoneId()).toString(); } }2.1.5RAG技术下的 ETL让大模型可以跟企业业务数据进行互联包括读取文件、分隔文件、向量化 向量数据库支持 目前支持20种向量数据库的集成。2.1.6MCP让tools外部化形成公共工具让外部开箱即用。 原来MCP协议的JAVA SDK就是spring ai团队提供的 提供了MCP 客户端、服务端、以及MCP认证授权方案 还有目前正在孵化的Spring MCP Agent 开源项目:2.1.7模型的评估可以测试大模型的幻觉反应2.1.8可观察性它把AI运行时的大量关键指标暴露出来 可以提供Spring Boot actuctor进行观测2.1.9agent应用springai 提供了5种agent模式的示例Evaluator Optimizer – The model analyzes its own responses and refines them through a structured process of self-evaluation.Routing – This pattern enables intelligent routing of inputs to specialized handlers based on classification of the user request and context.Orchestrator Workers – This pattern is a flexible approach for handling complex tasks that require dynamic task decomposition and specialized processingChaining – The pattern decomposes complex tasks into a sequence of steps, where each LLM call processes the output of the previous one.Parallelization – The pattern is useful for scenarios requiring parallel execution of LLM calls with automated output aggregation.学完这5种你会对对模型下的agent应用有一个完整认识2.2langchain4j vs springAI生态不依赖Spring需要单独集成SpringSpring官方和Spring无缝集成诞生更早中国团队受 LangChain 启发稍晚但是明显后来居上jdkv0.35.0 前的版本支持jdk8 后支持jdk17全版本jdk17功能没有mcp server, 官方建议使用quarkus-mcp-server早期落后langchain4j 现在功能全面并且生态活跃开源贡献者众多易用性尚可中文文档易用api优雅最终不需要spring选择无脑选三SpringAi快速使用-DeepSeek代码git地址3.1父工程-MyAi3.1.1pom?xml version1.0 encodingUTF-8? !-- Maven项目对象模型(POM)根元素 -- 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 !-- POM模型版本 -- modelVersion4.0.0/modelVersion !-- 父项目配置继承Spring Boot的默认配置 -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.5.3/version relativePath/ /parent !-- 项目组织标识符 -- groupIdcom.zgs/groupId !-- 项目名称 -- artifactIdMyAi/artifactId !-- 项目版本 -- version1.0-SNAPSHOT/version !-- 项目名称显示名 -- nameMyAi/name !-- 项目描述 -- descriptionMyAi/description !-- 打包方式pom表示这是一个聚合项目或父项目 -- packagingpom/packaging !-- 子模块配置 -- modules moduleai-quick-start/module /modules !-- 项目属性配置 -- properties !-- Java编译器源码版本 -- maven.compiler.source17/maven.compiler.source !-- Java编译器目标版本 -- maven.compiler.target17/maven.compiler.target !-- 项目构建编码格式 -- project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- Spring AI版本号 -- spring-ai.version1.0.0/spring-ai.version /properties !-- 项目依赖配置 -- dependencies !-- Spring Boot Web starter提供Web开发功能包含Tomcat、Spring MVC等 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Spring Boot Test starter提供测试功能JUnit、Mockito等 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies !-- 依赖管理统一管理依赖版本不直接引入依赖 -- dependencyManagement dependencies !-- Spring AI BOM统一管理的AI相关依赖版本 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement !-- 构建配置 -- build !-- 插件配置 -- plugins !-- Spring Boot Maven插件支持打包和运行Spring Boot应用 -- plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project3.2子工程-ai-quick-start3.2.1pom?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 parent groupIdcom.zgs/groupId artifactIdMyAi/artifactId version1.0-SNAPSHOT/version /parent artifactIdai-quick-start/artifactId version1.0-SNAPSHOT/version nameai-quick-start/name descriptionai-quick-start/description properties java.version17/java.version maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding spring-ai.version1.1.0/spring-ai.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies !--接入deepseek-- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-deepseek/artifactId /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project3.2.2application.ymlspring: application: name: ai-quick-start ai: deepseek: api-key: ${DEEPSEEK_API_KEY} chat: options: model: deepseek-v4-flash3.2.3DeepSeekTestartifactIdspring-ai-starter-model-deepseek/artifactId会为你增加自动配置类 其中DeepSeekChatModel这个就是专门负责智能对话的。package com.zgs.deepseek; import org.junit.jupiter.api.Test; import org.springframework.ai.chat.model.ChatResponse; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.deepseek.DeepSeekAssistantMessage; import org.springframework.ai.deepseek.DeepSeekChatModel; import org.springframework.ai.deepseek.DeepSeekChatOptions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import reactor.core.publisher.Flux; /** * description: deepseek测试 * author: zgs * date: 2026/6/17 10:36 */ SpringBootTest public class DeepSeekTest { /** * artifactIdspring-ai-starter-model-deepseek/artifactId * 会为你增加自动配置类 * 其中DeepSeekChatModel这个就是专门负责智能对话的。 * * author: zgs * date: 2026/6/17 11:22 */ Test public void testDeepSeek(Autowired DeepSeekChatModel chatModel) { String call chatModel.call(你好 你是谁); System.out.println(call); } /** * 流式演示 * * author: zgs * date: 2026/6/17 11:22 */ Test public void testDeepSeekStream(Autowired DeepSeekChatModel chatModel) { FluxString stream chatModel.stream(你好 你是谁); stream.toIterable().forEach(System.out::println); } /** * 其它参数演示 * * author: zgs * date: 2026/6/17 11:22 */ Test public void testDeepSeekParams(Autowired DeepSeekChatModel chatModel) { DeepSeekChatOptions build DeepSeekChatOptions.builder() .model(deepseek-v4-pro) .temperature(0.7) // .maxTokens(1024) .build(); Prompt prompt new Prompt(给我讲一个笑话请基于程序员思维讲一个笑话不要讲其他的, build); ChatResponse response chatModel.call(prompt); System.out.println(response.getResult().getOutput().getText()); } /** * 思考过程打印 * * author: zgs * date: 2026/6/17 11:22 */ Test public void testDeepSeekThink(Autowired DeepSeekChatModel chatModel) { DeepSeekChatOptions build DeepSeekChatOptions.builder() .model(deepseek-v4-pro) .temperature(0.7) .maxTokens(1024) .build(); Prompt prompt new Prompt(给我讲一个笑话请基于程序员思维讲一个笑话不要讲其他的, build); ChatResponse call chatModel.call(prompt); DeepSeekAssistantMessage assistantMessage (DeepSeekAssistantMessage) call.getResult().getOutput(); System.out.println(assistantMessage.getReasoningContent()); System.out.println(-----------------------------------------); System.out.println(assistantMessage.getText()); } }3.3参数讲解3.3.1temperatur0-2 浮点数值数值越高更有创造性 热情数值越低 保守也可以通过提示词降低他的主观臆想只引用可靠来源中的信息不做任何假设或扩展描述。请只基于已知事实回答不要主观臆想或添加额外内容。请简明、客观地给出答案不要进行修饰或补充未经请求的信息。建议temperature 范围建议业务场景输出风格说明/应用举例0.0 ~ 0.2严谨问答、代码补全、数学答题严格、确定、标准法律/金融答题、接口返回模板、考试答卷等0.3 ~ 0.6聊天机器人、日常摘要、辅助写作稍有变化、较稳妥公众号摘要、普通对话、邮件生成等0.7 ~ 1.0创作内容、广告文案、标题生成丰富、有创意、灵活诗歌、短文案、趣味对话、产品描述等1.1 ~ 1.5脑洞风格、头脑风暴、灵感碰撞场景大开脑洞、变化极强故事创作、异想天开的推荐语、多样化内容说明温度越低输出越收敛和中规中矩温度越高输出越多变、富有惊喜但有风险实战用法一般建议选0.5~0.8作为日常生产起点需要根据业务不断测试调整。3.3.2maxTokens默认低 tokenmaxTokens限制AI模型生成的最大token数近似理解为字数上限。需要简洁回复、打分、列表、短摘要等建议小值如10~50。防止用户跑长对话导致无关内容或花费过多token费用。如果遇到生成内容经常被截断可以适当配置更大maxTokens。3.3.3stop截断你不想输出的内容 比如spring: ai: deepseek: api-key: ${DEEP_SEEK_KEY} chat: options: model: deepseek-chat max-tokens: 20 stop: - \n #只想一行 - 。 #只想一句话 - 政治 #敏感词 - 最后最总结一下 #这种AI惯用的模板词 减少AI词汇 让文章更拟人3.4原理3.4.1入口ChatModel.call(String message)默认方法default String call(String message) { Prompt prompt new Prompt(new UserMessage(message)); Generation generation call(prompt).getResult(); return (generation ! null) ? generation.getOutput().getText() : ; }你调用的chatModel.call(你好)并非DeepSeekChatModel直接实现而是ChatModel接口提供的一个默认方法。这个方法充当了便捷入口的角色。它的核心作用是将字符串参数转换为框架内部的标准对象将你好封装成一个UserMessage对象。再将UserMessage封装进一个Prompt对象。Prompt是 Spring AI 的核心数据结构可以包含多个Message如系统消息、用户消息、AI消息等用于构建完整的对话上下文。完成封装后它会调用另一个重载方法call(Prompt)。3.4.2核心DeepSeekChatModel.internalCall()public ChatResponse internalCall(Prompt prompt, ChatResponse previousChatResponse) { // a ChatCompletionRequest request createRequest(prompt, false); //..省略 ResponseEntityChatCompletion completionEntity this.retryTemplate // b .execute(ctx - this.deepSeekApi.chatCompletionEntity(request)); var chatCompletion completionEntity.getBody(); //..省略 ChatResponse chatResponse new ChatResponse(generations, from(completionEntity.getBody(), accumulatedUsage)); observationContext.setResponse(chatResponse); return chatResponse; //.. 省略 return response; }框架会调用到DeepSeekChatModel类中对call(Prompt)方法的实现其核心逻辑在internalCall方法中。这是整个流程的枢纽主要完成三件事步骤a构建请求 (createRequest)此步骤是一个适配器模式的体现。它将统一的Prompt对象转换为 DeepSeek API 所能识别的ChatCompletionRequest对象。转换后的请求体通常包含model: 指定使用的模型名称。messages: 将Prompt中的Message列表转换为 API 要求的格式如{role: user, content: 你好}。参数: 如temperature、max_tokens等生成参数。步骤b发起远程调用 (retryTemplate.execute)DeepSeekChatModel内置了RetryTemplate用于安全可靠地发起 HTTP 请求。当网络抖动或服务端临时不可用时它会自动重试。真正执行 HTTP 请求的是DeepSeekApi类它封装了 DeepSeek 的 REST API。请求时会通过HTTP Header携带 API Key 进行认证。向https://api.deepseek.com/chat/completions等端点发送一个POST请求请求体是步骤a构建的 JSON。步骤c封装响应收到 DeepSeek API 返回的 HTTP 响应后一个包含模型输出等信息的 JSON 对象此步骤会解析 JSON并将数据重新封装成 Spring AI 的标准对象ChatResponse。ChatResponse中包含一个或多个Generation对象每个Generation都包含了模型的输出文本。3.4.3返回结果提取最后控制权回到最外层的ChatModel.call(String)默认方法。它会从返回的ChatResponse中提取第一个Generation的文本内容并将其作为String返回给你。至此一次完整的 AI 调用就结束了。3.4.4总结从源码角度看DeepSeekChatModel.call(你好)的执行路径清晰地展示了 Spring AI 的设计哲学统一抽象通过ChatModel接口和Prompt/ChatResponse等对象为开发者提供一致的编程模型。适配与转换在核心实现层 (internalCall) 完成从通用模型到特定厂商 API 的适配与数据转换。生产就绪内置了重试 (RetryTemplate)、可观测性 (ObservationContext)等企业级特性。四百炼代码git地址阿里自己的团队维护spring-ai-alibaba. 但是也必须依赖spring-ai 。 好处是扩展度更高坏处是必须是springai先出来 spring-ai-alibaba.延迟几天出来。如果需要接入阿里的百炼平台 就必须用该组件4.1SpringAI中接入百炼4.1.1申请api-key在调用前您需要开通模型服务并获取API Key再配置API Key到环境变量。获取APIKEY写入到环境变量4.1.2父工程-POM?xml version1.0 encodingUTF-8? !-- Maven项目对象模型(POM)根元素 -- 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 !-- POM模型版本 -- modelVersion4.0.0/modelVersion !-- 父项目配置继承Spring Boot的默认配置 -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.5.3/version relativePath/ /parent !-- 项目组织标识符 -- groupIdcom.zgs/groupId !-- 项目名称 -- artifactIdMyAi/artifactId !-- 项目版本 -- version1.0-SNAPSHOT/version !-- 项目名称显示名 -- nameMyAi/name !-- 项目描述 -- descriptionMyAi/description !-- 打包方式pom表示这是一个聚合项目或父项目 -- packagingpom/packaging !-- 子模块配置 -- modules moduleai-quick-start/module /modules !-- 项目属性配置 -- properties !-- Java编译器源码版本 -- maven.compiler.source17/maven.compiler.source !-- Java编译器目标版本 -- maven.compiler.target17/maven.compiler.target !-- 项目构建编码格式 -- project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- Spring AI版本号 -- spring-ai.version1.0.0/spring-ai.version !-- 阿里云AI BOM 版本号 -- spring-ai-alibaba.version1.0.0.2/spring-ai-alibaba.version /properties !-- 项目依赖配置 -- dependencies !-- Spring Boot Web starter提供Web开发功能包含Tomcat、Spring MVC等 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Spring Boot Test starter提供测试功能JUnit、Mockito等 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies !-- 依赖管理统一管理依赖版本不直接引入依赖 -- dependencyManagement dependencies !-- Spring AI BOM统一管理的AI相关依赖版本 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency !-- 阿里云AI BOM统一管理的阿里云AI相关依赖版本 -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-bom/artifactId version${spring-ai-alibaba.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement !-- 构建配置 -- build !-- 插件配置 -- plugins !-- Spring Boot Maven插件支持打包和运行Spring Boot应用 -- plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project4.1.3子工程-pom?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 parent groupIdcom.zgs/groupId artifactIdMyAi/artifactId version1.0-SNAPSHOT/version /parent artifactIdai-quick-start/artifactId version1.0-SNAPSHOT/version nameai-quick-start/name descriptionai-quick-start/description properties java.version17/java.version maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding spring-ai.version1.1.0/spring-ai.version /properties dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version${spring-ai.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies !--接入deepseek-- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-deepseek/artifactId /dependency !--接入dashscope-- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-starter-dashscope/artifactId /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project4.1.4配置YMLspring: application: name: ai-quick-start profiles: active: local ai: # deepseek deepseek: api-key: ${DEEPSEEK_API_KEY} chat: options: model: deepseek-v4-flash # 阿里qWen dashscope: api-key: ${ALI_API_KEY} # chat: # options: # model: qwen-plus4.1.5简单测试示例/** * description: qwen测试 * author: zgs * date: 2026/6/17 17:31 */ SpringBootTest public class QWenTest { Test public void testQWen(Autowired DashScopeChatModel chatModel) { DashScopeChatOptions options DashScopeChatOptions.builder() .withModel(qwen3.6-plus) .build(); Prompt prompt new Prompt(你好 你是谁, options); String message chatModel.call(prompt).getResult().getOutput().getText(); System.out.println(message); } }4.2文生图4.3文生语音text2audio4.4语音翻译audio2text4.5多模态4.6文生视频四Ollama