262 lines
9.1 KiB
Plaintext
262 lines
9.1 KiB
Plaintext
$ uv run tools/flow.py test cases/lab02-challenge2.json -v
|
||
✔ before: POST http://localhost:8800/releases/helpdesk/reset · HTTP 200 · 0.0s · {"name": "helpdesk", "active": "1.0.0", "canary": null, "require_gate": false, "releases": {"1.0.0": {"prompt_version":
|
||
→ request POST http://localhost:8800/releases/helpdesk/reset
|
||
{}
|
||
← response HTTP 200
|
||
{
|
||
"name": "helpdesk",
|
||
"active": "1.0.0",
|
||
"canary": null,
|
||
"require_gate": false,
|
||
"releases": {
|
||
"1.0.0": {
|
||
"prompt_version": "p1",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "첫 릴리스"
|
||
},
|
||
"1.1.0": {
|
||
"prompt_version": "p2",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "FAQ 답 끝에 출처 번호"
|
||
},
|
||
"1.2.0": {
|
||
"prompt_version": "p3",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "답을 한 문장으로 짧게"
|
||
},
|
||
"2.0.0": {
|
||
"prompt_version": "p2",
|
||
"model": "gpt-5.4-nano",
|
||
"note": "더 작은 모델 (비용)"
|
||
},
|
||
"2.1.0": {
|
||
"prompt_version": "p9",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "출처 번호 · 존댓말 다듬기 (지시문 이름 확인 필요)"
|
||
}
|
||
}
|
||
}
|
||
POST http://localhost:5678/webhook/my-helpdesk · 5 case(s) × 1
|
||
✘ 망가진 릴리스 2.1.0 · 400 release broken · 1.3s · status 200 (expected 400); error = null (expected release broken); prompt_version = null (expected p9)
|
||
→ request POST /webhook/my-helpdesk
|
||
{
|
||
"question": "VPN 접속이 자꾸 끊겨요. 어떻게 하나요?",
|
||
"user": "이준호",
|
||
"release": "2.1.0"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"route": "자동 답변",
|
||
"answer": "VPN 접속 오류는 VPN 클라이언트를 최신 버전으로 업데이트하고, 인증서 만료 여부를 확인한 뒤 다시 접속하시기 바랍니다. 현재 접수된 문의 건이 없어 추가 지원이 필요하시면 IT 담당자에게 문의해 주세요.",
|
||
"sources": [
|
||
"FAQ-003"
|
||
],
|
||
"version": {
|
||
"release": "2.1.0",
|
||
"prompt_version": "p9",
|
||
"model": "gpt-4.1-mini",
|
||
"channel": "pinned",
|
||
"prompt_source": "fallback"
|
||
}
|
||
}
|
||
✔ 평소 · 1.1.0은 저장소의 p2 · 1.1s
|
||
→ request POST /webhook/my-helpdesk
|
||
{
|
||
"question": "VPN 접속이 자꾸 끊겨요. 어떻게 하나요?",
|
||
"user": "이준호",
|
||
"release": "1.1.0"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"route": "자동 답변",
|
||
"answer": "VPN 접속 오류가 발생하면 VPN 클라이언트를 최신 버전으로 업데이트하고, 인증서 만료 여부를 확인한 뒤 다시 접속하시기 바랍니다. 추가 도움이 필요하면 담당자가 도와드리겠습니다. [FAQ-003]",
|
||
"sources": [
|
||
"FAQ-003"
|
||
],
|
||
"version": {
|
||
"release": "1.1.0",
|
||
"prompt_version": "p2",
|
||
"model": "gpt-4.1-mini",
|
||
"channel": "pinned",
|
||
"prompt_source": "registry"
|
||
}
|
||
}
|
||
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "error", "slow_seconds": 8.0}
|
||
→ request POST http://localhost:8800/admin/fault
|
||
{
|
||
"prompts": "error"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"faq": "ok",
|
||
"tickets": "ok",
|
||
"prompts": "error",
|
||
"slow_seconds": 8.0
|
||
}
|
||
✔ 저장소 고장 · 1.1.0도 기본 지시문으로 · 1.2s
|
||
→ request POST /webhook/my-helpdesk
|
||
{
|
||
"question": "VPN 접속이 자꾸 끊겨요. 어떻게 하나요?",
|
||
"user": "이준호",
|
||
"release": "1.1.0"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"route": "자동 답변",
|
||
"answer": "VPN 접속 오류는 VPN 클라이언트를 최신 버전으로 업데이트하고, 인증서 만료 여부를 확인한 뒤 다시 접속하시기 바랍니다. 현재 접수된 문의 건이 없어 추가 지원이 필요하시면 IT 담당자에게 문의해 주세요.",
|
||
"sources": [
|
||
"FAQ-003"
|
||
],
|
||
"version": {
|
||
"release": "1.1.0",
|
||
"prompt_version": "p2",
|
||
"model": "gpt-4.1-mini",
|
||
"channel": "pinned",
|
||
"prompt_source": "fallback"
|
||
}
|
||
}
|
||
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "slow_seconds": 8.0}
|
||
→ request POST http://localhost:8800/admin/fault
|
||
{
|
||
"prompts": "ok"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"faq": "ok",
|
||
"tickets": "ok",
|
||
"prompts": "ok",
|
||
"slow_seconds": 8.0
|
||
}
|
||
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "error", "slow_seconds": 8.0}
|
||
→ request POST http://localhost:8800/admin/fault
|
||
{
|
||
"prompts": "error"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"faq": "ok",
|
||
"tickets": "ok",
|
||
"prompts": "error",
|
||
"slow_seconds": 8.0
|
||
}
|
||
✔ 저장소 고장 · 없는 릴리스는 그대로 400 · 0.0s
|
||
→ request POST /webhook/my-helpdesk
|
||
{
|
||
"question": "VPN 접속이 자꾸 끊겨요. 어떻게 하나요?",
|
||
"user": "이준호",
|
||
"release": "9.9.9"
|
||
}
|
||
← response HTTP 400
|
||
{
|
||
"error": "unknown release",
|
||
"release": "9.9.9",
|
||
"known": [
|
||
"1.0.0",
|
||
"1.1.0",
|
||
"1.2.0",
|
||
"2.0.0",
|
||
"2.1.0"
|
||
]
|
||
}
|
||
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "slow_seconds": 8.0}
|
||
→ request POST http://localhost:8800/admin/fault
|
||
{
|
||
"prompts": "ok"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"faq": "ok",
|
||
"tickets": "ok",
|
||
"prompts": "ok",
|
||
"slow_seconds": 8.0
|
||
}
|
||
✔ 운영(active 1.0.0)은 그대로 · 1.1s
|
||
→ request POST /webhook/my-helpdesk
|
||
{
|
||
"question": "프린터 출력이 안 돼요",
|
||
"user": "최유진"
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"route": "자동 답변",
|
||
"answer": "프린터 전원과 네트워크 연결을 확인하고, 인쇄 대기열을 비운 뒤 다시 출력해 보시기 바랍니다. 접수된 문의 건은 없으며, 추가 도움이 필요하시면 직원이 도와드리겠습니다.",
|
||
"sources": [
|
||
"FAQ-004"
|
||
],
|
||
"version": {
|
||
"release": "1.0.0",
|
||
"prompt_version": "p1",
|
||
"model": "gpt-4.1-mini",
|
||
"channel": "stable",
|
||
"prompt_source": "registry"
|
||
}
|
||
}
|
||
Passed 4/5
|
||
report: runs/lab02-challenge2-20261027-184109.json
|
||
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "slow_seconds": 8.0}
|
||
→ request POST http://localhost:8800/admin/fault
|
||
{
|
||
"prompts": "ok",
|
||
"slow_seconds": 8
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"faq": "ok",
|
||
"tickets": "ok",
|
||
"prompts": "ok",
|
||
"slow_seconds": 8.0
|
||
}
|
||
✔ after: POST http://localhost:8800/releases/helpdesk/reset · HTTP 200 · 0.0s · {"name": "helpdesk", "active": "1.0.0", "canary": null, "require_gate": false, "releases": {"1.0.0": {"prompt_version":
|
||
→ request POST http://localhost:8800/releases/helpdesk/reset
|
||
{}
|
||
← response HTTP 200
|
||
{
|
||
"name": "helpdesk",
|
||
"active": "1.0.0",
|
||
"canary": null,
|
||
"require_gate": false,
|
||
"releases": {
|
||
"1.0.0": {
|
||
"prompt_version": "p1",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "첫 릴리스"
|
||
},
|
||
"1.1.0": {
|
||
"prompt_version": "p2",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "FAQ 답 끝에 출처 번호"
|
||
},
|
||
"1.2.0": {
|
||
"prompt_version": "p3",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "답을 한 문장으로 짧게"
|
||
},
|
||
"2.0.0": {
|
||
"prompt_version": "p2",
|
||
"model": "gpt-5.4-nano",
|
||
"note": "더 작은 모델 (비용)"
|
||
},
|
||
"2.1.0": {
|
||
"prompt_version": "p9",
|
||
"model": "gpt-4.1-mini",
|
||
"note": "출처 번호 · 존댓말 다듬기 (지시문 이름 확인 필요)"
|
||
}
|
||
}
|
||
}
|
||
|
||
$ uv run tools/flow.py gate answers/74-lab02-challenge-golden.json --set release=2.1.0 --max-p95 3
|
||
POST http://localhost:5678/webhook/my-helpdesk · 9 case(s) × 1
|
||
✔ VPN · 해결 방법 · 1.2s
|
||
✔ VPN · 순서도 (업데이트) · 1.2s
|
||
✔ 비밀번호 · 해결 방법 · 1.5s
|
||
✔ 프린터 · 해결 방법 · 1.1s
|
||
✔ 메일함 · 해결 방법 · 1.3s
|
||
✔ 접수 처리 중 · 상태와 예정일 · 1.0s
|
||
✔ 접수 처리 중 · 예정일 · 1.0s
|
||
✔ 접수 처리 완료 · 1.0s
|
||
✔ 포털로 떠넘기지 않기 · 1.0s
|
||
Passed 9/9
|
||
report: runs/74-lab02-challenge-golden-20261027-184120.json
|
||
gate [release=2.1.0]: pass 9/9 (100%) · p95 1.5s → PASS
|
||
✔ gate record → /gates/helpdesk: 2.1.0 promote
|