Skip to content

Commit

Permalink
Merge pull request #121 from TelePigeon/feat/120
Browse files Browse the repository at this point in the history
[feat] prompt 정보 추가
  • Loading branch information
minwoo0419 committed Aug 19, 2024
2 parents 99a0bf6 + e0c2542 commit 17ed7ce
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
20 changes: 17 additions & 3 deletions src/main/java/com/telepigeon/server/controller/TestController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
import com.telepigeon.server.domain.Token;
import com.telepigeon.server.dto.TestDto;
import com.telepigeon.server.dto.auth.response.JwtTokensDto;
import com.telepigeon.server.dto.naverCloud.ConfidenceDto;
import com.telepigeon.server.dto.naverCloud.request.ConfidenceCreateDto;
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.external.NaverCloudService;
import com.telepigeon.server.service.openAi.OpenAiService;
import com.telepigeon.server.utils.JwtUtil;
import lombok.RequiredArgsConstructor;
Expand All @@ -22,6 +25,7 @@ public class TestController {
private final JwtUtil jwtUtil;
private final TokenSaver tokenSaver;
private final OpenAiService openAiService;
private final NaverCloudService naverCloudService;

@GetMapping("/test")
public String test() {
Expand Down Expand Up @@ -55,11 +59,21 @@ public ResponseEntity<JwtTokensDto> generateToken(@PathVariable Long userId) {
return ResponseEntity.ok(tokens);
}

@GetMapping("test/open-ai")
@GetMapping("/test/open-ai")
public ResponseEntity<String> testOpenAi(
@RequestParam String relation,
@RequestParam String keyword
@RequestParam String keyword,
@RequestParam(required = false) String gender,
@RequestParam(required = false) String ageRange,
@RequestParam boolean easyMode
) {
return ResponseEntity.ok(openAiService.createQuestion(relation, keyword));
return ResponseEntity.ok(openAiService.createQuestion(relation, keyword, gender, ageRange, easyMode));
}

@GetMapping("/test/emotion")
public ResponseEntity<ConfidenceDto> testEmotion(
@RequestBody ConfidenceCreateDto text
) {
return ResponseEntity.ok(naverCloudService.getConfidence(text));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,12 @@ public class OpenAiService {

public String createQuestion(
final String relation,
final String keyword
final String keyword,
final String gender,
final String ageRange,
final boolean easyMode
) {
QuestionCreateDto questionCreateDto = QuestionCreateDto.of(model, createPrompt(relation, keyword));
QuestionCreateDto questionCreateDto = QuestionCreateDto.of(model, createPrompt(relation, keyword, gender, ageRange, easyMode));
RestClient restClient = RestClient.create();
OpenAiResponseDto response = restClient.post()
.uri(url)
Expand All @@ -53,7 +56,10 @@ public String createQuestion(

private List<MessageDto> createPrompt(
final String relation,
final String keyword
final String keyword,
final String gender,
final String ageRange,
final boolean easyMode
) {
List<MessageDto> messages = new ArrayList<>();
//프롬프팅은 같이 찾아보면서 해야 할 것 같음. 좀 오락가락하는 경향이 많음
Expand All @@ -65,7 +71,8 @@ private List<MessageDto> createPrompt(
assistantContent));
messages.add(MessageDto.of(
"user",
"역할은 " + relation + "이고, 주제는 " + keyword + "이야. 만들어 줘."));
"'역할' 은 '" + relation + "' 이고, '주제' 는 '" + keyword + "' 이야. '연령대' 는 '" + ageRange + "' 이고, '성별' 은 '" + gender +
"'이고, 마지막으로 '쉬운 사용 모드' 는 '" + easyMode + "' 이야. 만들어 줘."));
return messages;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,14 @@ public Question create(final Profile profile){
}
String relation = receiver.getRelation() == null ? "지인" : receiver.getRelation().getContent();
String keyword = getRandomKeyword(profile);
String gender = receiver.getGender() == null ? "-" : receiver.getGender().getContent();
String ageRange = receiver.getAgeRange() == null ? "-" : receiver.getAgeRange().getContent();
String content = openAiService.createQuestion(
relation,
keyword
keyword,
gender,
ageRange,
receiver.isEasyMode()
);
Question question = questionSaver.create(Question.create(
keyword,
Expand Down

0 comments on commit 17ed7ce

Please sign in to comment.