Skip to content

Commit

Permalink
Merge pull request #255 from 9oormthon-univ/fix/#254
Browse files Browse the repository at this point in the history
hotfix: 사용자 목표 추천 api 수정
  • Loading branch information
koosco authored Dec 6, 2024
2 parents b7fc265 + 088dae0 commit 1ce825d
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 21 deletions.
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ dependencies {
implementation 'com.google.firebase:firebase-admin:9.2.0'

//Jackson Data binding
implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.1'
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.16.1'
implementation 'com.fasterxml.jackson.core:jackson-core:2.16.1'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ public RecommendQuestListResponseDto recommendQuest(Long memberId) {
othersVector.stream().flatMap(vector -> vector.goals().stream()).toList()),
"format",
format));
log.info("response is {}", response);
return converter.convert(response);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Optional;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.groom.orbit.goal.dao.GoalRepository;
Expand All @@ -18,6 +19,7 @@ public class GoalCommandService {

private final GoalRepository goalRepository;

@Transactional(propagation = Propagation.REQUIRES_NEW)
public Goal createGoal(String title, String category) {
Goal goal = Goal.create(title, category);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public class GoalRecommendService {

public GetRecommendGoalListResponseDto createRecommendGoal(Long memberId) {
RecommendGoalListResponseDto dtos = aiService.recommendGoal(memberId);
dtos.items().forEach(dto -> goalCommandService.upsert(dto.title(), dto.category()));
List<Goal> newGoals =
dtos.items().stream()
.map(dto -> goalCommandService.upsert(dto.title(), dto.category()))
Expand Down
35 changes: 18 additions & 17 deletions src/main/resources/templates/goal-recommend-prompt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@

# 조건
## 조건1
각 목표의 카테고리(goalCategory)는 다음과 같습니다.
- 자격·어학·수상
- 경험·활동·교육
- 경력
- 기타
각 목표의 카테고리(category)는 다음과 같습니다.
- CERTIFICATION
- EXPERIENCE
- CAREER
- ETC

제시해주시는 목표는 goalCategory 중 하나의 카테고리에 포함되어야 합니다.
제시해주시는 목표와 goalCategory는 연관성이 있어야 합니다.
제시해주시는 목표는 반드시 category 중 하나의 카테고리에 포함되어야 합니다.
제시해주시는 목표와 category 연관성이 있어야 합니다.
category null이 아닌지 다시 한 번 확인해주세요.

## 조건2
새로운 목표의 종결 어미는 "~하기"여야 합니다.
Expand All @@ -33,26 +34,26 @@
- input
- "myGoal": ["SpringMVC 공부하기", "DDD 개념 이해하기", "클린 아키텍처 구현해보기"]
- output
- "title": "EDA에 대해 공부해보기", "goalCategory": "경험·활동·교육", "descriptions": ["다양한 IT 기업에 지원할 수 있어요", "분산 아키텍처에 대한 이해도를 높일 수 있어요"]
- "title": "SpringCloud 공부해보기", "goalCategory": "경험·활동·교육", "descriptions": ["scale out 가능한 아키텍처에 대해 공부해볼 수 있어요", "분산 아키텍처를 직접 만들어보며 이해도를 높일 수 있어요"]
- "title": "AWS를 이용해 EDA를 적용하기", "goalCategory": "경력", "descriptions": ["로컬 환경에서 벗어나 배포 환경을 분산 아키텍처로 구성해볼 수 있어요", "IT 기업에 지원할 때 우대 받을 수 있어요"]
- "title": "EDA에 대해 공부해보기", "category": "EXPERIENCE", "descriptions": ["다양한 IT 기업에 지원할 수 있어요", "분산 아키텍처에 대한 이해도를 높일 수 있어요"]
- "title": "SpringCloud 공부해보기", "category": "EXPERIENCE", "descriptions": ["scale out 가능한 아키텍처에 대해 공부해볼 수 있어요", "분산 아키텍처를 직접 만들어보며 이해도를 높일 수 있어요"]
- "title": "AWS를 이용해 EDA를 적용하기", "category": "CAREER", "descriptions": ["로컬 환경에서 벗어나 배포 환경을 분산 아키텍처로 구성해볼 수 있어요", "IT 기업에 지원할 때 우대 받을 수 있어요"]

2)
- input
- "myGoal": ["미적분학 A+받기", "선형대수학 A+받기", "과탑하기"]
- output
- "title": "해석학 공부해보기", "goalCategory": "경험·활동·교육", "descriptions": ["다양한 수학 분야를 경험해볼 수 있어요", "앞서 배운 내용을 응용해 대학 수학에 대한 이해도를 높일 수 있어요"]
- "title": "수학 경시대회 나가서 수상해보기", "goalCategory": "자격·어학·수상", "descriptions": ["관련 직무에 지원할 때 우대를 받을 수 있어요", "공부한 실력을 검증해볼 수 있어요"]
- "title": "수학과 취업 시장 조사하기", "goalCategory": "경력", "descriptions": ["졸업 후 취업 시장에 대한 식견을 넓힐 수 있어요", "기업들이 원하는 역량을 준비할 수 있어요", "수학의 다양한 응용분야에 대해 알 수 있어요"]
- "title": "해석학 공부해보기", "category": "EXPERIENCE", "descriptions": ["다양한 수학 분야를 경험해볼 수 있어요", "앞서 배운 내용을 응용해 대학 수학에 대한 이해도를 높일 수 있어요"]
- "title": "수학 경시대회 나가서 수상해보기", "category": "CERTIFICATION", "descriptions": ["관련 직무에 지원할 때 우대를 받을 수 있어요", "공부한 실력을 검증해볼 수 있어요"]
- "title": "수학과 취업 시장 조사하기", "category": "CAREER", "descriptions": ["졸업 후 취업 시장에 대한 식견을 넓힐 수 있어요", "기업들이 원하는 역량을 준비할 수 있어요", "수학의 다양한 응용분야에 대해 알 수 있어요"]

3)
- input
- "myGoal": ["JLPT 5급 합격하기", "JLPT 4급 합격하기", "매일 일본어 단어 정리하기"]
- output
- "title": "JLPT 3급 합격하기", "goalCategory": "자격·어학·수상", "descriptions": ["일본 사람과 일상적인 대화를 주고 받을 수 있어요", "일상생활에서 사용하는 한자를 읽고 듣는 능력을 기를 수 있어요", "JLPT 2급을 준비할 수 있는 기초 능력을 기를 수 있어요"]
- "title": "교내 일본어 동아리 가입하기", "goalCategory": "경험·활동·교육", "descriptions": ["관심사가 비슷한 사람들과 함께 공부하며 배운 내용을 적용해볼 수 있어요", "일본어 어학 관련 기업에 지원할 때 우대 받을 수 있어요"]
- "title": "일본어 어학연수 알아보기", "goalCategory": "경험·활동·교육", "descriptions": ["일본 현지인들과 함께 생활해보는 경험을 할 수 있어요", "일본 대학에서 일본어를 배우는 경험을 할 수 있어요"]
- "title": "일본 워킹홀리데이 조사하기", "goalCategory": "경험·활동·교육", "descriptions": ["일본 현지인들과 함께 생활해보는 경험을 할 수 있어요", "일본어 어학 관련 기업에 지원할 때 우대 받을 수 있어요"]
- "title": "JLPT 3급 합격하기", "category": "자격·어학·수상", "descriptions": ["일본 사람과 일상적인 대화를 주고 받을 수 있어요", "일상생활에서 사용하는 한자를 읽고 듣는 능력을 기를 수 있어요", "JLPT 2급을 준비할 수 있는 기초 능력을 기를 수 있어요"]
- "title": "교내 일본어 동아리 가입하기", "category": "EXPERIENCE", "descriptions": ["관심사가 비슷한 사람들과 함께 공부하며 배운 내용을 적용해볼 수 있어요", "일본어 어학 관련 기업에 지원할 때 우대 받을 수 있어요"]
- "title": "일본어 어학연수 알아보기", "category": "EXPERIENCE", "descriptions": ["일본 현지인들과 함께 생활해보는 경험을 할 수 있어요", "일본 대학에서 일본어를 배우는 경험을 할 수 있어요"]
- "title": "일본 워킹홀리데이 조사하기", "category": "EXPERIENCE", "descriptions": ["일본 현지인들과 함께 생활해보는 경험을 할 수 있어요", "일본어 어학 관련 기업에 지원할 때 우대 받을 수 있어요"]

# 응답 포맷
{format}
9 changes: 7 additions & 2 deletions src/main/resources/templates/quest-recommend-prompt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
저의 관심 직무는 {job}입니다. 저의 목표는 {goal}입니다.

- {myQuest}는 제가 여태까지 작성했던 목표입니다.
- {questList}에 포함된 퀘스트 중 제가 아직 수행하지 않은 퀘스트를 선택하려고 합니다.
- {questList}에 포함된 퀘스트 중 제가 아직 수행하지 않은 퀘스트을(를) 선택하려고 합니다.
- {questList}에 포함된 퀘스트 중 저의 직무, 목표와 관련성이 가장 높은 퀘스트를 *세 개* 선택해주세요.
- {questList}에서 선택한 퀘스트가 {job}, {goal}과 관련이 있는지 판단해주세요.
- 만약 선택된 퀘스트가 {job} 또는 {goal} 과 관련이 없다면, {job}과 {goal}, {myQuest}을 기준으로 새로운 퀘스트를 만들어주세요.
Expand Down Expand Up @@ -41,7 +41,12 @@

# 조건
- 답변하기 전에 한 번 더 검토를 하고 {questList}에서 선택한 퀘스트가 {job}, {goal}과 관련이 있는지 판단해주세요.
- 선택한 퀘스트가 관련이 없다면 {job}과 {goal}과 관련있는 새로운 퀘스트명을 3개 만들어주세요


# 응답 포맷
{format}
다음 응답 포맷을 기준으로 데이터를 만들어야 합니다.
```
{format}
```
답변하는 데이터가 코드 블럭의 데이터면 절대 안됩니다! 코드 블럭의 데이터는 단순히 답변 포맷의 예시일뿐입니다.

0 comments on commit 1ce825d

Please sign in to comment.