🌱 什么是 Spring AI?

Spring AI 是 Spring 官方推出的一个实验性项目,旨在为 Java/Spring 开发者提供统一、简洁的 API,用于集成各类大语言模型(LLM)服务(如 OpenAI、Azure OpenAI、Google Vertex AI、Hugging Face、Ollama 等)。


🛠️ 第一步:创建项目

1. 使用 Spring Initializr

访问 https://start.spring.io,配置如下:

  • Project: Maven 或 Gradle
  • Language: Java
  • Spring Boot: 3.4.x 或更高
  • Dependencies:
    • Spring Web
    • (可选)Spring Configuration Processor

点击 Generate 下载项目并解压。


📦 第二步:添加 Spring AI 依赖

Maven(pom.xml

<properties>
    <spring-ai.version>1.0.3</spring-ai.version>
</properties>

<dependencies>
    <!-- Spring AI 核心 -->
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-core</artifactId>
        <version>${spring-ai.version}</version>
    </dependency>

    <!-- 以 OpenAI 为例 -->
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
        <version>${spring-ai.version}</version>
    </dependency>
</dependencies>

💡 如果你使用 Ollama(本地模型),请替换为:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
    <version>${spring-ai.version}</version>
</dependency>

🔑 第三步:配置 API 密钥

使用 OpenAI(推荐先试这个)

  1. OpenAI 平台 申请 API Key。
  2. 在项目根目录创建 application.yml
# src/main/resources/application.yml
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      model: gpt-3.5-turbo  # 可选,默认就是这个
  1. 设置环境变量(不要写在代码里!):
# Linux / macOS
export OPENAI_API_KEY='your-api-key-here'

# Windows (PowerShell)
$env:OPENAI_API_KEY = "your-api-key-here"

💬 第四步:编写第一个 AI 接口

创建控制器 AiController.java

// src/main/java/com/example/demo/AiController.java
package com.example.demo;

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 AiController {

    private final ChatClient chatClient;

    // Spring Boot 会自动注入 ChatClient.Builder
    public AiController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

    @GetMapping("/ai")
    public String ask(@RequestParam(defaultValue = "你好") String message) {
        return chatClient
                .prompt()
                .user(message)
                .call()
                .content();
    }
}

▶️ 第五步:运行并测试

  1. 启动应用:

    ./mvnw spring-boot:run
    
  2. 访问接口:

    http://localhost:8080/ai?message=李白是谁?
    
  3. 你会看到类似这样的响应:

    李白(701年-762年),字太白,号青莲居士,唐代伟大的浪漫主义诗人,被后人誉为“诗仙”……

✅ 恭喜!你已经成功调用 AI 了!


🌟 进阶小技巧

1. 添加系统指令(System Prompt)

@GetMapping("/poem")
public String poem(@RequestParam String topic) {
    return chatClient
            .prompt()
            .system("你是一个诗人,请用中文写一首关于 {topic} 的七言绝句。")
            .user("主题是:{topic}")
            .call()
            .content();
}

2. 流式响应(SSE)

@GetMapping(value = "/stream", produces = "text/event-stream")
public Flux<String> stream(@RequestParam String message) {
    return chatClient
            .prompt()
            .user(message)
            .stream()
            .map(response -> response.content() + "\n");
}

📚 学习资源

  • 官方文档
  • GitHub 仓库
  • 支持的模型提供商:OpenAI、Azure OpenAI、Ollama、Hugging Face、Google Vertex AI、Amazon Bedrock 等。

✅ 总结

步骤 内容
1️⃣ 创建 Spring Boot 项目
2️⃣ 添加 Spring AI + 模型提供商依赖
3️⃣ 配置 API Key(通过环境变量)
4️⃣ 注入 ChatClient 并调用 .prompt().user(...).call()
5️⃣ 启动测试!

🙌 感谢你读到这里!
🔍 技术之路没有捷径,但每一次阅读、思考和实践,都在悄悄拉近你与目标的距离。
💡 如果本文对你有帮助,不妨 👍 点赞、📌 收藏、📤 分享 给更多需要的朋友!
💬 欢迎在评论区留下你的想法、疑问或建议,我会一一回复,我们一起交流、共同成长 🌿
🔔 关注我,不错过下一篇干货!我们下期再见!✨

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐