78일차 데이터 품질 검증 자동화: 실습 15개(Q) · 기준 둘 · 강의(개요 30장 · 단계 문서 · 4단계 정리 · 05 바이브) · 요청서와 VIBE-Q(tcheck), 정답은 수업 뒤

This commit is contained in:
mcchae committed 2026-11-02 20:42:54 +09:00
1 parent fbed1b22f6
commit 4ec7ae123b
76 files changed
+11631

No files matched your search

+118
View File
@@ -0,0 +1,118 @@
{
"webhook": "my-faq-import",
"before": [
{
"url": "http://localhost:8800/faq-reset",
"body": {}
},
{
"url": "http://localhost:8800/quarantine-clear",
"body": {}
},
{
"url": "http://localhost:8800/quality-log-clear",
"body": {}
},
{
"url": "http://localhost:8800/alerts-clear",
"body": {}
}
],
"after": [
{
"url": "http://localhost:8800/faq-reset",
"body": {}
}
],
"cases": [
{
"name": "나쁜 배치는 통째로 거절 (422)",
"request": "requests/faq-batch-1.json",
"expect": {
"status": 422,
"equals": {
"batch": "B-1"
},
"range": {
"invalid_ratio": [
0.3,
1
]
}
}
},
{
"name": "배치 2 · 통과한 줄만 넣고 나쁜 줄은 격리",
"request": "requests/faq-batch-2.json",
"expect": {
"equals": {
"rejected": false,
"total": 10
},
"contains": {
"imported_ids": "FAQ-201",
"quarantined_ids": "FAQ-209"
}
}
},
{
"name": "FAQ에 들어갔고 메일 주소는 안 들어감",
"url": "http://localhost:8800/faq/list",
"body": {},
"expect": {
"contains": {
"faqs": "FAQ-208"
},
"not_contains": {
"faqs": "security.desk"
}
}
},
{
"name": "격리함에 이유와 함께",
"url": "http://localhost:8800/quarantine/list",
"body": {},
"expect": {
"contains": {
"items": "\"pii\""
}
}
},
{
"name": "LLM · 제목과 답이 다른 줄 (FAQ-210)",
"before": [
{
"url": "http://localhost:8800/faq-reset",
"body": {}
},
{
"url": "http://localhost:8800/quarantine-clear",
"body": {}
}
],
"request": "requests/faq-batch-2.json",
"expect": {
"equals": {
"imported": 8,
"quarantined": 2,
"codes.llm_mismatch": 1
},
"contains": {
"quarantined_ids": "FAQ-210"
}
}
},
{
"name": "LLM · 규칙에 걸린 줄은 그대로 (FAQ-305)",
"request": "requests/faq-batch-3.json",
"expect": {
"equals": {
"imported": 5
},
"contains": {
"quarantined_ids": "FAQ-305"
}
}
}
]
}