Spring AI对接ChatGPT使用详解
随着人工智能的发展,越来越多的开发者开始将AI技术整合到他们的应用程序中。OpenAI的ChatGPT凭借其强大的对话生成能力,成为了许多应用的首选。本文将介绍如何在Spring框架中对接ChatGPT,并给出相应的代码示例。
一、环境准备
首先,确保你已经在系统中安装了Java和Maven。同时,需要在OpenAI注册一个账号,并获得API密钥。
二、创建Spring Boot项目
可以使用Spring Initializr来快速生成一个新的Spring Boot项目。选择所需的依赖,例如Spring Web
和Spring Boot DevTools
。
三、添加依赖
在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>
四、创建ChatGPT服务类
接下来,我们需要创建一个服务类来与ChatGPT API进行交互。这个类将负责发送请求并处理响应。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.*;
import java.util.HashMap;
import java.util.Map;
@Service
public class ChatGPTService {
@Value("${openai.api.key}")
private String apiKey;
private final RestTemplate restTemplate;
public ChatGPTService(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public String chatWithGPT(String userInput) {
String apiUrl = "https://api.openai.com/v1/chat/completions";
// 创建请求体
Map<String, Object> requestBody = new HashMap<>();
requestBody.put("model", "gpt-3.5-turbo");
requestBody.put("messages", new Object[]{
new HashMap<String, String>() {{
put("role", "user");
put("content", userInput);
}}
});
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "Bearer " + apiKey);
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestBody, headers);
ResponseEntity<Map> response = restTemplate.postForEntity(apiUrl, entity, Map.class);
Map<String, Object> responseBody = response.getBody();
if(responseBody != null && responseBody.get("choices") != null) {
return ((Map) ((List) responseBody.get("choices")).get(0)).get("message").get("content").toString();
}
return "无响应";
}
}
五、创建控制器
然后,创建一个控制器类来处理用户的请求并返回ChatGPT的回答。
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/chat")
public class ChatController {
private final ChatGPTService chatGPTService;
public ChatController(ChatGPTService chatGPTService) {
this.chatGPTService = chatGPTService;
}
@PostMapping
public String chat(@RequestBody String userInput) {
return chatGPTService.chatWithGPT(userInput);
}
}
六、配置API密钥
在application.properties
中添加以下内容,替换为你自己的API密钥:
openai.api.key=your_openai_api_key
七、启动应用
完成以上步骤后,你可以运行Spring Boot应用。启动后,你可以使用Postman或其他工具向http://localhost:8080/chat
发送POST请求,请求体中包含用户输入的文本。例如:
"你好吗?"
八、总结
通过以上步骤,你可以将ChatGPT整合到Spring Boot应用中,从而为用户提供智能对话功能。你可以根据实际需要对代码进行扩展和优化,例如处理异常、优化请求等。希望这篇文章能帮助你快速上手ChatGPT的集成开发。