docs: 프롬프트 DB 폐루프 미연결 트러블슈팅 종결 처리
P1 구현 워크로그 작성, 트러블슈팅 종결 상태 반영 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
49cc3b2144
commit
f62d48283d
@ -9,7 +9,11 @@ tags: [rb8001, prompt-db, self-improvement, tracking, troubleshooting]
|
||||
**관련 파일**: `rb8001/app/services/message_tracking_service.py`, `rb8001/app/router/message_endpoint.py`, `rb8001/app/state/prompt_management_repository.py`
|
||||
**상위 원칙**: [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md)
|
||||
|
||||
**상태**: 종결 (2026-03-19)
|
||||
**종결 근거**: P1 폐루프 연결 구현 완료. DB 활성 프롬프트가 응답 생성 전에 주입됨. v2 활성화 시 실제 응답 변화 확인. 테스트 7건 통과, 24 서버 배포 검증 완료. 상세는 [P1 구현 워크로그](../worklog/260319_프롬프트DB_폐루프_P1_구현_및_검증완료.md) 참조.
|
||||
|
||||
## 관련 문서
|
||||
- [프롬프트 DB 폐루프 P1 구현 및 검증 완료](../worklog/260319_프롬프트DB_폐루프_P1_구현_및_검증완료.md)
|
||||
- [프롬프트 DB 폐루프 및 하드코딩 잔존 전수 조사 리서치](../research/260319_프롬프트DB_폐루프_및_하드코딩_잔존_전수조사_리서치.md)
|
||||
- [프롬프트 동적 관리 시스템 계획](../plans/251225_프롬프트_동적관리_계획.md)
|
||||
- [자기개선 루프 DB/서비스 구현 실행계획](../plans/260303_자기개선루프_DB_구현_실행계획.md)
|
||||
|
||||
40
journey/worklog/260319_프롬프트DB_폐루프_P1_구현_및_검증완료.md
Normal file
40
journey/worklog/260319_프롬프트DB_폐루프_P1_구현_및_검증완료.md
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
tags: [rb8001, prompt-db, closed-loop, worklog]
|
||||
---
|
||||
|
||||
# 프롬프트 DB 폐루프 P1 구현 및 검증 완료
|
||||
|
||||
## 관련 문서
|
||||
- [프롬프트 DB 응답생성 폐루프 미연결](../troubleshooting/260310_프롬프트DB_응답생성_폐루프_미연결.md)
|
||||
- [프롬프트 DB 폐루프 및 하드코딩 잔존 전수 조사 리서치](../research/260319_프롬프트DB_폐루프_및_하드코딩_잔존_전수조사_리서치.md)
|
||||
- [프롬프트 동적 관리 시스템 계획](../plans/251225_프롬프트_동적관리_계획.md)
|
||||
|
||||
## 완료 요약
|
||||
- `llm_service.py`의 `process_request()` 진입 시 DB 활성 프롬프트를 조회하여 `context['db_system_prompt']`로 주입하는 폐루프를 연결했습니다.
|
||||
- `openai_handler.py`, `gemini_handler.py` 모두 `db_system_prompt`가 있으면 하드코딩 대신 사용합니다.
|
||||
- P1 프롬프트 2건(`system_chat_openai`, `system_chat_gemini`)을 DB에 v1으로 적재했습니다.
|
||||
- TTL 60초 메모리 캐시로 DB 부하를 방지합니다.
|
||||
- `skip_default_prompt` 경로(RAG 등)는 영향 없음을 테스트로 확인했습니다.
|
||||
|
||||
## 코드 반영 내용
|
||||
- `app/services/llm/llm_service.py`: `_get_active_prompt_from_db()` 캐시 함수 추가, `process_request()` 내 DB 프롬프트 주입 로직
|
||||
- `app/services/llm/openai_handler.py`: `db_system_prompt` 우선 사용 (chat, stream_chat 두 경로)
|
||||
- `app/services/llm/gemini_handler.py`: `db_system_prompt` 우선 사용 (chat 두 경로)
|
||||
- `scripts/seed_p1_prompts.py`: P1 프롬프트 DB 적재 스크립트
|
||||
- `tests/test_prompt_db_closed_loop.py`: 7건 테스트
|
||||
|
||||
## 검증 결과
|
||||
- 단위 테스트: 7 passed (캐시 히트, 캐시 만료, DB 실패, DB 없음, DB 주입, fallback, RAG 비영향)
|
||||
- DB 적재: `system_chat_openai` v1 active (id=7), `system_chat_gemini` v1 active (id=8)
|
||||
- 폐루프 검증: v2 생성 → 활성화 → 캐시 비움 → DB에서 v2 프롬프트 읽힘 → v1 복원 정상
|
||||
- 배포: 24 서버 rb8001 재빌드 후 health 정상
|
||||
- rb8001 commit: `2bda17f`
|
||||
|
||||
## 닫힘 기준 충족 확인
|
||||
- [x] 최소 1개 운영 경로에서 활성 프롬프트 버전이 응답 생성 전에 실제로 주입된다
|
||||
- [x] DB에서 활성 버전을 바꾸면 실제 응답이 바뀐다 (v2 TEST-V2 검증)
|
||||
- [x] DB 조회 실패 시 하드코딩 fallback 정상 동작
|
||||
- [x] RAG 경로 영향 없음
|
||||
|
||||
## 결론
|
||||
- 트러블슈팅 `260310_프롬프트DB_응답생성_폐루프_미연결.md`는 종결합니다.
|
||||
Loading…
x
Reference in New Issue
Block a user