docs: 감정 기반 응답 길이 제어 트러블슈팅 문서 작성
- 트러블슈팅 문서 작성 (구현 내용, 테스트 결과, 교훈) - 계획 문서 정리 (구현 완료 섹션 삭제, troubleshooting 링크로 대체)
This commit is contained in:
parent
7293f83f0f
commit
dcd0491c23
@ -22,35 +22,7 @@
|
|||||||
|
|
||||||
## 구현 완료: 감정 기반 응답 톤 자동 조정
|
## 구현 완료: 감정 기반 응답 톤 자동 조정
|
||||||
|
|
||||||
**완료일**: 2025-01-03
|
→ 상세: `troubleshooting/250103_감정_기반_응답_길이_제어_구현.md`
|
||||||
**커밋**: (푸시 전)
|
|
||||||
|
|
||||||
### 완료 사항
|
|
||||||
- ✅ `llm_service.py`에서 감정 분석 후 system_instruction 동적 생성 (227-233줄)
|
|
||||||
- ✅ single_strategies/compound_strategies로 감정-전략 매핑 (202-208줄)
|
|
||||||
- ✅ XML 구조화된 system_instruction을 context에 추가하여 gemini_handler에 전달
|
|
||||||
- ✅ 이모지 제거: remove_emoji로 모든 이모지 제거 (원칙 준수: 명시적 요청 시만 허용)
|
|
||||||
- ✅ 응답 길이 명시적 제어: emotion_length_map 추가, system_instruction에 길이 지시 포함 (210-220줄, 244줄)
|
|
||||||
|
|
||||||
### 구현 상세
|
|
||||||
|
|
||||||
**감정별 응답 길이 매핑** (`llm_service.py:210-220`):
|
|
||||||
```python
|
|
||||||
emotion_length_map = {
|
|
||||||
'fear': "짧게",
|
|
||||||
'anger': "중간",
|
|
||||||
'sadness': "중간",
|
|
||||||
'joy': "중간",
|
|
||||||
'happiness': "중간",
|
|
||||||
'surprise': "중간",
|
|
||||||
'disgust': "중간",
|
|
||||||
'neutral': "중간"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**system_instruction에 길이 지시 추가** (`llm_service.py:244`):
|
|
||||||
- 전략 텍스트와 함께 길이 지시 포함: "{strategy} {length_instruction} 응답하세요."
|
|
||||||
- 예: "공감과 이해를 담아 부드럽게 짧게 응답하세요." (fear 감정)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
82
journey/troubleshooting/250103_감정_기반_응답_길이_제어_구현.md
Normal file
82
journey/troubleshooting/250103_감정_기반_응답_길이_제어_구현.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
# 감정 기반 응답 길이 제어 구현
|
||||||
|
|
||||||
|
**날짜**: 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`
|
||||||
|
|
||||||
|
```python
|
||||||
|
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_문서_작성_원칙.md`: 문서 작성 원칙
|
||||||
|
- `315_테스트_작성_원칙.md`: 테스트 작성 원칙
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user