Skip to content

Commit e2ee408

Browse files
committed
feat : 추가 서비스, 대화주제, 온도 꿀팁 스켈레톤 코드 작성
1 parent 6a21e05 commit e2ee408

File tree

4 files changed

+89
-7
lines changed

4 files changed

+89
-7
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.mbtips.domain.addition.controller;
2+
3+
import com.mbtips.common.annotation.LoginUser;
4+
import com.mbtips.common.response.ApiResponse;
5+
import com.mbtips.domain.addition.service.AdditionService;
6+
import com.mbtips.domain.user.User;
7+
import io.swagger.v3.oas.annotations.Operation;
8+
import io.swagger.v3.oas.annotations.security.SecurityRequirements;
9+
import lombok.RequiredArgsConstructor;
10+
import org.springframework.web.bind.annotation.GetMapping;
11+
import org.springframework.web.bind.annotation.PathVariable;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.RestController;
14+
15+
@RestController
16+
@SecurityRequirements
17+
@RequiredArgsConstructor
18+
@RequestMapping("/api/addition")
19+
public class AdditionController {
20+
21+
private final AdditionService additionService;
22+
23+
@GetMapping("/tips/{virtualFriendId}")
24+
@Operation(summary = "대화 꿀팁", description = "해당 AI와의 대화 꿀팁을 반환합니다.")
25+
public ApiResponse<String> requestConversationTips(@PathVariable Long virtualFriendId, @LoginUser User user){
26+
String result = additionService.requestConversationTips(virtualFriendId);
27+
28+
return ApiResponse.success(result);
29+
}
30+
31+
32+
@GetMapping("/temperature/{conversationId}")
33+
@Operation(summary = "대화 온도", description = "현재까지 대화의 온도를 측정합니다.")
34+
public ApiResponse<String> requestTemperature(@PathVariable Long conversationId){
35+
String result = additionService.requestTemperature(conversationId);
36+
return ApiResponse.success(result);
37+
}
38+
39+
@GetMapping("/recommendtopic/{virtualFriendId}")
40+
@Operation(summary = "대화 주제 추천", description = "해당 AI와의 대화 주제를 추천합니다.")
41+
public ApiResponse<String> reqeustRecommendTopic(@PathVariable Long virtualFriendId) {
42+
String result = additionService.requestRecommendTopic(virtualFriendId);
43+
return ApiResponse.success(result);
44+
}
45+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.mbtips.domain.addition.service;
2+
3+
import com.mbtips.clova.dto.Message;
4+
import com.mbtips.domain.conversation.service.ConversationService;
5+
import com.mbtips.domain.converstation.Conversation;
6+
import com.mbtips.domain.message.dto.response.GetMessageResponseDto;
7+
import com.mbtips.message.application.manager.MessageManager;
8+
import com.mbtips.message.application.service.MessageService;
9+
import lombok.RequiredArgsConstructor;
10+
import org.springframework.stereotype.Service;
11+
12+
import java.util.ArrayList;
13+
import java.util.List;
14+
15+
@Service
16+
@RequiredArgsConstructor
17+
public class AdditionService {
18+
19+
public final MessageManager messageManager;
20+
public final ConversationService conversationService;
21+
public final MessageService messageService;
22+
public String requestConversationTips(Long virtualFriendId) {
23+
String requestPrompt = "대화 주제 추천해줘";
24+
String result = messageManager.messageRequest(requestPrompt);
25+
return result;
26+
}
27+
28+
public String requestTemperature(Long conversationId) {
29+
Conversation conversation = conversationService.findById(conversationId);
30+
List<GetMessageResponseDto> messages = messageService.getMessagesOfConversationId(conversationId);
31+
32+
String prompt = "현재까지의 대화 온도 측정해서 0~100 사이의 숫자로만 대답해줘";
33+
String result = messageManager.messageRequest(prompt);
34+
return result;
35+
}
36+
37+
public String requestRecommendTopic(Long virtualFriendId) {
38+
39+
String prompt = "지금까지 말한 MBTI와 맞는 대화 주제 5개만 추천해줘";
40+
String result = messageManager.messageRequest(prompt);
41+
42+
return result;
43+
}
44+
}

api/src/main/java/com/mbtips/domain/virtualfriend/VirtualFriendController.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ public class VirtualFriendController {
2222

2323
private final VirtualFriendService virtualFriendService;
2424

25-
/**
26-
*
27-
*/
2825
@GetMapping
2926
@Operation(summary = "가상친구, 채팅방 리스트 조회", description = "userId기준으로 채팅방+가상친구 리스트를 조회합니다.")
3027
public ApiResponse<List<VirtualFriendResponse>> getVirtualFriends(@LoginUser User user){
@@ -40,9 +37,6 @@ public ApiResponse<VirtualFriendInfoResponse> getVirtualFriend(@LoginUser User u
4037
return ApiResponse.success(result);
4138
}
4239

43-
/**
44-
* todo - request validation 적용
45-
*/
4640
@PostMapping
4741
@Operation(summary = "가상친구 생성", description = "가상친구 생성을 요청하며, 채팅방이 생성됩니다.")
4842
public ApiResponse<VirtualFriendResponse> createVirtualFriend(@Valid @RequestBody VirtualFriendRequest virtualFriendRequest,

api/src/main/java/com/mbtips/domain/virtualfriend/request/VirtualFriendRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public record VirtualFriendRequest(
2323
@NotBlank(message = "관계 유형은 필수입니다.")
2424
String relationship,
2525

26-
// @Pattern(regexp = "^(MAIL|FEMALE)$", message = "성별은 MAIL 또는 FEMALE만 가능합니다.")
2726
Gender gender,
2827

2928
@Pattern(

0 commit comments

Comments
 (0)