DOCS/journey/troubleshooting/250103_감정_기반_응답_길이_제어_구현.md

2.1 KiB

감정 기반 응답 길이 제어 구현

날짜: 2025-01-03 작성자: Claude (51124 서버 전담) 관련 파일: rb8001/app/services/llm/llm_service.py 관련 계획: plans/archive/251016_emotion_integration_plan.md


목표

감정 기반 응답 톤 자동 조정 계획 중 응답 길이 제어 구현. 이모지 제어는 문서 작성 원칙 위반이므로 제외.


구현 내용

1. 감정별 응답 길이 매핑 추가

파일: rb8001/app/services/llm/llm_service.py:210-220

emotion_length_map = {
    'fear': "짧게",
    'anger': "중간",
    'sadness': "중간",
    'joy': "중간",
    'happiness': "중간",
    'surprise': "중간",
    'disgust': "중간",
    'neutral': "중간"
}

2. system_instruction에 길이 지시 포함

파일: rb8001/app/services/llm/llm_service.py:243-250

기존: - {strategy} 응답하세요.
변경: - {strategy} {length_instruction} 응답하세요.

예시 (fear 감정): "공감과 이해를 담아 부드럽게 짧게 응답하세요."


테스트

파일: rb8001/tests/test_emotion_tone_length_control.py

결과: 3개 테스트 모두 통과

  • fear 감정 시 "짧게" 지시 포함 확인
  • joy 감정 시 중간 길이 확인
  • 매핑 구조 검증

교훈

이모지 제어 제외 결정

  • 계획 문서 초안에 "이모지 사용 제어" 포함
  • 문서 작성 원칙 확인: "이모지 사용: 명시적 요청 시만 허용"
  • 원칙에 맞게 이모지 제어 항목 제거, 응답 길이 제어만 구현

교훈: 계획 수립 시 원칙 문서 먼저 확인 필수

TDD 준수

  • 테스트 작성 → 구현 → 검증 순서 준수
  • pytest 자동 테스트로 회귀 방지
  • .gitignore에서 테스트 파일 제외 규칙 제거 (버전 관리 필요)

교훈: 테스트는 항상 버전 관리, .gitignore 설정 확인 필수


참고

  • plans/archive/251016_emotion_integration_plan.md: 원본 계획 문서
  • 312_writing-principles.md: 문서 작성 원칙
  • 315_테스트_작성_원칙.md: 테스트 작성 원칙