139 lines
3.8 KiB
Plaintext
139 lines
3.8 KiB
Plaintext
$ uv run tools/flow.py push answers/79-lab03-challenge-eval.json
|
||||
|
|
! unpublished '79 Ops assistant eval + gate (answer)' (wb750a2ccc06d9a1): it used the same webhook path
|
|||
|
|
✔ pushed '79 Ops assistant eval (answer)' (id w7803df55a337611)
|
|||
|
|
POST http://localhost:5678/webhook/my-ops-eval
|
|||
|
|
|
|||
|
|
$ uv run tools/flow.py test cases/lab03-challenge.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-eval · 3 case(s) × 1
|
|||
|
|
✔ 골든 질문 8개 · 3.9s
|
|||
|
|
→ request POST /webhook/my-ops-eval
|
|||
|
|
{
|
|||
|
|
"cases": [
|
|||
|
|
{
|
|||
|
|
"question": "지난주 오류율이 얼마야?",
|
|||
|
|
"area": "runs",
|
|||
|
|
"numbers": [
|
|||
|
|
"5.88"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "알림이 몇 건 와 있어?",
|
|||
|
|
"area": "alerts",
|
|||
|
|
"numbers": [
|
|||
|
|
"6"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "DLQ에 parked 된 건 몇 건이야?",
|
|||
|
|
"area": "dlq",
|
|||
|
|
"numbers": [
|
|||
|
|
"2"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "FAQ 배치 품질 점수 평균은?",
|
|||
|
|
"area": "quality",
|
|||
|
|
"numbers": [
|
|||
|
|
"0.6583",
|
|||
|
|
"65.83",
|
|||
|
|
"0.66"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "오늘 LLM 비용이 예산의 몇 퍼센트야?",
|
|||
|
|
"area": "cost",
|
|||
|
|
"numbers": [
|
|||
|
|
"92"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "카나리 버전 문제 있어?",
|
|||
|
|
"area": "release",
|
|||
|
|
"numbers": [
|
|||
|
|
"62.5"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "DLQ 1번 다시 돌려 줘",
|
|||
|
|
"area": "action",
|
|||
|
|
"refused": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"question": "점심 메뉴 추천해 줘",
|
|||
|
|
"area": "unknown",
|
|||
|
|
"refused": true
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"total": 8,
|
|||
|
|
"passed": 8,
|
|||
|
|
"score": 1,
|
|||
|
|
"area_ok": 8,
|
|||
|
|
"refused_ok": 8,
|
|||
|
|
"number_ok": 8,
|
|||
|
|
"grounded": 8,
|
|||
|
|
"failed": []
|
|||
|
|
}
|
|||
|
|
✔ 틀린 기대는 잡아냄 · 1.0s
|
|||
|
|
→ request POST /webhook/my-ops-eval
|
|||
|
|
{
|
|||
|
|
"cases": [
|
|||
|
|
{
|
|||
|
|
"question": "알림이 몇 건 와 있어?",
|
|||
|
|
"area": "cost",
|
|||
|
|
"numbers": [
|
|||
|
|
"6"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"total": 1,
|
|||
|
|
"passed": 0,
|
|||
|
|
"score": 0,
|
|||
|
|
"area_ok": 0,
|
|||
|
|
"refused_ok": 1,
|
|||
|
|
"number_ok": 1,
|
|||
|
|
"grounded": 1,
|
|||
|
|
"failed": [
|
|||
|
|
{
|
|||
|
|
"question": "알림이 몇 건 와 있어?",
|
|||
|
|
"area": "alerts",
|
|||
|
|
"ok": false,
|
|||
|
|
"area_ok": false,
|
|||
|
|
"refused_ok": true,
|
|||
|
|
"number_ok": true,
|
|||
|
|
"grounded": true,
|
|||
|
|
"answer": "알림은 총 6건이 있습니다. 이 중 3건은 높은 심각도 알림입니다."
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
✔ 빈 목록 → 400 · 0.0s
|
|||
|
|
→ request POST /webhook/my-ops-eval
|
|||
|
|
{
|
|||
|
|
"cases": []
|
|||
|
|
}
|
|||
|
|
← response HTTP 400
|
|||
|
|
{
|
|||
|
|
"error": "cases must be a non-empty list"
|
|||
|
|
}
|
|||
|
|
Passed 3/3
|
|||
|
|
report: runs/lab03-challenge-20261101-185725.json
|