11package com .mbtips .domain .addition .service ;
22
33import com .mbtips .clova .dto .Message ;
4+ import com .mbtips .common .mbtiinfo .MbtiTraits ;
5+ import com .mbtips .common .mbtiinfo .MbtiType ;
46import com .mbtips .domain .conversation .service .ConversationService ;
57import com .mbtips .domain .converstation .Conversation ;
68import com .mbtips .domain .message .dto .response .GetMessageResponseDto ;
9+ import com .mbtips .domain .virtualfriend .VirtualFriend ;
10+ import com .mbtips .domain .virtualfriend .VirtualFriendService ;
11+ import com .mbtips .domain .virtualfriend .response .VirtualFriendInfoResponse ;
712import com .mbtips .message .application .manager .MessageManager ;
813import com .mbtips .message .application .service .MessageService ;
914import lombok .RequiredArgsConstructor ;
15+ import lombok .extern .slf4j .Slf4j ;
1016import org .springframework .stereotype .Service ;
1117
1218import java .util .ArrayList ;
1319import java .util .List ;
1420
1521@ Service
1622@ RequiredArgsConstructor
23+ @ Slf4j
1724public class AdditionService {
1825
1926 public final MessageManager messageManager ;
2027 public final ConversationService conversationService ;
2128 public final MessageService messageService ;
29+ public final VirtualFriendService virtualFriendService ;
2230 public String requestConversationTips (Long virtualFriendId ) {
23- String requestPrompt = "대화 주제 추천해줘" ;
31+ VirtualFriendInfoResponse virtualFriend = virtualFriendService .findFriendInfoById (virtualFriendId );
32+
33+ String mbtiTrait = MbtiTraits .getTrait (MbtiType .valueOf (virtualFriend .mbti ()));
34+ mbtiTrait = mbtiTrait .substring (mbtiTrait .indexOf ("특징을 설명해주면 다음과 같아" ));
35+ String requestPrompt = mbtiTrait + ", 이 mbti와 대화할 때, 꿀팁 알려줘" ;
36+ log .debug ("requstPrompt : {}" , requestPrompt );
2437 String result = messageManager .messageRequest (requestPrompt );
2538 return result ;
2639 }
@@ -29,16 +42,28 @@ public String requestTemperature(Long conversationId) {
2942 Conversation conversation = conversationService .findById (conversationId );
3043 List <GetMessageResponseDto > messages = messageService .getMessagesOfConversationId (conversationId );
3144
32- String prompt = "현재까지의 대화 온도 측정해서 0~100 사이의 숫자로만 대답해줘" ;
33- String result = messageManager .messageRequest (prompt );
45+ String [] messageList = {
46+ "사용자: 안녕하세요, 오늘 기분이 어떠세요?" ,
47+ "AI: 안녕하세요, 오늘 기분이 활기차고 즐거워요." ,
48+ "사용자: 오늘 특별한 계획이 있으세요?" ,
49+ "AI: 네, 친구와 함께 신나는 시간을 보낼 예정입니다."
50+ };
51+ String requestConversation = String .join (", " , messageList );
52+ String prompt = requestConversation + "현재까지의 대화 온도 측정해서 0~100 사이의 숫자로만 대답해줘 냉정하게 판단해주고, 숫자로만 대답해." ;
53+ log .debug ("prompt : {}" , prompt );
54+ String temperatureResponse = messageManager .messageRequest (prompt );
55+ String result = temperatureResponse .replaceAll ("[^0-9]" , "" );
3456 return result ;
3557 }
3658
3759 public String requestRecommendTopic (Long virtualFriendId ) {
60+ VirtualFriendInfoResponse virtualFriend = virtualFriendService .findFriendInfoById (virtualFriendId );
61+ String mbtiTrait = MbtiTraits .getTrait (MbtiType .valueOf (virtualFriend .mbti ()));
62+ mbtiTrait = mbtiTrait .substring (mbtiTrait .indexOf ("특징을 설명해주면 다음과 같아" ));
63+ String requestPrompt = mbtiTrait + ", 이 mbti와 대화할 때, 맞는 대화 주제 키워드 5개만 추천해줘, 짧게 단어로만 이야기해줘" ;
3864
39- String prompt = "지금까지 말한 MBTI와 맞는 대화 주제 5개만 추천해줘" ;
40- String result = messageManager .messageRequest (prompt );
41-
65+ String result = messageManager .messageRequest (requestPrompt );
66+ log .debug ("result : {}" , result );
4267 return result ;
4368 }
4469}
0 commit comments