diff --git a/src/main/java/com/project/oof/gpt/controller/ChatGPTController.java b/src/main/java/com/project/oof/gpt/controller/ChatGPTController.java index add9f7c..4837d73 100644 --- a/src/main/java/com/project/oof/gpt/controller/ChatGPTController.java +++ b/src/main/java/com/project/oof/gpt/controller/ChatGPTController.java @@ -21,9 +21,15 @@ public class ChatGPTController { private final ChatGPTService chatGPTService; - @PostMapping("/prompt") + @PostMapping("/translate") public ResponseEntity selectPrompt(@RequestBody String message) { - String result = chatGPTService.prompt(message); + String result = chatGPTService.translateMessage(message); + return new ResponseEntity<>(result, HttpStatus.OK); + } + + @PostMapping("/refresh") + public ResponseEntity refresh() { + String result = chatGPTService.refreshResult(); return new ResponseEntity<>(result, HttpStatus.OK); } diff --git a/src/main/java/com/project/oof/gpt/service/ChatGPTService.java b/src/main/java/com/project/oof/gpt/service/ChatGPTService.java index f6c3c48..ddeb33f 100644 --- a/src/main/java/com/project/oof/gpt/service/ChatGPTService.java +++ b/src/main/java/com/project/oof/gpt/service/ChatGPTService.java @@ -6,5 +6,7 @@ @Service public interface ChatGPTService { - String prompt(String userMessage); + String translateMessage(String userMessage); + + String refreshResult(); } diff --git a/src/main/java/com/project/oof/gpt/service/ChatGPTServiceImpl.java b/src/main/java/com/project/oof/gpt/service/ChatGPTServiceImpl.java index de2365e..6146e8f 100644 --- a/src/main/java/com/project/oof/gpt/service/ChatGPTServiceImpl.java +++ b/src/main/java/com/project/oof/gpt/service/ChatGPTServiceImpl.java @@ -27,33 +27,44 @@ public class ChatGPTServiceImpl implements ChatGPTService { @Override - public String prompt(String userMessage) { - String processedMessage; + public String translateMessage(String userMessage) { + chatHistoryService.clearChatHistory(); + + String processedMessage = "'" + userMessage + "' 를 번역해줘"; +// if (!chatHistoryService.getChatHistory().isEmpty()) { +// throw new RuntimeException(""); +// } + + chatHistoryService.addMessage("user", processedMessage); + + return getAnswer(); + } + + @Override + public String refreshResult() { if (chatHistoryService.getChatHistory().isEmpty()) { - processedMessage = "'" + userMessage + "' 를 번역해줘"; - } else { - processedMessage = "좀만 다르게 번역해줘"; + throw new RuntimeException("입력된 데이터가 없습니다"); } - chatHistoryService.addMessage("user", processedMessage); + chatHistoryService.addMessage("user", "좀만 다르게 번역해줘"); + + return getAnswer(); + } + private String getAnswer() { List> messages = chatHistoryService.getChatHistory(); Map requestBody = Map.of( "model", "gpt-3.5-turbo", "messages", messages ); - // [STEP1] 토큰 정보가 포함된 Header를 가져옵니다. HttpHeaders headers = chatGPTConfig.httpHeaders(); - - // [STEP5] 통신을 위한 RestTemplate을 구성합니다. HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); ResponseEntity response = chatGPTConfig .restTemplate() .exchange(promptUrl, HttpMethod.POST, requestEntity, Map.class); - // OpenAI API의 응답을 처리 try { Map responseBody = response.getBody(); String assistantMessage = ((List>) responseBody.get("choices")) @@ -69,5 +80,4 @@ public String prompt(String userMessage) { return "An error occurred while processing the response."; } } - -} +} \ No newline at end of file