feat : 분석 프롬프트 수정(리뷰 분석시 부정의견 추가.)
This commit is contained in:
parent
a67cd0db79
commit
a0eb5f8979
@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -16,12 +17,14 @@ import java.util.List;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ToString
|
||||||
public class AiFeedback {
|
public class AiFeedback {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
private Long storeId;
|
private Long storeId;
|
||||||
private String summary;
|
private String summary;
|
||||||
private List<String> positivePoints;
|
private List<String> positivePoints;
|
||||||
|
private List<String> negativePoints;
|
||||||
private List<String> improvementPoints;
|
private List<String> improvementPoints;
|
||||||
private List<String> recommendations;
|
private List<String> recommendations;
|
||||||
private String sentimentAnalysis;
|
private String sentimentAnalysis;
|
||||||
|
|||||||
@ -123,6 +123,7 @@ public class AnalyticsService implements AnalyticsUseCase {
|
|||||||
.storeId(storeId)
|
.storeId(storeId)
|
||||||
.summary(aiFeedback.get().getSummary())
|
.summary(aiFeedback.get().getSummary())
|
||||||
.positivePoints(aiFeedback.get().getPositivePoints())
|
.positivePoints(aiFeedback.get().getPositivePoints())
|
||||||
|
.negativePoints(aiFeedback.get().getNegativePoints())
|
||||||
.improvementPoints(aiFeedback.get().getImprovementPoints())
|
.improvementPoints(aiFeedback.get().getImprovementPoints())
|
||||||
.recommendations(aiFeedback.get().getRecommendations())
|
.recommendations(aiFeedback.get().getRecommendations())
|
||||||
.sentimentAnalysis(aiFeedback.get().getSentimentAnalysis())
|
.sentimentAnalysis(aiFeedback.get().getSentimentAnalysis())
|
||||||
@ -460,6 +461,7 @@ public class AnalyticsService implements AnalyticsUseCase {
|
|||||||
.feedbackId(aiFeedback.getId())
|
.feedbackId(aiFeedback.getId())
|
||||||
.summary(aiFeedback.getSummary())
|
.summary(aiFeedback.getSummary())
|
||||||
.positivePoints(aiFeedback.getPositivePoints())
|
.positivePoints(aiFeedback.getPositivePoints())
|
||||||
|
.negativePoints(aiFeedback.getNegativePoints())
|
||||||
.improvementPoints(aiFeedback.getImprovementPoints())
|
.improvementPoints(aiFeedback.getImprovementPoints())
|
||||||
.recommendations(aiFeedback.getRecommendations())
|
.recommendations(aiFeedback.getRecommendations())
|
||||||
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
|
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
|
||||||
@ -530,11 +532,13 @@ public class AnalyticsService implements AnalyticsUseCase {
|
|||||||
// 2. 실제 AI 서비스 호출 (기존 하드코딩 부분을 수정)
|
// 2. 실제 AI 서비스 호출 (기존 하드코딩 부분을 수정)
|
||||||
AiFeedback aiFeedback = aiServicePort.generateFeedback(reviewData);
|
AiFeedback aiFeedback = aiServicePort.generateFeedback(reviewData);
|
||||||
|
|
||||||
|
|
||||||
// 3. 도메인 객체 속성 설정
|
// 3. 도메인 객체 속성 설정
|
||||||
AiFeedback completeAiFeedback = AiFeedback.builder()
|
AiFeedback completeAiFeedback = AiFeedback.builder()
|
||||||
.storeId(storeId)
|
.storeId(storeId)
|
||||||
.summary(aiFeedback.getSummary())
|
.summary(aiFeedback.getSummary())
|
||||||
.positivePoints(aiFeedback.getPositivePoints())
|
.positivePoints(aiFeedback.getPositivePoints())
|
||||||
|
.negativePoints(aiFeedback.getNegativePoints())
|
||||||
.improvementPoints(aiFeedback.getImprovementPoints())
|
.improvementPoints(aiFeedback.getImprovementPoints())
|
||||||
.recommendations(aiFeedback.getRecommendations())
|
.recommendations(aiFeedback.getRecommendations())
|
||||||
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
|
.sentimentAnalysis(aiFeedback.getSentimentAnalysis())
|
||||||
|
|||||||
@ -31,6 +31,9 @@ public class AiAnalysisResponse {
|
|||||||
@Schema(description = "긍정적 요소")
|
@Schema(description = "긍정적 요소")
|
||||||
private List<String> positivePoints;
|
private List<String> positivePoints;
|
||||||
|
|
||||||
|
@Schema(description = "부정적 요소")
|
||||||
|
private List<String> negativePoints;
|
||||||
|
|
||||||
@Schema(description = "개선점")
|
@Schema(description = "개선점")
|
||||||
private List<String> improvementPoints;
|
private List<String> improvementPoints;
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,7 @@ public class AiFeedbackDetailResponse {
|
|||||||
private Long storeId;
|
private Long storeId;
|
||||||
private String summary;
|
private String summary;
|
||||||
private List<String> positivePoints;
|
private List<String> positivePoints;
|
||||||
|
private List<String> negativePoints;
|
||||||
private List<String> improvementPoints;
|
private List<String> improvementPoints;
|
||||||
private List<String> existActionPlan; // improvemnetPoints 중에서 처리 된것.
|
private List<String> existActionPlan; // improvemnetPoints 중에서 처리 된것.
|
||||||
private List<String> recommendations;
|
private List<String> recommendations;
|
||||||
|
|||||||
@ -176,6 +176,7 @@ public class AIServiceAdapter implements AIServicePort {
|
|||||||
{
|
{
|
||||||
"summary": "전체적인 분석 요약(2-3문장)",
|
"summary": "전체적인 분석 요약(2-3문장)",
|
||||||
"positivePoints": ["긍정적 요소1", "긍정적 요소2", "긍정적 요소3"],
|
"positivePoints": ["긍정적 요소1", "긍정적 요소2", "긍정적 요소3"],
|
||||||
|
"negativePoints": ["부정적 요소1", "부정적 요소2", "부정적 요소3"],
|
||||||
"improvementPoints": ["개선점1", "개선점2", "개선점3"],
|
"improvementPoints": ["개선점1", "개선점2", "개선점3"],
|
||||||
"recommendations": ["추천사항1", "추천사항2", "추천사항3"],
|
"recommendations": ["추천사항1", "추천사항2", "추천사항3"],
|
||||||
"sentimentAnalysis": "전체적인 감정 분석 결과",
|
"sentimentAnalysis": "전체적인 감정 분석 결과",
|
||||||
@ -187,6 +188,7 @@ public class AIServiceAdapter implements AIServicePort {
|
|||||||
|
|
||||||
분석 시 다음 사항을 고려해주세요:
|
분석 시 다음 사항을 고려해주세요:
|
||||||
1. 긍정적 요소는 고객들이 자주 언급하는 좋은 점들
|
1. 긍정적 요소는 고객들이 자주 언급하는 좋은 점들
|
||||||
|
2. 부정적 요소는 고객들이 자주 언급하는 안좋은 점들(없는 경우에는 없음으로 표시)
|
||||||
2. 개선점은 부정적 피드백이나 불만사항
|
2. 개선점은 부정적 피드백이나 불만사항
|
||||||
3. 추천사항은 매장 운영에 도움이 될 구체적인 제안
|
3. 추천사항은 매장 운영에 도움이 될 구체적인 제안
|
||||||
4. 신뢰도 점수는 0.0-1.0 사이의 값
|
4. 신뢰도 점수는 0.0-1.0 사이의 값
|
||||||
@ -278,6 +280,7 @@ public class AIServiceAdapter implements AIServicePort {
|
|||||||
return AiFeedback.builder()
|
return AiFeedback.builder()
|
||||||
.summary((String) result.get("summary"))
|
.summary((String) result.get("summary"))
|
||||||
.positivePoints((List<String>) result.get("positivePoints"))
|
.positivePoints((List<String>) result.get("positivePoints"))
|
||||||
|
.negativePoints((List<String>) result.get("negativePoints"))
|
||||||
.improvementPoints((List<String>) result.get("improvementPoints"))
|
.improvementPoints((List<String>) result.get("improvementPoints"))
|
||||||
.recommendations((List<String>) result.get("recommendations"))
|
.recommendations((List<String>) result.get("recommendations"))
|
||||||
.sentimentAnalysis((String) result.get("sentimentAnalysis"))
|
.sentimentAnalysis((String) result.get("sentimentAnalysis"))
|
||||||
|
|||||||
@ -105,6 +105,7 @@ public class AnalyticsRepositoryAdapter implements AnalyticsPort {
|
|||||||
.storeId(entity.getStoreId())
|
.storeId(entity.getStoreId())
|
||||||
.summary(entity.getSummary())
|
.summary(entity.getSummary())
|
||||||
.positivePoints(parseJsonToList(entity.getPositivePointsJson()))
|
.positivePoints(parseJsonToList(entity.getPositivePointsJson()))
|
||||||
|
.negativePoints(parseJsonToList(entity.getNegativePointsJson()))
|
||||||
.improvementPoints(parseJsonToList(entity.getImprovementPointsJson()))
|
.improvementPoints(parseJsonToList(entity.getImprovementPointsJson()))
|
||||||
.recommendations(parseJsonToList(entity.getRecommendationsJson()))
|
.recommendations(parseJsonToList(entity.getRecommendationsJson()))
|
||||||
.sentimentAnalysis(entity.getSentimentAnalysis())
|
.sentimentAnalysis(entity.getSentimentAnalysis())
|
||||||
@ -124,6 +125,7 @@ public class AnalyticsRepositoryAdapter implements AnalyticsPort {
|
|||||||
.storeId(domain.getStoreId())
|
.storeId(domain.getStoreId())
|
||||||
.summary(domain.getSummary())
|
.summary(domain.getSummary())
|
||||||
.positivePointsJson(parseListToJson(domain.getPositivePoints()))
|
.positivePointsJson(parseListToJson(domain.getPositivePoints()))
|
||||||
|
.negativePointsJson(parseListToJson(domain.getNegativePoints()))
|
||||||
.improvementPointsJson(parseListToJson(domain.getImprovementPoints()))
|
.improvementPointsJson(parseListToJson(domain.getImprovementPoints()))
|
||||||
.recommendationsJson(parseListToJson(domain.getRecommendations()))
|
.recommendationsJson(parseListToJson(domain.getRecommendations()))
|
||||||
.sentimentAnalysis(domain.getSentimentAnalysis())
|
.sentimentAnalysis(domain.getSentimentAnalysis())
|
||||||
|
|||||||
@ -42,7 +42,10 @@ public class AiFeedbackEntity {
|
|||||||
|
|
||||||
@Column(name = "positive_points", columnDefinition = "TEXT")
|
@Column(name = "positive_points", columnDefinition = "TEXT")
|
||||||
private String positivePointsJson;
|
private String positivePointsJson;
|
||||||
|
|
||||||
|
@Column(name = "negative_points", columnDefinition = "TEXT")
|
||||||
|
private String negativePointsJson;
|
||||||
|
|
||||||
@Column(name = "improvement_points", columnDefinition = "TEXT")
|
@Column(name = "improvement_points", columnDefinition = "TEXT")
|
||||||
private String improvementPointsJson;
|
private String improvementPointsJson;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user