Spring AI - 使用Spring快速开发ChatGPT应用
在当今的人工智能热潮中,ChatGPT作为一种强大的对话生成模型,已经被广泛应用于多种场景。如果你想利用Spring框架快速开发一个集成ChatGPT的应用,本文将为你提供一个简单的示例,帮助你快速上手。
环境准备
在开始之前,你需要确保已经安装了以下工具和框架:
- Java JDK 11或更高版本
- Maven
- Spring Boot
- OpenAI的API密钥(在OpenAI的官网注册获取)
创建Spring Boot项目
首先,你可以通过Spring Initializr(https://start.spring.io/)创建一个新的Spring Boot项目。选择Maven项目,添加以下依赖:
- Spring Web
- Spring Boot DevTools
- Lombok(可选,用于减少样板代码)
创建完成后,将项目导入到你的IDE中。
编写代码
接下来,我们将创建一个简单的RESTful API来与ChatGPT进行交互。
1. 添加依赖
在pom.xml
中,添加如下依赖以支持HTTP请求和JSON处理:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
2. 创建ChatGPT服务
在项目中创建一个服务类ChatGPTService
,用于与OpenAI的API进行交互。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
@Service
public class ChatGPTService {
@Value("${openai.api.key}")
private String apiKey;
private final String apiUrl = "https://api.openai.com/v1/chat/completions";
private final RestTemplate restTemplate;
public ChatGPTService(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public String getResponse(String userInput) {
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + apiKey);
headers.set("Content-Type", "application/json");
String requestBody = String.format("{\"model\":\"gpt-3.5-turbo\",\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]}",
userInput);
HttpEntity<String> entity = new HttpEntity<>(requestBody, headers);
ResponseEntity<String> response = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
// 解析返回结果,提取ChatGPT的回复
// 这里需要使用JSON解析库来处理返回的JSON字符串
String responseBody = response.getBody();
// 你可以使用Jackson或Gson来解析JSON
// 此处省略具体解析逻辑
return responseBody; // 这里需要提取出具体的响应内容
}
}
3. 创建控制器
然后,我们创建一个控制器类ChatGPTController
,用于处理用户请求。
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/chat")
public class ChatGPTController {
private final ChatGPTService chatGPTService;
public ChatGPTController(ChatGPTService chatGPTService) {
this.chatGPTService = chatGPTService;
}
@PostMapping
public String chat(@RequestBody String userInput) {
return chatGPTService.getResponse(userInput);
}
}
4. 配置OpenAI API密钥
在application.properties
文件中添加你的OpenAI API密钥:
openai.api.key=YOUR_OPENAI_API_KEY_HERE
5. 启动应用
现在你可以运行Spring Boot应用,访问http://localhost:8080/chat
,使用POST请求发送你的用户输入。
例如,使用cURL命令可以像这样发送请求:
curl -X POST http://localhost:8080/chat -d "你好,ChatGPT!" -H "Content-Type: application/json"
总结
通过以上简单的步骤,你已经成功创建了一个使用Spring Boot与ChatGPT进行交互的应用。这是一个基础的示例,后续你可以进一步优化,例如添加异常处理、更复杂的对话管理、用户认证等功能。希望这篇文章能帮助你在Spring和ChatGPT的开发过程中迈出第一步!