Spring AI 对接 ChatGPT
将Spring应用程序与ChatGPT集成可以带来多种应用场景,比如构建智能客服、对话机器人或在现有应用中嵌入自然语言处理能力。以下是一个如何在Spring项目中对接ChatGPT的一般步骤:
前提条件
- OpenAI API 密钥:确保您具备可访问OpenAI GPT服务的API密钥。
- Spring Boot 应用:假定您已经搭建好一个基本的Spring Boot项目。
集成步骤
1. 添加依赖
首先,确保您的build.gradle
或pom.xml
中包含所需的依赖,比如用于发送HTTP请求的库,可以选择RestTemplate
或者WebClient
。
对于Maven项目,您可能需要添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2. 创建服务类
创建一个服务类,用于与OpenAI的API交互:
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 {
private final String API_URL = "https://api.openai.com/v1/chat/completions";
private final String API_KEY = "YOUR_OPENAI_API_KEY";
public String getChatGptResponse(String prompt) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + API_KEY);
headers.set("Content-Type", "application/json");
String requestJson = "{\"model\": \"gpt-3.5-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"" + prompt + "\"}]}";
HttpEntity<String> entity = new HttpEntity<>(requestJson, headers);
ResponseEntity<String> response = restTemplate.exchange(API_URL, HttpMethod.POST, entity, String.class);
// 根据返回结构解析API的响应内容
return response.getBody();
}
}
3. 创建控制器
创建一个Spring Boot控制器来处理请求,并使用ChatGptService
来获取ChatGPT的响应。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/chat")
public class ChatGptController {
@Autowired
private ChatGptService chatGptService;
@PostMapping
public String getResponse(@RequestBody String prompt) {
return chatGptService.getChatGptResponse(prompt);
}
}
4. 运行应用
启动您的Spring Boot应用程序,并通过POST请求访问/api/chat
端点,发送您希望ChatGPT处理的prompt内容。
注意事项
- 确保您的API密钥安全,不要将其硬编码到代码库中。您可以使用环境变量或Spring的配置文件来管理API密钥。
- OpenAI提供的API有使用限制,根据您的账户类型,确保在应用中适当处理响应和错误。
- 考虑处理API调用的异常情况,比如超时、无效请求等。
通过这些步骤,您可以在Spring应用程序中方便地使用ChatGPT,并利用其强大的自然语言处理能力来增强应用的交互性。