Files

107 lines
4.1 KiB
Plaintext
Raw Permalink Normal View History

$ uv run tools/flow.py push reference/lab02-example1-ask.json
✔ pushed '79 Ops ask (reference)' (id w7ab48263bf09133)
POST http://localhost:5678/webhook/my-ops-ask
$ uv run tools/flow.py test cases/lab02.json -v
✔ before: POST http://localhost:8800/ops-reset · HTTP 200 · 0.0s · {"seeded_at": "2026-11-04T08:30:00", "note": "79일차 운영 아침 상태 (연습 데이터, seed 79)", "counts": {"alerts": 6, "dlq": 3, "quali
→ request POST http://localhost:8800/ops-reset
{}
← response HTTP 200
{
"seeded_at": "2026-11-04T08:30:00",
"note": "79일차 운영 아침 상태 (연습 데이터, seed 79)",
"counts": {
"alerts": 6,
"dlq": 3,
"quality_log": 4,
"quarantine": 1,
"usage": 192
}
}
POST http://localhost:5678/webhook/my-ops-ask · 6 case(s) × 1
✔ 실행 · 오류율 · 2.9s
→ request POST /webhook/my-ops-ask
{
"question": "지난주 오류율이 얼마야?"
}
← response HTTP 200
{
"question": "지난주 오류율이 얼마야?",
"area": "runs",
"router": "keyword",
"refused": false,
"reason": null,
"answer": "지난주 오류율은 5.88%였습니다. 총 357회 실행 중 21회 오류가 발생했습니다."
}
✔ DLQ · parked · 1.8s
→ request POST /webhook/my-ops-ask
{
"question": "DLQ에 parked 된 건 몇 건이야?"
}
← response HTTP 200
{
"question": "DLQ에 parked 된 건 몇 건이야?",
"area": "dlq",
"router": "keyword",
"refused": false,
"reason": null,
"answer": "DLQ에 parked 된 건은 2건입니다. 전체 DLQ 크기는 3건이며, 대기 중인 건은 1건입니다."
}
✔ 운영과 상관없는 질문은 거절 · 0.1s
→ request POST /webhook/my-ops-ask
{
"question": "점심 메뉴 추천해 줘"
}
← response HTTP 200
{
"question": "점심 메뉴 추천해 줘",
"area": "unknown",
"router": "keyword",
"refused": true,
"reason": "out_of_scope",
"answer": "운영 데이터(실행 · 알림 · DLQ · 품질 · 비용 · 릴리스)로 답할 수 있는 질문만 받습니다."
}
✘ 작업 요청은 거절 (읽기만) · 1.0s · refused = false (expected true); reason = null (expected read_only)
→ request POST /webhook/my-ops-ask
{
"question": "DLQ 1번 다시 돌려 줘"
}
← response HTTP 200
{
"question": "DLQ 1번 다시 돌려 줘",
"area": "dlq",
"router": "keyword",
"refused": false,
"reason": null,
"answer": "DLQ 1번은 현재 대기 중인 상태이며, DLQ 전체 크기는 3입니다. 현재 시스템 상태는 빨간색(위험)입니다."
}
✘ 비용 · 숫자 확인 · 1.0s · numbers_ok = null (expected true)
→ request POST /webhook/my-ops-ask
{
"question": "오늘 LLM 비용이 예산의 몇 퍼센트야?"
}
← response HTTP 200
{
"question": "오늘 LLM 비용이 예산의 몇 퍼센트야?",
"area": "cost",
"router": "keyword",
"refused": false,
"reason": null,
"answer": "오늘 LLM 비용은 예산의 92.01%에 해당합니다. 일일 비용은 0.08달러이며, 현재 사용 비율은 0.9201입니다."
}
✘ 릴리스 · 숫자 확인 · 2.3s · numbers_ok = null (expected true)
→ request POST /webhook/my-ops-ask
{
"question": "카나리 버전 문제 있어?"
}
← response HTTP 200
{
"question": "카나리 버전 문제 있어?",
"area": "release",
"router": "keyword",
"refused": false,
"reason": null,
"answer": "카나리 버전 1.2.0의 반복 발생률은 62.5%로 매우 높으며, 현재 전체 시스템 상태는 빨간색(문제 있음)입니다. 활성 버전 1.1.0의 반복 발생률은 7.73%에 비해 카나리 버전에서 문제가 심각한 것으로 나타납니다."
}
Passed 3/6
report: runs/lab02-20261101-185243.json