Update addressing plan: add v2 complex emotion strategy

- Fix: remove 'emotion-agnostic for position' (v1 limitation)
- Add: v2 5-level addressing (복합 감정 기반)
- Add: top_emotions + entropy + cumulative emotion logic
- Prevent: addressing overuse (first sentence only)
This commit is contained in:
Claude-51124 2025-12-04 16:36:09 +09:00
parent 15b954fb9f
commit ded8fa6b36

View File

@ -1,8 +1,9 @@
# 감정 기반 호칭 시스템 구현 # 감정 기반 호칭 시스템 구현
**작성일**: 2025-12-04 **작성일**: 2025-12-04
**수정일**: 2025-12-04 (복합 감정 기반 개선안 추가)
**작성자**: happybell80 **작성자**: happybell80
**상태**: 계획 **상태**: v1 구현 완료, v2 계획
--- ---
@ -32,11 +33,11 @@
이유: 일관성, 속도, 예측 가능성, 제어 용이 이유: 일관성, 속도, 예측 가능성, 제어 용이
LLM 역할: 결정된 호칭 자연스럽게 사용만 LLM 역할: 결정된 호칭 자연스럽게 사용만
### 호칭 결정 규칙 ### 호칭 결정 규칙 (v1 - 구현 완료)
| 조건 | 호칭 | | 조건 | 호칭 |
|------|------| |------|------|
| `metadata->>'position'` 있음 | "대표님", "이사님" (감정 무관) | | `metadata->>'position'` 있음 | "대표님", "이사님" |
| 긍정 감정 + position 없음 | `metadata->>'nickname'` → "joann님" | | 긍정 감정 + position 없음 | `metadata->>'nickname'` → "joann님" |
| 부정 감정 + position 없음 | `user.name` → "이고은님" | | 부정 감정 + position 없음 | `user.name` → "이고은님" |
| nickname 없음 | `user.name` 성 제외 → "고은님" | | nickname 없음 | `user.name` 성 제외 → "고은님" |
@ -45,6 +46,8 @@ LLM 역할: 결정된 호칭 자연스럽게 사용만
**부정 감정**: fear, anger, sadness, disgust **부정 감정**: fear, anger, sadness, disgust
**감정 소스**: emotion_readings 최근 10분 평균 (현재 메시지 가중치 2배) **감정 소스**: emotion_readings 최근 10분 평균 (현재 메시지 가중치 2배)
**v1 문제점**: 직책 있으면 감정 무관 → 상황별 미묘한 차이 표현 불가
## 구현 (계층 분리 원칙 준수) ## 구현 (계층 분리 원칙 준수)
### 계층 구조 ### 계층 구조
@ -122,4 +125,33 @@ curl -X POST http://192.168.219.52:8001/api/message \
- [[tables.md]](../book/300_architecture/database/tables.md) - [[tables.md]](../book/300_architecture/database/tables.md)
- [[230_감정윤리_필터]](../book/200_core_design/230_감정윤리_필터_LLM후처리와_정체성.md) - [[230_감정윤리_필터]](../book/200_core_design/230_감정윤리_필터_LLM후처리와_정체성.md)
- [[311_FastAPI_구조_원칙]](../book/300_architecture/311_FastAPI_구조_원칙.md) - [[311_FastAPI_구조_원칙]](../book/300_architecture/311_FastAPI_구조_원칙.md)
- [[251204_addressing_test_report]](251204_addressing_test_report.md)
---
## 개선 계획 (v2) - 복합 감정 기반
### 배경
v1에서 직책 있으면 감정 무관 → 상황별 미묘한 차이 표현 불가
### 복합 감정 5단계 호칭 (직책 + 감정 조합)
| 감정 상태 | 호칭 | 예시 |
|----------|------|------|
| 매우 부정 (fear+sadness, entropy 낮음) | **김종태 이사님** | "힘들고 불안해요" |
| 부정 (anger/disgust 단독) | **이사님** | "화나요" |
| 중립 (neutral 또는 entropy 높음) | **이사님** | "좋긴 한데..." |
| 긍정 (happiness 단독 0.5-0.9) | **종태 이사님** | "완전 좋아요!" |
| 매우 긍정 (happiness 0.9+, 누적 긍정) | **종태님** | "최고예요!" (10회차) |
### 구현 변경
- `addressing_service.py`: top_emotions + entropy + 누적 감정 활용 (약 30-40줄 수정)
- `llm_service.py`: system_instruction에 "호칭은 첫 문장 1회만" 추가 (호칭 남발 방지)
### 기대 효과
1. 감정 미묘함 반영 (복합 감정 패턴)
2. 호칭 변동 완화 (entropy로 확신도 반영)
3. 상황별 거리감 조절 (스트레스/갈등/협업/잡담)
4. 관계 진화 표현 (시간 경과 시 친밀화)
5. 오판 보완 (top-p 70% 안정성)