From 9d031059f3f4c875ce5e8ae8721a9b65838a1e85 Mon Sep 17 00:00:00 2001 From: yeoEun Date: Sun, 23 Feb 2025 02:06:40 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EC=9D=91=EB=8B=B5=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=EC=88=98=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/buildOutputCleanup/outputFiles.bin | Bin 18893 -> 19379 bytes .../giftidea/controller/GptController.java | 18 +++++++++--------- .../com/team4/giftidea/dto/GptRequestDTO.java | 9 ++++++++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 8744ab6e7c86ff5fc73faec7a5d36535b5ab2a05..4ea7a140279fc5e2272a70fd6b365e0eabb91f89 100644 GIT binary patch delta 717 zcmX>*nQ`-U#tkMCk%k@Ice3tzr@AtLfmh>yDCl0Z^V_=nQOOW-&*?Dno^ojxjop=5 zQ1SaP@!pj$?(fZhxC?4d{$y7Ph5ES_@7I3Xk~a||=v@m_yyTdg`@*?#PoRopVd9(T z-V+oqY5f3I?+z2+))C$`@g&21sCsXh_;%;@J-z$ByFt~P!o>IdU+a~~Y?H|jmFR~_ z?7On>PbhS2w?vOg;rQ zUvP4)#0-Z|hpQj_7TD|#ReT$!_}7K6>B*bUSwIy>!o<0y9to{onNtc?|90|Q2@4HL zo*8p*e`;9)6|{sYmdf+Jw^N)u1S&pxvaFMy z&yO$%q)c9VQRVXHD5&CvaPc|plec!6sX@fOL}B7t0pYW@JEp_LPforo86Z$}nq&RG xFW=>%ivLemmC|BjS-Da1hxkT=0^!Y$9zBec_j~Y8{@@`*07p$u@R$I^@c>sXO+x?x delta 71 zcmdlyo$>5s#tkMCjAE00B_t+K1>(7q6DF5R8BD$k#In*7lYONPCQk*@M}c&xjK}1y XGD=KLiW?Pwh;KCbA-dVoqlXaycD5Lx diff --git a/src/main/java/com/team4/giftidea/controller/GptController.java b/src/main/java/com/team4/giftidea/controller/GptController.java index b1a3728..fa3ba64 100644 --- a/src/main/java/com/team4/giftidea/controller/GptController.java +++ b/src/main/java/com/team4/giftidea/controller/GptController.java @@ -221,7 +221,7 @@ private String generatePrompt(List processedMessages, String relation, S } private String generateText(String prompt) { - GptRequestDTO request = new GptRequestDTO(gptConfig.getModel(), prompt); + GptRequestDTO request = new GptRequestDTO(gptConfig.getModel(), prompt, 110); try { ObjectMapper mapper = new ObjectMapper(); GptResponseDTO response = restTemplate.postForObject(gptConfig.getApiUrl(), request, GptResponseDTO.class); @@ -268,7 +268,7 @@ private String generateText(String prompt) { private String extractKeywordsAndReasonsCoupleMan(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 남자 애인이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 남자 애인이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 남성 지갑, 남성 스니커즈, 백팩, 토트백, 크로스백, 벨트, 선글라스, 향수, 헬스가방, 무선이어폰, 스마트워치, 맨투맨, 마우스, 키보드, 전기면도기, 게임기 텍스트: %s @@ -285,7 +285,7 @@ private String extractKeywordsAndReasonsCoupleMan(String theme, String message) private String extractKeywordsAndReasonsCoupleWoman(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 여자 애인이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 여자 애인이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 여성 지갑, 여성 스니커즈, 숄더백, 토트백, 크로스백, 향수, 목걸이, 무선이어폰, 스마트워치, 에어랩 텍스트: %s @@ -302,7 +302,7 @@ private String extractKeywordsAndReasonsCoupleWoman(String theme, String message private String extractKeywordsAndReasonsDad(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 부모님이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 부모님이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 현금 박스, 안마기기, 아버지 신발, 시계 텍스트: %s @@ -319,7 +319,7 @@ private String extractKeywordsAndReasonsDad(String theme, String message) { private String extractKeywordsAndReasonsMom(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 부모님이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 부모님이 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 현금 박스, 안마기기, 어머니 신발, 건강식품, 스카프 텍스트: %s @@ -336,7 +336,7 @@ private String extractKeywordsAndReasonsMom(String theme, String message) { private String extractKeywordsAndReasonsFriend(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 친구가 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 친구가 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 제시된 카테고리에 없는 추천 선물이 있다면 3개에 포함해주세요. 카테고리: 핸드크림, 텀블러, 립밤, 머플러, 비타민, 입욕제, 블루투스 스피커 @@ -354,7 +354,7 @@ private String extractKeywordsAndReasonsFriend(String theme, String message) { private String extractKeywordsAndReasonsHousewarming(String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 집들이에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 집들이에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 조명, 핸드워시, 식기, 디퓨저, 오설록 티세트, 휴지, 파자마세트, 무드등, 디퓨저, 수건, 전기포트, 에어프라이기 텍스트: %s @@ -371,7 +371,7 @@ private String extractKeywordsAndReasonsHousewarming(String message) { private String extractKeywordsAndReasonsSeasonalMan(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 초콜릿, 수제 초콜릿 키트, 파자마세트, 남자 화장품 텍스트: %s @@ -388,7 +388,7 @@ private String extractKeywordsAndReasonsSeasonalMan(String theme, String message private String extractKeywordsAndReasonsSeasonalWoman(String theme, String message) { String prompt = String.format(""" - 다음 텍스트를 참고하여 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 제공해주세요. + 다음 텍스트를 참고하여 %s에 선물로 받으면 좋아할 카테고리 3개와 판단에 참고한 대화를 100토큰 내로 제공해주세요. 카테고리: 초콜릿, 수제 초콜릿 키트, 립밤, 파자마세트, 립스틱 텍스트: %s diff --git a/src/main/java/com/team4/giftidea/dto/GptRequestDTO.java b/src/main/java/com/team4/giftidea/dto/GptRequestDTO.java index 2be77b7..20cf324 100644 --- a/src/main/java/com/team4/giftidea/dto/GptRequestDTO.java +++ b/src/main/java/com/team4/giftidea/dto/GptRequestDTO.java @@ -21,15 +21,22 @@ public class GptRequestDTO { */ private List messages; + /** + * 최대 토큰 수 제한 (응답 길이 제한) + */ + private int max_tokens; // 🔥 추가된 필드 + /** * 생성자 - 주어진 모델과 프롬프트를 기반으로 GPT 요청을 생성합니다. * * @param model 사용할 GPT 모델 * @param prompt 사용자 입력 프롬프트 + * @param max_tokens 최대 토큰 제한 */ - public GptRequestDTO(String model, String prompt) { + public GptRequestDTO(String model, String prompt, int max_tokens) { this.model = model; this.messages = new ArrayList<>(); this.messages.add(new MessageDTO("user", prompt)); + this.max_tokens = max_tokens; } } \ No newline at end of file