SSOT 원칙(JSON 먼저, MD 함께): 모든 워크플로우 JSON에 대응하는 MD 보조 문서 작성. 260319 rb8001 변경 영향 반영: - companyx_grounding_pipeline: skip_default_prompt로 영향 없음 (notes 추가) - diary_reflection_pipeline: prompt DB v3 + neutral 생략 적용됨 (notes 추가) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
108 lines
3.6 KiB
JSON
108 lines
3.6 KiB
JSON
{
|
|
"name": "robeing-admin-diary-reflection-pipeline",
|
|
"nodes": [
|
|
{
|
|
"parameters": {
|
|
"rule": {
|
|
"interval": [
|
|
{
|
|
"field": "cronExpression",
|
|
"expression": "0 2 * * *"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": "diary-001",
|
|
"name": "Daily at 2AM",
|
|
"type": "n8n-nodes-base.scheduleTrigger",
|
|
"typeVersion": 1.1,
|
|
"position": [200, 240]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"httpMethod": "POST",
|
|
"path": "admin/diary/trigger",
|
|
"options": {}
|
|
},
|
|
"id": "diary-002",
|
|
"name": "Manual Trigger",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"typeVersion": 1,
|
|
"position": [200, 440]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "const now = new Date();\nconst yesterday = new Date(now);\nyesterday.setDate(yesterday.getDate() - 1);\nconst dateStr = yesterday.toISOString().split('T')[0];\nreturn {\n date: dateStr,\n robeing_id: 'rb8001'\n};"
|
|
},
|
|
"id": "diary-003",
|
|
"name": "Set Yesterday Date",
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [460, 340]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"method": "POST",
|
|
"url": "=http://192.168.219.52:8001/api/diary/generate",
|
|
"sendBody": true,
|
|
"specifyBody": "json",
|
|
"jsonBody": "={\n \"date\": \"{{ $json.date }}\",\n \"robeing_id\": \"{{ $json.robeing_id }}\"\n}",
|
|
"options": {
|
|
"timeout": 300000
|
|
}
|
|
},
|
|
"id": "diary-004",
|
|
"name": "Generate Diary (rb8001)",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"typeVersion": 4.2,
|
|
"position": [700, 340]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"method": "GET",
|
|
"url": "=http://192.168.219.52:8001/api/diary/{{ $json.date }}",
|
|
"qs": {
|
|
"parameters": [
|
|
{
|
|
"name": "robeing_id",
|
|
"value": "rb8001"
|
|
}
|
|
]
|
|
},
|
|
"options": {}
|
|
},
|
|
"id": "diary-005",
|
|
"name": "Get Diary Content",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"typeVersion": 4.2,
|
|
"position": [940, 340]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"resource": "message",
|
|
"operation": "post",
|
|
"channel": "C07...",
|
|
"text": "=📜 *로빙 일기 ({{ $json.date }})*\\n\\n{{ $json.summary }}\\n\\n지배적 감정: {{ $json.dominant_emotion }}\\n\\n[대시보드에서 자세히 보기](http://192.168.219.45:3000/diary)",
|
|
"otherOptions": {}
|
|
},
|
|
"id": "diary-006",
|
|
"name": "Post to Slack",
|
|
"type": "n8n-nodes-base.slack",
|
|
"typeVersion": 2,
|
|
"position": [1180, 340]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Daily at 2AM": { "main": [[{ "node": "Set Yesterday Date", "type": "main", "index": 0 }]] },
|
|
"Manual Trigger": { "main": [[{ "node": "Set Yesterday Date", "type": "main", "index": 0 }]] },
|
|
"Set Yesterday Date": { "main": [[{ "node": "Generate Diary (rb8001)", "type": "main", "index": 0 }]] },
|
|
"Generate Diary (rb8001)": { "main": [[{ "node": "Get Diary Content", "type": "main", "index": 0 }]] },
|
|
"Get Diary Content": { "main": [[{ "node": "Post to Slack", "type": "main", "index": 0 }]] }
|
|
},
|
|
"settings": {
|
|
"notes": "260319: rb8001 /api/diary/generate 내부에서 llm_service.process_request()가 task_type=chat, context={}로 호출됨. 프롬프트 DB v3 활성 프롬프트가 system prompt로 주입되며, neutral 감정일 때 감정 constraints가 생략된다. 이전 하드코딩 프롬프트 대비 일기 톤에 변화 가능."
|
|
},
|
|
"pinData": {},
|
|
"meta": { "templateCredsSetupCompleted": true, "instanceId": "robeing-admin" }
|
|
}
|