73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
# 프롬프트 동적 관리 시스템 계획
|
|
|
|
**날짜**: 2025-12-25
|
|
**작성자**: happybell80
|
|
**상태**: 미구현
|
|
|
|
**원칙 참조** (구현 전 필수 확인):
|
|
- `311_백엔드_구조_원칙.md`: 계층 분리, DB는 state 경유, 섹션 6-1 스키마 확인
|
|
- `312_문서_작성_원칙.md`: 핵심만 간결, 파일명:줄번호
|
|
- `315_테스트_원칙.md`: 테스트는 TDD로 진행 (Red → Green → Refactor)
|
|
|
|
---
|
|
|
|
## 목표
|
|
|
|
프롬프트 DB화를 통한 동적 변경 및 개인화 구현
|
|
|
|
---
|
|
|
|
## DB 스키마 설계
|
|
|
|
**테이블**: `prompt_templates`
|
|
- scope_level: 'global', 'robeing', 'user', 'task'
|
|
- scope_id: robeing_id, user_id, task_type 등
|
|
- prompt_type: 'system', 'chat', 'extract', 'calendar_confirm', 'ir_analysis' 등
|
|
- content: JSONB (템플릿 내용 + 변수 정의)
|
|
- version, is_active, created_at, updated_at
|
|
|
|
---
|
|
|
|
## 프롬프트 분류 기준
|
|
|
|
### 계층적 범위(Scope)
|
|
- Global: 모든 사용자 공통 기본 프롬프트
|
|
- Robeing: 특정 로빙 공통
|
|
- User: 사용자별 개인화
|
|
- Task: 작업 타입별
|
|
|
|
### 병합 로직
|
|
- Global → Robeing → User 순서로 조회
|
|
- 각 레벨별 개별 쿼리 후 애플리케이션에서 병합
|
|
|
|
---
|
|
|
|
## 구현 Phase
|
|
|
|
### Phase 1: DB 스키마 및 기본 인프라 (TDD 진행)
|
|
- `rb8001/app/state/repositories/prompt_repository.py` (신규): prompt_templates 테이블 생성, PromptService 클래스 (조회, 병합, 캐싱)
|
|
- 기본 프롬프트 마이그레이션 (하드코딩 → DB)
|
|
|
|
### Phase 2: 핵심 프롬프트 DB화
|
|
- `rb8001/app/services/llm/gemini_handler.py`, `rb8001/app/services/llm/llm_service.py`: 시스템 프롬프트 DB 조회로 변경
|
|
- 작업 타입별 프롬프트 (chat, extract, calendar_confirm) DB화
|
|
- 폴백 로직: DB 조회 실패 시 기존 `_get_system_prompt()` 메서드 사용
|
|
|
|
### Phase 3: 개인화 및 동적 프롬프트
|
|
- `rb8001/app/services/llm/prompt_service.py` (신규): 사용자별 프롬프트 오버라이드, 감정 기반 동적 프롬프트 조합, 변수 치환 시스템
|
|
|
|
### Phase 4: A/B 테스트 및 모니터링
|
|
- 프롬프트 버전 관리, A/B 테스트 지원, 롤백 기능
|
|
|
|
---
|
|
|
|
## 참고 문서
|
|
|
|
- `book/300_architecture/311_백엔드_구조_원칙.md`
|
|
- `book/300_architecture/312_문서_작성_원칙.md`
|
|
- `book/300_architecture/315_테스트_원칙.md`
|
|
- `book/300_architecture/313_Gemini_프롬프트_설계_원칙.md`
|
|
- `../ideas/250828_dynamic_system_prompt_memory.md`
|
|
- `troubleshooting/250806_happybell80_동적프롬프트구현.md` - 동적 프롬프트 구현 기록
|
|
- `book/300_architecture/311_백엔드_구조_원칙.md` - 계층 분리 원칙
|