docs: rb8001 응답 품질 트러블슈팅 종결 — 워크로그 작성, E2E 검증 통과
재현 질문셋 4건 전수 통과: 톤 과장 해소, 문맥 유지, 과잉 제안 제거 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4903acdbee
commit
0e1ea74de6
@ -4,13 +4,15 @@ tags: [robeing, rb8001, prompt, intent, context, rag, troubleshooting]
|
||||
|
||||
# rb8001 프롬프트·의도분석·문맥응답 품질 문제 오픈
|
||||
|
||||
**상태**: 오픈
|
||||
**관측일**: 2026-03-17
|
||||
**상태**: 종결 (2026-03-19)
|
||||
**종결 근거**: 시스템 프롬프트 v3 교체(과잉 서비스 제거), OpenAI 대화 이력 전달(문맥 유실 해소), neutral 감정 constraints 생략. 재현 질문셋 4건 전수 통과. 상세는 [수정 워크로그](../worklog/260319_rb8001_응답품질_톤과장_문맥유실_수정_및_검증완료.md) 참조.
|
||||
**관측일**: 2026-03-17
|
||||
**범위**: Slack 실사용 경로의 일반 대화, Company X RAG 질문, 후속질문 응답 품질
|
||||
|
||||
## 관련 문서
|
||||
- [rb8001 응답 품질 톤 과장·문맥 유실 전수 조사 리서치](../research/260319_rb8001_응답품질_톤과장_문맥유실_전수조사_리서치.md)
|
||||
- [rb8001 응답 품질 수정 계획](../plans/260319_rb8001_응답품질_톤과장_문맥유실_수정계획.md)
|
||||
- [rb8001 응답 품질 수정 워크로그](../worklog/260319_rb8001_응답품질_톤과장_문맥유실_수정_및_검증완료.md)
|
||||
- [Company X RAG 답변 합성 회귀](./260312_companyx_rag_answer_composition_regression.md)
|
||||
- [rb8001 Slack Signing Secret 오값 복구 및 실유입 검증](../worklog/260317_rb8001_slack_signing_secret_오값복구_및_실유입검증.md)
|
||||
- [의도 파싱 greeting/context followup fix](./251122_intent_parsing_greeting_context_followup_fix.md)
|
||||
|
||||
80
journey/worklog/260319_rb8001_응답품질_톤과장_문맥유실_수정_및_검증완료.md
Normal file
80
journey/worklog/260319_rb8001_응답품질_톤과장_문맥유실_수정_및_검증완료.md
Normal file
@ -0,0 +1,80 @@
|
||||
---
|
||||
tags: [rb8001, prompt, tone, context, quality, worklog]
|
||||
---
|
||||
|
||||
# rb8001 응답 품질 — 톤 과장·문맥 유실 수정 및 검증 완료
|
||||
|
||||
## 관련 문서
|
||||
- [트러블슈팅: rb8001 프롬프트·의도분석·문맥응답 품질 문제](../troubleshooting/260317_rb8001_prompt_intent_context_response_quality_문제오픈.md)
|
||||
- [리서치: 톤 과장·문맥 유실 전수 조사](../research/260319_rb8001_응답품질_톤과장_문맥유실_전수조사_리서치.md)
|
||||
- [계획: 응답 품질 수정 계획](../plans/260319_rb8001_응답품질_톤과장_문맥유실_수정계획.md)
|
||||
|
||||
## 완료 요약
|
||||
|
||||
3단계 수정을 실행하여 톤 과장·문맥 유실·과잉 제안 문제를 해소했습니다.
|
||||
|
||||
1. **시스템 프롬프트 v3 교체** (DB만, 배포 불필요): 과잉 서비스 유도 문구 제거, 간결 응답 원칙 추가
|
||||
2. **대화 이력 전달** (llm_service.py): `recent_conversations` → `previous_messages` 변환 추가. OpenClaw `assemble()` 패턴 참고.
|
||||
3. **neutral 감정 constraints 생략** (llm_service.py): neutral/빈 감정에서 감정 constraints 자체를 생략
|
||||
|
||||
## 코드 반영 내용
|
||||
|
||||
- `app/services/llm/llm_service.py`:
|
||||
- `recent_conversations` → `previous_messages` 변환 (최근 5건)
|
||||
- `depression_risk` 사전 조회로 중복 호출 제거
|
||||
- neutral 감정 판정 시 `system_instruction` 빈 문자열로 설정
|
||||
- DB: `system_chat_openai` v3 활성화 (id=11)
|
||||
- rb8001 commit: `6123063`
|
||||
|
||||
## E2E 검증 결과
|
||||
|
||||
### Before (수정 전)
|
||||
|
||||
| 질문 | 응답 | 문제 |
|
||||
|------|------|------|
|
||||
| `로빙?` | `사용자님, 로빙입니다. 어떻게 도와드릴까요?` | 양호 |
|
||||
| `오늘 날씨는 어때?` | 5줄 — 준비물, 겉옷 등 과잉 안내 | 과잉 |
|
||||
| `난 지금 서울이야` | 7줄 — 투자자 추천, PDF 분석 나열 | 과잉 제안 |
|
||||
| `내가 지금 어디라고?` | 6줄 — 위치 접근 불가, 안전 문제 | 문맥 유실 |
|
||||
|
||||
### After (수정 후)
|
||||
|
||||
| 질문 | 응답 | 판정 |
|
||||
|------|------|------|
|
||||
| `로빙?` | `대표님, 네 말씀 들었어요 — 로빙입니다.` | ✅ 1문장 |
|
||||
| `오늘 날씨는 어때?` | `대표님, 현재 위치를 알려주시면 오늘 날씨를 알려드리겠습니다.` | ✅ 1문장 |
|
||||
| `난 지금 서울이야` | `대표님, 알겠습니다 — 서울에 계시는군요.` | ✅ 1문장, 과잉 제안 없음 |
|
||||
| `내가 지금 어디라고?` | `대표님, 지금 서울에 계시다고 하셨어요.` | ✅ 직전 맥락 유지 |
|
||||
|
||||
## JWT E2E 테스트 방법
|
||||
|
||||
```bash
|
||||
# 컨테이너 내부에서 테스트용 JWT 발급
|
||||
docker exec rb8001 python3 -c "
|
||||
import jwt, os
|
||||
secret = os.getenv('JWT_SECRET_KEY')
|
||||
token = jwt.encode({'sub': '<valid-user-uuid>', 'username': 'testuser'}, secret, algorithm='HS256')
|
||||
print(token)
|
||||
"
|
||||
|
||||
# /api/message 호출
|
||||
curl -s http://127.0.0.1:8001/api/message \
|
||||
-H 'Authorization: Bearer <TOKEN>' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"text":"질문"}'
|
||||
```
|
||||
|
||||
**주의:** 테스트 시 DB에 실제 존재하는 user UUID를 사용해야 `recent_conversations`가 로드됩니다.
|
||||
|
||||
## 닫힘 기준 충족 확인
|
||||
|
||||
- [x] `로빙?` — 1문장 인사
|
||||
- [x] `오늘 날씨는 어때?` — 과잉 안내 없이 짧은 안내
|
||||
- [x] `난 지금 서울이야` — 과잉 제안 없이 확인 응답
|
||||
- [x] `내가 지금 어디라고?` — 직전 맥락(서울) 유지
|
||||
- [x] DB 프롬프트 v3 반영 확인 (로그: `prompt_db_injected version=v3`)
|
||||
- [x] RAG 경로 영향 없음 (skip_default_prompt 경로 미변경)
|
||||
|
||||
## 결론
|
||||
|
||||
트러블슈팅 `260317_rb8001_prompt_intent_context_response_quality_문제오픈.md`는 종결합니다.
|
||||
Loading…
x
Reference in New Issue
Block a user