완성했습니다.
일단 api key는 https://platform.openai.com/account/api-keys
받으시면 되고요 .
영상 :
코드 :
@RestController
public class ChatGptController {
@Autowired
private ChatGptService chatGptService;
@PostMapping("/api/ChatGptApi")
public ResponseEntity<String> ChatGptsPost(@RequestBody ChatGpt chatGpt, HttpServletRequest request) {
String CHATGPT_API_KEY = "";
HttpSession session = request.getSession(false);
String answer="연결을 실패하였습니다.";
if (session == null || session.getAttribute("user") == null) {
// 세션에 사용자 정보가 없으면 로그인 페이지로 리다이렉트
return ResponseEntity.ok(answer);
}
try{
CHATGPT_API_KEY=chatGpt.getApikey();
answer=chatGptService.getChatResponse(chatGpt.getInput(),CHATGPT_API_KEY);
}catch (Exception e){
System.out.println("error");
return ResponseEntity.ok(answer);
}
return ResponseEntity.ok(answer);
}
}
@Service
public class ChatGptService {
private RestTemplate restTemplate;
private final String chatGptApiUrl = "https://api.openai.com/v1/chat/completions";
public ChatGptService() {
this.restTemplate = new RestTemplate();
}
public String getChatResponse(String userInput,String apiKey ) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setBearerAuth(apiKey);
String requestBody = "{\"model\":\"gpt-3.5-turbo\",\"messages\":[{\"role\":\"system\",\"content\":\"" + userInput + "\"}]}";
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);
// ChatGPT API 호출
ResponseEntity<String> responseEntity=null;
try{
responseEntity = restTemplate.exchange(chatGptApiUrl, HttpMethod.POST, requestEntity, String.class);
}catch (Exception e){
e.printStackTrace();
}
// ChatGPT API 응답 처리
String chatResponse = responseEntity.getBody();
return chatResponse;
}
}
'웹 > Spring vue 웹 개발' 카테고리의 다른 글
spring vue 장바구니 06 (0) | 2023.06.13 |
---|---|
spring vue 장바구니 05 (0) | 2023.06.12 |
spring vue chat gpt api 이용해서 간단한 챗 만들어보기01 (0) | 2023.06.10 |
spring vue 장바구니 04 (0) | 2023.06.10 |
spring vue 장바구니 03 (0) | 2023.06.08 |