Golden set — Certogo FAQ
Source: platform/packages/eval/golden-sets/certogo/faq.yaml · rendered from main on every deploy — edit in the repo, not here
# Golden Q&A: Certogo training FAQ (Thai)# 35 test cases covering all FAQ sections
# ── Registration & Login ──
# ADR-0112 regression guard: the vocabulary-variant term "การรับสมัคร"# (lit. "recruitment") must still retrieve the sign-up FAQ rather than refuse.# This is the exact query from the certogo grounding incident — pre-fix it# returned an out-of-scope refusal with zero sources.- vars: query: 'การรับสมัคร' locale: th assert: - type: contains-any value: ['รับคำเชิญ', 'ตั้งรหัสผ่าน', 'สมัครบัญชี', 'ยืนยันตัวตน', 'อีเมล'] - type: llm-rubric value: 'The answer explains how to sign up / register for the training system using the knowledge base, and does NOT refuse or say it has no information.' threshold: 0.8
- vars: query: 'ลืมรหัสผ่าน ทำยังไง' locale: th assert: - type: contains value: 'ลืมรหัสผ่าน' - type: contains-any value: ['ตั้งรหัสผ่านใหม่', 'หน้าเข้าสู่ระบบ']
- vars: query: 'สมัครบัญชีครั้งแรกต้องทำอะไรบ้าง' locale: th assert: - type: contains-any value: ['รับคำเชิญ', 'ตั้งรหัสผ่าน', 'ยืนยันตัวตน']
- vars: query: 'เข้าสู่ระบบได้กี่วิธี' locale: th assert: - type: contains-any value: ['อีเมล', 'บัตรประชาชน', 'โทรศัพท์', '3 วิธี']
- vars: query: 'ไม่ได้รับอีเมลเชิญเข้าอบรม' locale: th assert: - type: contains-any value: ['Spam', 'จดหมายขยะ', 'ติดต่อ']
- vars: query: 'พนักงานใหม่ต้องทำอะไรเพื่อเข้าอบรม' locale: th assert: - type: contains-any value: ['HR', 'อีเมล', 'อัตโนมัติ']
# ── eKYC ──
- vars: query: 'ทำไมต้องยืนยันตัวตน' locale: th assert: - type: contains-any value: ['คปภ', 'ความปลอดภัย', 'บัตรประชาชน']
- vars: query: 'ถ่ายรูปบัตรประชาชนยังไง' locale: th assert: - type: contains-any value: ['กล้อง', 'QR Code', 'สมาร์ทโฟน']
- vars: query: 'ระบบสแกนใบหน้าไม่ผ่าน ต้องทำอะไร' locale: th assert: - type: contains-any value: ['แสงสว่าง', 'หน้ากาก', 'แว่นกันแดด', 'กล้อง']
- vars: query: 'กล้องไม่ทำงาน ขึ้นว่าไม่พบกล้อง' locale: th assert: - type: contains-any value: ['Settings', 'Privacy', 'Camera', 'Refresh', 'Safari']
- vars: query: 'ระหว่างอบรมมีการขอยืนยันตัวตนอีกไหม' locale: th assert: - type: contains-any value: ['สุ่มตรวจสอบ', 'ปกติ', 'เวลาที่กำหนด']
# ── Training & Course ──
- vars: query: 'รอบอบรมมีกี่วัน' locale: th assert: - type: contains value: '7'
- vars: query: 'อบรมจากที่ไหนก็ได้ไหม' locale: th assert: - type: contains-any value: ['ทุกที่', '24 ชั่วโมง', 'แสงสว่าง']
- vars: query: 'เร่งความเร็ววิดีโอได้ไหม' locale: th assert: - type: contains-any value: ['ไม่อนุญาต', 'ไม่ได้', 'คปภ']
- vars: query: 'อบรมพร้อมกันหลายอุปกรณ์ได้ไหม' locale: th assert: - type: contains-any value: ['ไม่ได้', '1 อุปกรณ์', '1 บัญชี']
- vars: query: 'เปิดแอปอื่นระหว่างอบรมได้ไหม' locale: th assert: - type: contains-any value: ['ไม่ได้', 'หยุดทันที', 'หน้าจออบรม']
- vars: query: 'ต้องเปิด Full Screen ตลอดไหม' locale: th assert: - type: contains-any value: ['Full Screen', 'บังคับ', 'ใช่']
- vars: query: 'อบรมระหว่างเดินทางได้ไหม' locale: th assert: - type: contains-any value: ['ไม่แนะนำ', 'แสงสว่าง', 'อินเทอร์เน็ต', 'สัญญาณ']
- vars: query: 'อบรมค้างไว้แล้วหมดเวลารอบ ทำยังไง' locale: th assert: - type: contains-any value: ['ลงทะเบียนรอบใหม่', 'วางแผน']
- vars: query: 'ย้อนกลับไปดูเนื้อหาเก่าได้ไหม' locale: th assert: - type: contains-any value: ['ได้', 'ย้อนกลับ', 'ข้ามไปยัง']
- vars: query: 'ทำไมถูกย้อนเวลากลับไป' locale: th assert: - type: contains-any value: ['ยืนยันตัวตน', 'ไม่สำเร็จ', 'จุดล่าสุด']
# ── Technical Issues ──
- vars: query: 'หน้าจอวิดีโอดำ วิดีโอไม่เล่น' locale: th assert: - type: contains-any value: ['Refresh', 'Chrome', 'VPN', 'cache']
- vars: query: 'session หมดอายุกลางคัน ต้องเริ่มใหม่ไหม' locale: th assert: - type: contains-any value: ['ไม่ต้อง', 'บันทึก', 'progress', 'Login']
- vars: query: 'ทำแบบทดสอบแล้วระบบไม่บันทึกผล' locale: th assert: - type: contains-any value: ['อินเทอร์เน็ต', 'ติดต่อเจ้าหน้าที่', 'จำนวนครั้ง']
# ── Tests & Exams ──
- vars: query: 'แบบทดสอบทำได้กี่ครั้ง' locale: th assert: - type: contains value: '5'
- vars: query: 'เกณฑ์ผ่านแบบทดสอบเท่าไหร่' locale: th assert: - type: contains-any value: ['60%', '6 คะแนน']
- vars: query: 'ทำแบบทดสอบไม่ผ่านครบ 5 ครั้ง ต้องทำอย่างไร' locale: th assert: - type: contains-any value: ['ติดต่อเจ้าหน้าที่', 'ทบทวนเนื้อหา']
# ── License & OIC ──
- vars: query: 'อบรมเสร็จแล้ว ยื่นต่อใบอนุญาตกับ คปภ ได้เลยไหม' locale: th assert: - type: contains-any value: ['2 วันทำการ', 'ยังไม่ได้', 'ส่งผล']
- vars: query: 'ผลอบรมส่งให้ คปภ อัตโนมัติไหม' locale: th assert: - type: contains-any value: ['อัตโนมัติ', 'กดส่ง', 'ส่งผลการอบรม']
- vars: query: 'ใบอนุญาตใกล้หมดอายุ ยังอบรมทันไหม' locale: th assert: - type: contains-any value: ['2-3 สัปดาห์', 'ล่วงหน้า']
# ── Certificate ──
- vars: query: 'ดาวน์โหลดใบรับรองได้ที่ไหน' locale: th assert: - type: contains-any value: ['ใบรับรอง', 'อีเมล', 'มุมขวาบน']
- vars: query: 'ใบรับรอง e-Certificate ใช้ยื่นกับ คปภ ได้ไหม' locale: th assert: - type: contains-any value: ['ใช้ได้', 'e-Certificate', 'คปภ']
# ── Devices ──
- vars: query: 'ใช้อุปกรณ์อะไรอบรมได้บ้าง' locale: th assert: - type: contains-any value: ['Chrome', 'Safari', 'คอมพิวเตอร์', 'iPad', 'Android']
- vars: query: 'อินเทอร์เน็ตช้าเกินไป ต้องทำอย่างไร' locale: th assert: - type: contains-any value: ['Wi-Fi', 'สายแลน', '200ms']
# ── IDK tests (questions NOT in the corpus) ──
- vars: query: 'ราคาค่าอบรมเท่าไหร่' locale: th assert: - type: contains-any value: ['ไม่พบ', 'ไม่มีข้อมูล', 'ติดต่อ'] - type: llm-rubric value: 'The answer honestly states it does not have the information rather than making something up.' threshold: 0.9
- vars: query: 'Certogo มีสาขาที่ไหนบ้าง' locale: th assert: - type: contains-any value: ['ไม่พบ', 'ไม่มีข้อมูล', 'ติดต่อ']