上篇文章我们聊了 Spring AI 的核心概念,今天咱们不动嘴皮子,直接动手,搭建一个 Spring AI 的开发环境。
准备工作
在开始之前,你需要准备好:
- JDK 17 或更高版本(Spring AI 基于 Spring Boot 3,对 Java 版本有要求)。
- OpenAI API Key(或者是 Azure, Ollama 等其他支持的模型,为了演示方便,我们以 OpenAI 为例)。如果你没有 Key,可以使用 Ollama 在本地跑一个免费的模型。
第一步:创建项目
最简单的方法当然是去 Spring Initializr。
现在的 Spring Initializr 已经贴心地加入了 AI 支持。
- Project: Maven 或 Gradle。
- Language: Java。
- Spring Boot: 选择 3.4.x 或更高。
- Dependencies: 搜索并添加
OpenAI(属于 AI Models 类别)。
点击 Generate,下载解压,用 IDEA 打开。
第二步:配置依赖 (Maven/Gradle)
如果你是手动创建项目,或者想理解发生了什么,我们需要关注 BOM (Bill of Materials)。Spring AI 更新很快,使用 BOM 可以保证所有组件版本一致。
Maven 配置
在 pom.xml 中加入 dependencyManagement:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0</version> <!-- 请检查官网使用最新版本 -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后添加 OpenAI 的 Starter:
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-openai</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Gradle 配置
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0")
implementation 'org.springframework.ai:spring-ai-starter-openai'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
注意:Spring AI 的早期版本(Snapshot 或 Milestone)并不在 Maven 中央仓库。如果你用的是预览版,记得在构建文件中添加 Spring 的 Snapshot 仓库。不过现在的 1.0.0 正式版已经可以直接从 Maven Central 获取了。
第三步:配置文件
打开 src/main/resources/application.properties (或 .yml)。
Spring AI 的自动配置非常智能,你只需要填入 API Key。
spring:
application:
name: spring-ai-demo
ai:
openai:
api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 换成你的 Key
chat:
options:
model: gpt-3.5-turbo # 或者 gpt-4
小贴士:千万不要把 API Key 直接提交到 GitHub!建议使用环境变量:
spring.ai.openai.api-key=${OPENAI_API_KEY}
第四步:Hello AI World
现在我们写一个简单的 Controller 来测试一下。
@RestController
public class ChatController {
private final ChatClient chatClient;
// Spring AI 自动注入了 ChatClient.Builder
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ai/chat")
public String chat(@RequestParam(value = "message", defaultValue = "讲个笑话") String message) {
return chatClient.prompt()
.user(message)
.call()
.content();
}
}
启动项目,访问 http://localhost:8080/ai/chat?message=你好。
如果一切顺利,你应该能看到 AI 的回复了!
总结
看,使用 Spring AI 并没有那么复杂。Spring Boot 的魔法帮我们屏蔽了底层的 HTTP 调用和 JSON 解析。
- 引入 BOM。
- 引入 Starter。
- 配置 Key。
- 注入
ChatClient。
搞定!
下篇我们详细讲讲 ChatClient 的高级用法,比如流式输出(Streaming)和多模态。