image

Spring AI

介绍


SpringAI 是 Spring 生态体系下官方推出的 ​AI 能力集成框架,核心定位是为 Java 开发者提供低门槛、高兼容的企业级 AI 应用开发方案。它延续了 Spring “约定优于配置” 的设计哲学,将复杂的 AI 模型调用、服务集成、流程编排逻辑封装为标准化组件,让开发者无需深入理解 AI 底层技术,即可快速在 Spring Boot、Spring Cloud 等现有项目中集成大语言模型(LLM)、图像生成、语音识别等 AI 能力,大幅降低企业级 AI 应用的开发成本与技术门槛。

其核心特性可概括为三点:

  1. 多模型兼容:内置对 OpenAI、Google Gemini、百度文心一言等主流厂商模型的适配,支持本地化模型对接,统一接口可灵活切换模型;
  2. 生态深度融合:与 Spring 生态(如依赖注入、Spring Security、监控组件)无缝衔接,现有 Spring 项目可零侵入集成,开发者无需学习新框架思想;
  3. 企业级保障:提供 API 密钥加密存储、权限控制、调用监控等生产级特性,同时支持流程编排与异常重试,满足企业对安全性、稳定性的需求。

目前,SpringAI 已广泛应用于智能客服、文档智能处理、代码生成辅助、个性化营销等场景,成为 Java 技术栈企业落地 AI 能力的核心工具。

快速开始


image

tips:SpringAI至少需要SpringBoot 3.2,而SpringBoot3.2至少需要Java17

至少需要SpringBoot 3.2!!! 至少需要SpringBoot 3.2!!!至少需要SpringBoot 3.2!!!重要的事情说三遍!

引入依赖

maven项目

pom.xml 中编写:

    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
            <version>1.0.0-M5</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>1.0.0-M5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>


编写配置

application.yml

# 应用服务 WEB 访问端口
server:
  port: 8080
spring:
  ai:
    openai:
      api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxx # api key
      base-url: https://api.siliconflow.cn # api地址
      chat:
        options:
          model: deepseek-ai/DeepSeek-R1-Distill-Qwen-14B # 模型名称
          temperature: 0.7 # temperature参数用于控制生成文本的多样性
  • temperature参数用于控制生成文本的多样性。具体来说:
    ‌值越高‌,生成的文本越多样化,但也可能包含更多的随机性和不可预测的内容。‌值越低‌,生成的文本越接近于确定性的结果,即生成的文本会更加一致和可预测。

DemoController

@Slf4j
@RestController
@RequestMapping("/ai")
public class DemoController {

    @Resource
    private OpenAiChatModel chatModel;

    @GetMapping("/generate")
    public String generate(@RequestParam(value = "message", defaultValue = "hello") String message) {
        String response = chatModel.call(message);
        log.info("response: {}", response);
        return response;
    }

}

效果演示

PixPin_2025-09-29_21-51-04

欢迎关注我的公众号【zxb的博客】!

Logo

更多推荐