일기요약 기능은 일기가 최소 3개는 있어야 의미가 있다고 생각하여, 일기가 입력되지 않았을 때, 3개 미만의 일기가 불러와졌을 때를 예외사항으로 처리하였다.
기존 ChatGPTRequest의 형태는 프론트엔드에서 query를 통해 GET함수로 prompt를 입력받고, 해당 String 값을 Controller에서 ChatGPTRequest 메소드에 넣어 하나의 질문으로 사용하는 방식이었다.
하지만 우리는 여러(3~7)개의 일기를 받아 요약해야하고, 일기의 양은 가변적이기에 하나의 String이 아닌 List<String>을 통해 일기를 받아오고, 해당 List의 길이에 맞게 새롭게 prompt를 추가하는 방식으로 이를 ㄱ현하였다.
이 과정에서 GetMapping이 아닌, PostMapping으로 변경이 이루어졌고, 오히려 query에 개인적인 정보가 담기는 많은 양의 일기데이터가 들어가는 것을 방지할 수 있었고, body를 통해 대량의 데이터를 더욱 안전하게 전달할 수 있게 되었다.
"너는 일기를 주간 단위로 요약해주는 AI야. 사용자에게서 3~7개의 일기가 입력되면 그 일기를 종합해서 전반적으로 어떤 한주였는지 주요사건을 중심으로 최소 70글자 정도로 요약해줘."
AI 일기 한줄평 기능도 위와 동일한 과정으로 진행했다.
"너는 한줄평을 남기는 AI야. 사용자에게서 요약된 일기가 입력되면, 존댓말, 상냥한 말투로 30자 정도 대답해줘. 마지막엔 이모티콘 하나도 넣어줘"
AI 음악 기능도 구현했다. 마찬가지로 requestDto와 responseDto를 만들어 사용하였다.