Spring Boot集成Spring AI实现快速接入openAI
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class OpenAiService {
private final RestTemplate restTemplate;
private final String openAiApiKey;
@Autowired
public OpenAiService(RestTemplate restTemplate, @Value("${openai.api-key}") String openAiApiKey) {
this.restTemplate = restTemplate;
this.openAiApiKey = openAiApiKey;
}
public String getCompletion(String prompt) {
String url = "https://api.openai.com/v1/engines/davinci-codex/completions";
CompletionRequest completionRequest = new CompletionRequest(prompt);
ResponseEntity<CompletionResponse> responseEntity = restTemplate.postForEntity(url, completionRequest, CompletionResponse.class, "Authorization: Bearer " + openAiApiKey);
if (responseEntity.getStatusCode().is2xxSuccessful()) {
return responseEntity.getBody().getChoices()[0].getText();
} else {
throw new RuntimeException("Error occurred while calling OpenAI API");
}
}
static class CompletionRequest {
private String prompt;
private String max_tokens;
private String n;
private String stop;
public CompletionRequest(String prompt) {
this.prompt = prompt;
this.max_tokens = "1000";
this.n = "1";
this.stop = null;
}
// getters and setters
}
static class CompletionResponse {
private Choice[] choices;
public Choice[] getChoices() {
return choices;
}
// getters and setters
}
static class Choice {
private String text;
public String getText() {
return text;
}
// getters and setters
}
}
这个代码示例展示了如何在Spring Boot应用程序中使用RestTemplate与OpenAI的API进行交互。首先,它定义了一个OpenAiService
服务类,该类使用RestTemplate
来发送POST请求到OpenAI的completions端点。它还展示了如何创建请求和响应对象来符合OpenAI API的要求。最后,它提供了一个getCompletion
方法,该方法接受一个提示并返回一个基于OpenAI模型的响应。
评论已关闭