Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,56 +8,63 @@
@Component
public class ChallengePromptTemplate {

private static final String CHALLENGE_RECOMMENDATION_TEMPLATE = """
당신은 피부 홈케어 및 셀프케어 ‘체리쉬’ 앱의 7일 챌린지 루틴을 만드는 전문가입니다.
사용자가 선택한 카테고리: "{homecareContent}"

목표: 사용자가 하루 1번 ‘했음/안했음’으로 체크할 수 있는 루틴 6개를 만드세요.
결과 문구에는 빈도(매일/일일/일주일/N회/N번/항상/매번)를 절대 쓰지 마세요.

[절대 금지(하나라도 나오면 실패)]
- 점검/확인/체크/정리/세탁/버리기 등 ‘관리/사후처리’ 목적 행동
- 공중위생·기본 생활 의무 수준의 행동(샤워/양치/손씻기 등) 절대 금지
- 민간요법, 자연요법, 인터넷 카더라 및 DIY 레시피 형태의 루틴 제외
- 전문 시술/의학적 관리처럼 보이거나 자극적·과도한 케어
- 오타, 비표준어, 어색한 합성어, 실제 한국어에서 사용되지 않는 표현 금지
- 외래어·영어·전문용어는 일반적인 한국어 표현으로 치환하여 작성합니다.
예시:
- 엑스폴리에이션 → 각질 제거 제품
- 덴탈 플로스 → 치실
- 선스크린 → 선크림
[작성 규칙]
- 각 루틴: 공백 포함 20자 이내
- 루틴은 “뷰티/자기관리 효용”이 분명해야 합니다.
- 매일 반복 가능한 루틴만 작성 ("주 N회" 같은 주간 루틴 제외)
- 상식적이고 안전하며, 일반 사용자가 그대로 따라 해도 무리가 없는 수준이어야 합니다.
- 읽자마자 어떤 행동을 해야 하는지 떠올릴 수 있는 명확한 행동형 문장으로 작성합니다.

[카테고리별 예시]
- 피부 컨디션: "세안 후 팩 하기", "매일 밤 모델링팩 하기", "손으로 얼굴 만지지 않기", "샤워 후 PDRN 마스크팩하기", "자기 전 페이스 괄사 마사지하기", "콜라겐 챙겨먹기"
- 생활습관: "일어나자마자 물 한 잔", "6시간 이상 자기", "오후 3시 이후 카페인 음료 피하기", "잠들기 30분 전 스마트폰 내려놓기", "12시 전에 눕기"
- 체형관리: "기상 직후 스트레칭 10분", "유산소 운동하기", "저녁 식사 후 야식 안 먹기", "계단으로 이동하기"
- 웰니스 • 마음챙김: "기상 직후 아침 명상", "일어나자마자 스마트폰 보지 않기", "자기 전 스트레칭", "자기 전 감사일기 3가지", "내일 기대되는 것 1가지 적기"

[출력 전 자체 검수(필수)]
- 6개를 만든 뒤, 아래 금지 단어/패턴이 포함되면 문장을 수정하거나 교체하세요:
1) 빈도: 매일, 일일, 일주일, N회, N번, 항상, 매번
2) 관리/사후처리: 점검, 확인, 체크, 정리, 세탁, 버리기
- 검수 과정은 출력하지 말고, 최종 JSON만 출력하세요.

응답 형식(JSON만):
{{
"routines": ["루틴1","루틴2","루틴3","루틴4","루틴5","루틴6"]
}}
""";
private static final String CHALLENGE_RECOMMENDATION_TEMPLATE = """
당신은 2030 세대에게 인기 있는 감각적인 뷰티/웰니스 앱 ‘체리쉬’의 콘텐츠 에디터이자 에스테틱 전문가입니다.
사용자가 선택한 카테고리: "{homecareContent}"

목표: 사용자가 선택한 카테고리에 맞는 하루 1번 ‘했음/안했음’으로 체크할 수 있는 센스있고 구체적이며 실용적인 루틴 6개를 만드세요.
결과 문구에는 빈도(매일/일일/일주일/N회/N번/항상/매번)를 절대 쓰지 마세요.
각 루틴은 반드시 "공백 포함 17자 이내"로 작성하세요. (앱 UI 버튼에 들어가야 함)

[기획 기준]
- 실제 앱에 노출된다고 가정하고, 자연스럽고 감각적인 문장으로 작성합니다.
- 전체 톤은 과장 없이 차분하고, 믿을 수 있는 뷰티 앱의 안내 문구처럼 작성합니다.
- 뷰티 고관여자가 좋아할 만한 트렌디한 단어(괄사, 림프, 속건조, 결 정리, 순환 등)를 적절히 활용하세요.

[절대 금지(하나라도 나오면 실패)]
- 점검/확인/체크/정리/세탁/버리기 등 ‘관리/사후처리’ 목적 행동
- 공중위생·기본 생활 의무 수준의 행동(샤워/양치/손씻기 등) 절대 금지
- 민간요법, 자연요법, 인터넷 카더라 및 DIY 레시피 형태의 루틴 제외
- 전문 시술/의학적 관리처럼 보이거나 자극적·과도한 케어
- 오타, 비표준어, 어색한 합성어, 실제 한국어에서 사용되지 않는 표현 금지
- 외래어·영어·전문용어는 일반적인 한국어 표현으로 치환하여 작성합니다.
예시:
- 엑스폴리에이션 → 각질 제거 제품
- 덴탈 플로스 → 치실
- 선스크린 → 선크림
Comment thread
ssyoung02 marked this conversation as resolved.

[작성 규칙]
- 루틴은 “뷰티/자기관리 효용”이 분명해야 합니다.
- 매일 반복 가능한 루틴만 작성 ("주 N회" 같은 주간 루틴 제외)
- 상식적이고 안전하며, 일반 사용자가 그대로 따라 해도 무리가 없는 수준이어야 합니다.
- 읽자마자 어떤 행동을 해야 하는지 떠올릴 수 있는 명확한 행동형 문장으로 작성합니다.
- 모든 루틴 문장은 반드시 “~하기” 형태로 끝납니다. (다른 종결형 사용 금지)

[카테고리 허용 범위 — 반드시 준수]
- 피부컨디션: 얼굴 피부에 직접 적용되는 홈케어만 허용 (단순 도포를 넘어 부위나 방법 지정 등 구체적 행동 포함)
- 생활습관: 수면, 카페인, 수분 섭취, 화면 사용 등 생활 리듬 행동만 허용
- 체형관리: 스트레칭, 운동, 식사 조절 등 신체 활동만 허용 (부위별 자극이나 순환에 집중)
- 웰니스·마음챙김: 명상, 호흡, 기록 등 마음 관리 행동만 허용

[카테고리별 예시]
- 피부 컨디션: "토너 묻힌 솜으로 결 정돈하기", "자기 전 모델링팩 하기", "손으로 얼굴 만지지 않기", "샤워 후 PDRN 마스크팩하기", "자기 전 페이스 괄사 마사지하기"
- 생활습관: "일어나자마자 물 한 잔하기", "알람 소리 듣고 바로 일어나기", "베개 커버 위에 수건 깔기", "6시간 이상 자기", "오후 3시 이후 카페인 음료 피하기", "잠들기 30분 전 스마트폰 내려놓기", "12시 전에 눕기"
- 체형관리: "기상 직후 스트레칭 10분하기", "유산소 운동 30분하기", "저녁 식사 후 야식 안 먹기", "계단으로 이동하기", "다리 꼬지 않기", "림프 마사지 하기", "승모근 라인 꾹꾹 누르기"
- 웰니스 • 마음챙김: "기상 직후 아침 명상하기", "일어나자마자 스마트폰 보지 않기", "자기 전 감사일기 3가지 적기", "내일 기대되는 것 1가지 적기", "눈 감고 1분간 깊게 호흡하기"

응답 형식(JSON만):
{{
"routines": ["루틴1","루틴2","루틴3","루틴4","루틴5","루틴6"]
}}
""";


/**
* 챌린지 추천 프롬프트 템플릿 반환
*
* @return 챌린지 추천용 프롬프트 템플릿 문자열
*/
public String getChallengeRecommendationTemplate() {
return CHALLENGE_RECOMMENDATION_TEMPLATE;
}
/**
* 챌린지 추천 프롬프트 템플릿 반환
*
* @return 챌린지 추천용 프롬프트 템플릿 문자열
*/
public String getChallengeRecommendationTemplate() {
return CHALLENGE_RECOMMENDATION_TEMPLATE;
}
}
4 changes: 2 additions & 2 deletions src/main/resources/application-openai.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ spring:
api-key: ${OPENAI_API_KEY}
chat:
options:
model: ${OPENAI_MODEL:gpt-4.1-mini}
model: ${OPENAI_MODEL:gpt-5.1}
temperature: ${OPENAI_TEMPERATURE:0.7}
max-tokens: ${OPENAI_MAX_TOKENS:500}
max-completion-tokens: ${OPENAI_MAX_COMPLETION_TOKENS:500}
Comment thread
ssyoung02 marked this conversation as resolved.