目录
[1. 配置](#1. 配置)
[2 .搭建项目](#2 .搭建项目)
[3. 查看对应依赖](#3. 查看对应依赖)
[3.1 OpenAI 依赖](#3.1 OpenAI 依赖)
[3.2 配置 OpenAI API 密钥](#3.2 配置 OpenAI API 密钥)
[4. openai实战](#4. openai实战)
[5. 运行和测试](#5. 运行和测试)
[6. 高级配置](#6. 高级配置)
[7. 处理异常和错误](#7. 处理异常和错误)
1. 配置
-
Project:Maven
-
Language:Java
-
SpringBoot:3.4.3
-
Dependencies:
-
Spring Web
-
Spring Boot DevTools(可选,用于开发热部署)
-
2 .搭建项目
idea里面选择File->New-Project

选择SpringBoot 项目,Language选择java,type选择Maven
Jdk选择对应的版本最低使用17,packaging类型根据自身部署习惯选择jar或者war都可以

选择完成后会跳转如下界面,选择AI,OpenAI勾选即可。

至此项目搭建完成
3. 查看对应依赖
3.1 OpenAI 依赖
java
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
3.2 配置 OpenAI API 密钥
在 application.properties
或 application.yml
中配置 OpenAI 的 API 密钥。
application.properties
spring.ai.openai.api-key=your-openai-api-key
application.yml
spring:
ai:
openai:
api-key: your-openai-api-key
4. openai实战
创建一个服务类来封装与 OpenAI 的交互逻辑
java
public class ChatAiController {
private static final Logger log = LogManager.getLogger(ChatAiController.class);
private final ChatClient chatClient;
public ChatAiController(ChatClient.Builder build) {
this.chatClient = build.defaultSystem("测试")
.build();
}
@GetMapping("/chat")
public String chatAI(@RequestParam(value = "message") String message){
System.out.println(this.chatClient.prompt()
.user(message)
.call()
.content());
return this.chatClient.prompt()
.user(message)
.call()
.content();
}
}
5. 运行和测试
启动 Spring Boot 应用程序,并通过 API 端点测试 OpenAI 功能
请求示例:
GET /chat?message=Hello, how are you?
响应示例:
"I'm just a computer program, so I don't have feelings, but thanks for asking! How can I assist you today?"
6. 高级配置
Spring AI 提供了多种配置选项,可以根据需求调整 OpenAI 的行为。
示例:配置模型和参数

解释:
-
model
:指定使用的模型,如gpt-3.5-turbo
或gpt-4
。 -
temperature
:控制生成文本的随机性(0 到 1 之间,值越高越随机)。 -
max-tokens
:限制生成文本的最大长度。
7. 处理异常和错误
在实际应用中,处理 API 调用中的异常和错误是非常重要的。你可以使用 Spring 的异常处理机制来捕获和处理这些异常
示例:全局异常处理
java
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
return new ResponseEntity<>("An error occurred: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
8.监控和日志
为了确保 API 调用的稳定性和可维护性,建议添加监控和日志记录。
示例:添加日志
java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Service
public class OpenAiService {
private static final Logger logger = LoggerFactory.getLogger(OpenAiService.class);
private final ChatClient chatClient;
@Autowired
public OpenAiService(ChatClient chatClient) {
this.chatClient = chatClient;
}
public String generateChatResponse(String message) {
logger.info("Generating chat response for message: {}", message);
return chatClient.call(message);
}
}
9.性能优化
对于高并发的场景,可能需要考虑性能优化,如缓存、异步调用等。
示例:异步调用
java
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;
@Service
public class OpenAiService {
private final ChatClient chatClient;
@Autowired
public OpenAiService(ChatClient chatClient) {
this.chatClient = chatClient;
}
@Async
public CompletableFuture<String> generateChatResponseAsync(String message) {
return CompletableFuture.completedFuture(chatClient.call(message));
}
}
总结
通过以上步骤,你可以快速创建一个 Spring Boot 项目并集成 OpenAI 的功能。根据实际需求,你可以进一步扩展和优化这些功能,例如添加日志、异常处理、性能优化等