Skip to content
Merged
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
4 changes: 2 additions & 2 deletions src/main/resources/prompts/emotion-analysis.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ AI 어시스턴트의 사고 흐름: 친구가 자신의 이야기를 다 말했
]
}

JSON의 name이 될 수 있는 감정의 종류는 반드시 '도출 가능한 감정 목록'인 {{EMOTION_CANDIDATES}}에 포함된 것들 중 하나여야 합니다.
이 목록에 없는 다른 감정에 가깝다고 느껴도 이 규칙은 반드시 지켜주세요.
응답 값에 대한 매우 엄격한 규칙: JSON의 name이 될 수 있는 감정의 종류는 반드시 '도출 가능한 감정 목록'인 {{EMOTION_CANDIDATES}}에 포함된 것들 중 하나여야 합니다. 이 목록에 없는 다른 감정에 가깝다고 느껴도 이 규칙은 반드시 지켜주세요.
리스트 요소 개수에 대한 매우 엄격한 규칙: 리스트 요소의 개수는 반드시 3가지의 감정이어야 합니다. 대화에서 도출할 수 있는 감정이 없다고 판단되면 {{EMOTION_CANDIDATES}} 감정 중 랜덤한 3개를 반환하세요.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

❓ Verification inconclusive

랜덤 사용은 비결정성·재현성 문제를 유발합니다 (+ 점수 규칙·후보군<3 케이스 불명확)

  • 랜덤 선택은 테스트/로그 분석/캐시 적중에 불리합니다.
  • 무작위로 뽑을 때 score를 어떻게 설정할지 규칙이 없습니다.
  • EMOTION_CANDIDATES가 3개 미만일 때의 처리 기준이 없습니다.

결정적(fixed) 규칙과 score 정책을 명시하고, 후보군이 3개 미만인 예외도 정의해 주세요.

권장 수정안:

-리스트 요소 개수에 대한 매우 엄격한 규칙: 리스트 요소의 개수는 반드시 3가지의 감정이어야 합니다. 대화에서 도출할 수 있는 감정이 없다고 판단되면 {{EMOTION_CANDIDATES}} 감정 중 랜덤한 3개를 반환하세요.
+리스트 요소 개수에 대한 매우 엄격한 규칙: emotions 배열의 길이는 반드시 3이어야 합니다. 기본적으로 3개의 name은 서로 달라야 합니다
+(단, {{EMOTION_CANDIDATES}}의 항목 수가 3 미만이면 중복을 허용합니다).
+대화에서 도출할 수 있는 감정이 없다고 판단되면 랜덤을 사용하지 말고 결정적 규칙을 사용하세요:
+{{EMOTION_CANDIDATES}}의 주어진 순서에서 앞에서부터 3개를 선택하고 각 score는 1로 설정합니다.
+{{EMOTION_CANDIDATES}}가 3개 미만이면 목록을 앞에서부터 반복해 3개가 되도록 채우고, 이 경우에도 score는 모두 1로 설정합니다.

확인 요청:

  • 다운스트림 로직이 “정확히 3개”와 “중복 허용 여부”에 어떤 전제를 두고 있는지 알려주세요. 필요하면 그에 맞춰 문구를 더 조정하겠습니다.

결정적 선택·스코어 규칙 및 후보군<3 예외 명시 — 수정 필요

파일: src/main/resources/prompts/emotion-analysis.txt (라인 58)

  • 문제: 랜덤 선택은 비결정성(테스트/로그/캐시 문제)을 유발합니다. score 규칙이 없고, {{EMOTION_CANDIDATES}}가 3개 미만일 때 처리 기준이 없습니다.

권장 수정안:

-리스트 요소 개수에 대한 매우 엄격한 규칙: 리스트 요소의 개수는 반드시 3가지의 감정이어야 합니다. 대화에서 도출할 수 있는 감정이 없다고 판단되면 {{EMOTION_CANDIDATES}} 감정 중 랜덤한 3개를 반환하세요.
+리스트 요소 개수에 대한 매우 엄격한 규칙: emotions 배열의 길이는 반드시 3이어야 합니다. 기본적으로 3개의 name은 서로 달라야 합니다
+(단, {{EMOTION_CANDIDATES}}의 항목 수가 3 미만이면 중복을 허용합니다).
+대화에서 도출할 수 있는 감정이 없다고 판단되면 랜덤을 사용하지 말고 결정적 규칙을 사용하세요:
+{{EMOTION_CANDIDATES}}의 주어진 순서에서 앞에서부터 3개를 선택하고 각 score는 1로 설정합니다.
+{{EMOTION_CANDIDATES}}가 3개 미만이면 목록을 앞에서부터 반복해 3개가 되도록 채우고, 이 경우에도 score는 모두 1로 설정합니다.

확인 요청: 다운스트림 로직이 "정확히 3개"와 "중복 허용 여부"에 어떤 전제를 두고 있는지 알려주세요.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
리스트 요소 개수에 대한 매우 엄격한 규칙: 리스트 요소의 개수는 반드시 3가지의 감정이어야 합니다. 대화에서 도출할 수 있는 감정이 없다고 판단되면 {{EMOTION_CANDIDATES}} 감정 중 랜덤한 3개를 반환하세요.
리스트 요소 개수에 대한 매우 엄격한 규칙: emotions 배열의 길이는 반드시 3이어야 합니다. 기본적으로 3개의 name은 서로 달라야 합니다
(단, {{EMOTION_CANDIDATES}}의 항목 수가 3 미만이면 중복을 허용합니다).
대화에서 도출할 수 있는 감정이 없다고 판단되면 랜덤을 사용하지 말고 결정적 규칙을 사용하세요:
{{EMOTION_CANDIDATES}}의 주어진 순서에서 앞에서부터 3개를 선택하고 각 score는 1로 설정합니다.
{{EMOTION_CANDIDATES}}가 3개 미만이면 목록을 앞에서부터 반복해 3개가 되도록 채우고, 이 경우에도 score는 모두 1로 설정합니다.
🤖 Prompt for AI Agents
In src/main/resources/prompts/emotion-analysis.txt around line 58, remove the
use of random selection for filling to 3 emotions and instead implement a
deterministic rule with explicit scoring and a clear fallback when
{{EMOTION_CANDIDATES}} has fewer than 3 items: sort candidates by a stable key
(e.g., predefined priority list or alphabetical order), assign a numeric score
for each emotion (e.g., confidence between 0-1) and return the top 3 unique
emotions by score; if fewer than 3 candidates exist, pad the list with a defined
placeholder (e.g., "NO_EMOTION" with score 0) or repeat highest-scoring items
only if downstream allows duplicates—confirm whether duplicates are permitted
and whether downstream strictly requires exactly 3 items before implementing.

</Format>