From 68997dab3f384df344891821e29c204b48917ef0 Mon Sep 17 00:00:00 2001 From: minwoo0419 Date: Fri, 7 Jun 2024 21:20:53 +0900 Subject: [PATCH] =?UTF-8?q?[refac]=20#100=20prompt=20content=20yml?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/TestController.java | 15 +++++++++++---- .../server/service/openAi/OpenAiService.java | 18 +++++++----------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/telepigeon/server/controller/TestController.java b/src/main/java/com/telepigeon/server/controller/TestController.java index 1a1263d..9557f71 100644 --- a/src/main/java/com/telepigeon/server/controller/TestController.java +++ b/src/main/java/com/telepigeon/server/controller/TestController.java @@ -6,13 +6,11 @@ import com.telepigeon.server.exception.code.BusinessErrorCode; import com.telepigeon.server.exception.BusinessException; import com.telepigeon.server.service.auth.TokenSaver; +import com.telepigeon.server.service.openAi.OpenAiService; import com.telepigeon.server.utils.JwtUtil; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.net.URI; @@ -23,6 +21,7 @@ public class TestController { private final JwtUtil jwtUtil; private final TokenSaver tokenSaver; + private final OpenAiService openAiService; @GetMapping("/test") public String test() { @@ -55,4 +54,12 @@ public ResponseEntity generateToken(@PathVariable Long userId) { tokenSaver.save(Token.create(userId, tokens.refreshToken())); return ResponseEntity.ok(tokens); } + + @GetMapping("test/open-ai") + public ResponseEntity testOpenAi( + @RequestParam String relation, + @RequestParam String keyword + ) { + return ResponseEntity.ok(openAiService.createQuestion(relation, keyword)); + } } diff --git a/src/main/java/com/telepigeon/server/service/openAi/OpenAiService.java b/src/main/java/com/telepigeon/server/service/openAi/OpenAiService.java index 3a979ac..2772a6b 100644 --- a/src/main/java/com/telepigeon/server/service/openAi/OpenAiService.java +++ b/src/main/java/com/telepigeon/server/service/openAi/OpenAiService.java @@ -23,6 +23,11 @@ public class OpenAiService { private String apiKey; @Value("${openai.api.url}") private String url; + @Value("${openai.role-content") + private String roleContent; + @Value("${openai.assistant-content}") + private String assistantContent; + public String createQuestion( final String relation, @@ -54,19 +59,10 @@ private List createPrompt( //프롬프팅은 같이 찾아보면서 해야 할 것 같음. 좀 오락가락하는 경향이 많음 messages.add(MessageDto.of( "system", - """ - 너는 훌륭한 질문 생성기야. - 내가 너에게 역할과 주제를 알려주면 너는 역할의 입장에서 주제에 대해 물어 보고 싶은 질문을 생성해 주는 거지. - 그럼 지금 부터 시작해 볼까? 질문이 잘 생성 되면 너에게 1000만 달러 팁을 줄게. - """)); + roleContent)); messages.add(MessageDto.of( "assistant", - """ - 역할은 나와의 관계를 나타 내는 말이야.예를 들어, '친구', '가족', '연인' 등이 있어. - 그리고 주제는 질문의 주제를 나타 내는 말이야.'건강', '음식', '취미' 등이 있어. - 예를 들어, 역할이 '엄마' 이고 주제가 '건강' 이라면, 너는 '요즘 건강은 어때?', '건강을 지키기 위해 어떤 노력을 하고 있니?' 와 같은 질문을 만들어 주면 돼. - 단, 질문은 하나만 만들고 '따뜻한 어조' 와 함께 '반말 체' 로 만들어 줘. 다른 말은 하지 말고 질문만 만들어 주면 돼. - """)); + assistantContent)); messages.add(MessageDto.of( "user", "역할은 " + relation + "이고, 주제는 " + keyword + "이야. 만들어 줘."));