423 lines
10 KiB
Plaintext
423 lines
10 KiB
Plaintext
$ uv run tools/flow.py push answers/77-lab01-challenge2-steps-cost.json
|
||
! unpublished '77 Log report + days and releases (answer)' (w5ee2fc1d2930303): it used the same webhook path
|
||
✔ pushed '77 Log report + steps and cost (answer)' (id w0c1a020313bbffc)
|
||
POST http://localhost:5678/webhook/my-log-report
|
||
|
||
$ uv run tools/flow.py test cases/lab01-challenge2.json -v
|
||
POST http://localhost:5678/webhook/my-log-report · 5 case(s) × 1
|
||
✔ 두 주 · 단계별 p95 · 0.9s · 596 calls · $0.078360
|
||
→ request POST /webhook/my-log-report
|
||
{
|
||
"from": "2026-10-19",
|
||
"to": "2026-10-30"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"total": 666,
|
||
"errors": 21,
|
||
"error_rate": 0.0315,
|
||
"p50_ms": 1205,
|
||
"p95_ms": 2537,
|
||
"by_route": {
|
||
"자동 답변": 591,
|
||
"담당자 연결": 34,
|
||
"오류": 21,
|
||
"잠시 후": 20
|
||
},
|
||
"by_day": {
|
||
"2026-10-19": {
|
||
"total": 73,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-20": {
|
||
"total": 57,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-21": {
|
||
"total": 60,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-22": {
|
||
"total": 55,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-23": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-26": {
|
||
"total": 70,
|
||
"errors": 16,
|
||
"error_rate": 0.2286
|
||
},
|
||
"2026-10-27": {
|
||
"total": 62,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-28": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-29": {
|
||
"total": 97,
|
||
"errors": 5,
|
||
"error_rate": 0.0515
|
||
},
|
||
"2026-10-30": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
}
|
||
},
|
||
"by_release": {
|
||
"1.0.0": {
|
||
"answers": 402,
|
||
"repeats": 19,
|
||
"repeat_rate": 0.0473
|
||
},
|
||
"1.1.0": {
|
||
"answers": 181,
|
||
"repeats": 14,
|
||
"repeat_rate": 0.0773
|
||
},
|
||
"1.2.0": {
|
||
"answers": 8,
|
||
"repeats": 5,
|
||
"repeat_rate": 0.625
|
||
}
|
||
},
|
||
"steps": {
|
||
"faq_ms": {
|
||
"runs": 646,
|
||
"p50": 27,
|
||
"p95": 39
|
||
},
|
||
"answer_ms": {
|
||
"runs": 596,
|
||
"p50": 1179,
|
||
"p95": 2509
|
||
}
|
||
},
|
||
"cost_usd": 0.07836,
|
||
"cost_per_run": 0.000118,
|
||
"llm_calls": 596
|
||
}
|
||
✔ 두 주 · 단계마다 잰 실행 수 · 0.1s · 596 calls · $0.078360
|
||
→ request POST /webhook/my-log-report
|
||
{
|
||
"from": "2026-10-19",
|
||
"to": "2026-10-30"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"total": 666,
|
||
"errors": 21,
|
||
"error_rate": 0.0315,
|
||
"p50_ms": 1205,
|
||
"p95_ms": 2537,
|
||
"by_route": {
|
||
"자동 답변": 591,
|
||
"담당자 연결": 34,
|
||
"오류": 21,
|
||
"잠시 후": 20
|
||
},
|
||
"by_day": {
|
||
"2026-10-19": {
|
||
"total": 73,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-20": {
|
||
"total": 57,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-21": {
|
||
"total": 60,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-22": {
|
||
"total": 55,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-23": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-26": {
|
||
"total": 70,
|
||
"errors": 16,
|
||
"error_rate": 0.2286
|
||
},
|
||
"2026-10-27": {
|
||
"total": 62,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-28": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-29": {
|
||
"total": 97,
|
||
"errors": 5,
|
||
"error_rate": 0.0515
|
||
},
|
||
"2026-10-30": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
}
|
||
},
|
||
"by_release": {
|
||
"1.0.0": {
|
||
"answers": 402,
|
||
"repeats": 19,
|
||
"repeat_rate": 0.0473
|
||
},
|
||
"1.1.0": {
|
||
"answers": 181,
|
||
"repeats": 14,
|
||
"repeat_rate": 0.0773
|
||
},
|
||
"1.2.0": {
|
||
"answers": 8,
|
||
"repeats": 5,
|
||
"repeat_rate": 0.625
|
||
}
|
||
},
|
||
"steps": {
|
||
"faq_ms": {
|
||
"runs": 646,
|
||
"p50": 27,
|
||
"p95": 39
|
||
},
|
||
"answer_ms": {
|
||
"runs": 596,
|
||
"p50": 1179,
|
||
"p95": 2509
|
||
}
|
||
},
|
||
"cost_usd": 0.07836,
|
||
"cost_per_run": 0.000118,
|
||
"llm_calls": 596
|
||
}
|
||
✔ 월요일 · FAQ 단계가 느림 · 0.2s · 50 calls · $0.006450
|
||
→ request POST /webhook/my-log-report
|
||
{
|
||
"from": "2026-10-26",
|
||
"to": "2026-10-26"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"total": 70,
|
||
"errors": 16,
|
||
"error_rate": 0.2286,
|
||
"p50_ms": 1082,
|
||
"p95_ms": 2468,
|
||
"by_route": {
|
||
"오류": 16,
|
||
"자동 답변": 50,
|
||
"담당자 연결": 4
|
||
},
|
||
"by_day": {
|
||
"2026-10-26": {
|
||
"total": 70,
|
||
"errors": 16,
|
||
"error_rate": 0.2286
|
||
}
|
||
},
|
||
"by_release": {
|
||
"1.0.0": {
|
||
"answers": 50,
|
||
"repeats": 1,
|
||
"repeat_rate": 0.02
|
||
}
|
||
},
|
||
"steps": {
|
||
"faq_ms": {
|
||
"runs": 70,
|
||
"p50": 31,
|
||
"p95": 1000
|
||
},
|
||
"answer_ms": {
|
||
"runs": 50,
|
||
"p50": 1169,
|
||
"p95": 2482
|
||
}
|
||
},
|
||
"cost_usd": 0.00645,
|
||
"cost_per_run": 9.2e-05,
|
||
"llm_calls": 50
|
||
}
|
||
✔ 두 주 · 비용 · 0.1s · 596 calls · $0.078360
|
||
→ request POST /webhook/my-log-report
|
||
{
|
||
"from": "2026-10-19",
|
||
"to": "2026-10-30"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"total": 666,
|
||
"errors": 21,
|
||
"error_rate": 0.0315,
|
||
"p50_ms": 1205,
|
||
"p95_ms": 2537,
|
||
"by_route": {
|
||
"자동 답변": 591,
|
||
"담당자 연결": 34,
|
||
"오류": 21,
|
||
"잠시 후": 20
|
||
},
|
||
"by_day": {
|
||
"2026-10-19": {
|
||
"total": 73,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-20": {
|
||
"total": 57,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-21": {
|
||
"total": 60,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-22": {
|
||
"total": 55,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-23": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-26": {
|
||
"total": 70,
|
||
"errors": 16,
|
||
"error_rate": 0.2286
|
||
},
|
||
"2026-10-27": {
|
||
"total": 62,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-28": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
},
|
||
"2026-10-29": {
|
||
"total": 97,
|
||
"errors": 5,
|
||
"error_rate": 0.0515
|
||
},
|
||
"2026-10-30": {
|
||
"total": 64,
|
||
"errors": 0,
|
||
"error_rate": 0
|
||
}
|
||
},
|
||
"by_release": {
|
||
"1.0.0": {
|
||
"answers": 402,
|
||
"repeats": 19,
|
||
"repeat_rate": 0.0473
|
||
},
|
||
"1.1.0": {
|
||
"answers": 181,
|
||
"repeats": 14,
|
||
"repeat_rate": 0.0773
|
||
},
|
||
"1.2.0": {
|
||
"answers": 8,
|
||
"repeats": 5,
|
||
"repeat_rate": 0.625
|
||
}
|
||
},
|
||
"steps": {
|
||
"faq_ms": {
|
||
"runs": 646,
|
||
"p50": 27,
|
||
"p95": 39
|
||
},
|
||
"answer_ms": {
|
||
"runs": 596,
|
||
"p50": 1179,
|
||
"p95": 2509
|
||
}
|
||
},
|
||
"cost_usd": 0.07836,
|
||
"cost_per_run": 0.000118,
|
||
"llm_calls": 596
|
||
}
|
||
✔ 빈 기간 · 비용 0 · 0.0s · 0 calls · $0.000000
|
||
→ request POST /webhook/my-log-report
|
||
{
|
||
"from": "2026-11-02",
|
||
"to": "2026-11-06"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"total": 0,
|
||
"errors": 0,
|
||
"error_rate": 0,
|
||
"p50_ms": 0,
|
||
"p95_ms": 0,
|
||
"by_route": {},
|
||
"by_day": {},
|
||
"by_release": {},
|
||
"steps": {
|
||
"faq_ms": {
|
||
"runs": 0,
|
||
"p50": 0,
|
||
"p95": 0
|
||
},
|
||
"answer_ms": {
|
||
"runs": 0,
|
||
"p50": 0,
|
||
"p95": 0
|
||
}
|
||
},
|
||
"cost_usd": 0,
|
||
"cost_per_run": 0,
|
||
"llm_calls": 0
|
||
}
|
||
Passed 5/5
|
||
report: runs/lab01-challenge2-20261031-074945.json
|
||
|
||
$ uv run tools/flow.py test cases/lab01.json
|
||
POST http://localhost:5678/webhook/my-log-report · 5 case(s) × 1
|
||
✔ 두 주 전체 · 0.1s · 596 calls · $0.078360
|
||
✔ 두 주 · 갈래별 · 0.1s · 596 calls · $0.078360
|
||
✔ 첫 주 · 0.1s · 292 calls · $0.038550
|
||
✔ 둘째 주 · 0.1s · 304 calls · $0.039810
|
||
✔ 10월 26일 하루 · 0.0s · 50 calls · $0.006450
|
||
Passed 5/5
|
||
report: runs/lab01-20261031-074945.json
|
||
|
||
$ uv run tools/flow.py test cases/lab01-challenge.json
|
||
POST http://localhost:5678/webhook/my-log-report · 6 case(s) × 1
|
||
✔ 날짜별 · 월요일 · 0.1s · 596 calls · $0.078360
|
||
✔ 날짜별 · 목요일 · 0.1s · 596 calls · $0.078360
|
||
✔ 날짜는 10일 · 0.1s · 596 calls · $0.078360
|
||
✔ 릴리스별 다시 묻기 · 1.2.0 · 0.1s · 596 calls · $0.078360
|
||
✔ 릴리스별 다시 묻기 · 1.0.0 · 1.1.0 · 0.1s · 596 calls · $0.078360
|
||
✔ 1.1.0 · 0.1s · 596 calls · $0.078360
|
||
Passed 6/6
|
||
report: runs/lab01-challenge-20261031-074946.json
|