Spring AI 的設計理念非常簡單:
讓 AI 模型的使用方式,和你在 Spring 裡使用
JdbcTemplate或RestTemplate一樣自然。
Spring AI 透過幾個關鍵元件,讓開發者能用最少的程式碼就能呼叫 LLM 模型:
| 元件 | 功能 | 範例用途 | 
|---|---|---|
ChatClient | 
與 LLM 對話的主要入口 | 發送 prompt、接收回答 | 
PromptTemplate | 
模板化輸入字串 | 用於組合系統提示與使用者輸入 | 
可以透過 Spring Initializr 建立新專案:
spring-boot-starter-web
spring-ai-openai
產生後的目錄結構如下:
spring-ai-demo/
├─ src/
│  ├─ main/java/com/example/demo/
│  │  ├─ DemoApplication.java
│  │  └─ ChatController.java
│  └─ resources/
│     └─ application.yml
└─ pom.xml
在 application.yml 加入設定:
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
Spring AI 的核心是 ChatClient。
我們先來建立一個簡單的 REST API,讓前端可以丟訊息給模型回覆。
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.ai.openai.api.OpenAiApi;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api")
public class ChatController {
    // 由 Spring Boot 自動注入 ChatClient(Spring AI 提供)
    @PostMapping("/chat")
    public String chat(@RequestParam String message) {
        OpenAiApi openAiApi = OpenAiApi.builder()
                .apiKey("api-key")
                .build();
        OpenAiChatModel chatModel = OpenAiChatModel.builder()
                .openAiApi(openAiApi)
                .build();
        ChatResponse response = chatModel.call(
                new Prompt(
                        message,
                        OpenAiChatOptions.builder()
                                .model("gpt-4o")
                                .temperature(0.4)
                                .build()
                ));
        return response.getResult().getOutput().getText();
    }
}
執行應用程式後,呼叫:
http://localhost:8080/api/chat?message=跟我說個笑話
就能得到 AI 模型的回覆
| 主題 | 重點 | 
|---|---|
| Spring AI 主要組件 | OpenAiChatOptions、OpenAiChatModel | 
| 優勢 | 不需額外框架,與企業現有系統無縫整合 | 
在下一篇中,我們將讓你的 Spring AI 應用支援雲端模型與本地模型共存,
並學會如何在程式中動態切換不同 Provider。