# diary_reflection_pipeline 워크플로우 ## 목적 매일 새벽 2시에 전날의 로빙 일기를 자동 생성하고 Slack에 요약을 게시한다. 수동 트리거도 지원한다. ## 흐름 ``` Daily at 2AM ─┐ Manual Trigger ─┤→ Set Yesterday Date → Generate Diary (rb8001) → Get Diary Content → Post to Slack ``` ## 주요 노드 | 노드 | 설명 | |---|---| | Daily at 2AM | cron `0 2 * * *` | | Manual Trigger | `POST /admin/diary/trigger` (수동 실행용) | | Set Yesterday Date | 전날 날짜(YYYY-MM-DD) 계산 | | Generate Diary (rb8001) | `POST :8001/api/diary/generate` (timeout 300초) | | Get Diary Content | `GET :8001/api/diary/{date}?robeing_id=rb8001` | | Post to Slack | 일기 요약 + 감정 + 대시보드 링크를 Slack에 게시 | ## 엔드포인트 - 인바운드: `POST /admin/diary/trigger` (n8n webhook, 수동) - 아웃바운드: `POST http://localhost:8001/api/diary/generate` - 아웃바운드: `GET http://localhost:8001/api/diary/{date}` - 아웃바운드: Slack `chat.postMessage` ## 260319 변경 영향 이 워크플로우는 rb8001의 `/api/diary/generate`를 호출한다. 내부적으로 `llm_service.process_request()`가 `task_type=chat`, `context={}`로 실행되므로: - **프롬프트 DB v3 주입: 적용됨** -- DB `prompt_versions` 활성 프롬프트가 일기 생성 시 system prompt로 주입된다. - **neutral 감정 constraints 생략: 적용됨** -- 일기 생성 시 감정이 neutral이면 감정 constraints가 생략된다. - 이전(~260318)에는 하드코딩 프롬프트 + 모든 감정에 constraints 주입이었으므로, 일기 톤에 변화가 있을 수 있다. ## 관련 문서 - [service_health_check](./service_health_check.md)