DOCS/workflow/05_admin/diary_reflection_pipeline.md
happybell80 45847403fe docs: workflow Phase 1 정리 — 레거시 이동, n8n 제거, IP 하드코딩 제거
- 레거시 .md 2건(slack_basic_dialogue, service_health_check)을 _archive/로 이동
- n8n .json 파일 18건을 _archive/로 이동
- README.md 전면 재작성: n8n 전제 제거, 현행 아키텍처(APScheduler DB + SKILL.md) 반영
- 구 IP(192.168.219.52)를 localhost로 교체 (infrastructure-ssot-principle 준수)

Refs: DOCS#8

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 07:48:39 +09:00

38 lines
1.7 KiB
Markdown

# 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)