batch_citation_audit
ตรวจการอ้างอิงมาตรา/ฎีกาทุกจุดในเอกสารเดียวรวดเดียว (คำฟ้อง/สัญญา/บันทึกความเห็น) — เฉพาะแพ็กเกจ Pro. ผลคือ "มีอยู่จริง + เป็นฉบับปัจจุบันไหม" ทีละจุด ไม่ใช่การตรวจเหตุผลทางกฎหมาย และไม่ตัดสินทิศทางคำวินิจฉัย การอ้างอิงเดียว → verify_citation (ใช้ได้ทุกแพ็กเกจ และรับกฎหมายฉบับใดก็ได้ในคลัง)
ต้นทุน: นับโควตา 1 ครั้งต่อการอ้างอิงที่ไม่ซ้ำ (สูงสุด 50 ต่อการเรียก, ขั้นต่ำ 1) หักครั้งเดียวก่อนตรวจ — โควตาไม่พอทั้งก้อน = ปฏิเสธทั้งครั้งโดยไม่หัก · ไม่คืนโควตาเมื่อหยุดก่อนกำหนด (stopped_early) หรือเมื่อบริการฎีกา ปิดชั่วคราว (ฎีกาได้ cannot_verify แต่มาตรายังตรวจได้) · ผู้ใช้ที่ไม่ใช่ Pro ถูกปฏิเสธก่อนหักโควตา
การจับชื่อกฎหมาย: สแกน "มาตรา N" (รวม "มาตรา 288, 289 และ 297 ประกอบมาตรา 83") + "ฎีกาที่ N/ปี" และผูกมาตรา เปล่ากับชื่อกฎหมายที่ระบุล่าสุดได้ 21 ฉบับ — ประมวลกฎหมายทั้ง 8 ฉบับ (ป.พ.พ./ป.วิ.พ./ป.อ./ป.วิ.อ./รัษฎากร/ที่ดิน/ ยาเสพติด/อาญาทหาร) + พ.ร.บ. ที่ฎีกาอ้างบ่อยและไม่กำกวม 13 ฉบับ (เช่น คุ้มครองแรงงาน ล้มละลาย ป่าไม้ ควบคุมอาคาร) · ไม่เดาเมื่อ: ไม่มีชื่อกฎหมายนำหน้า, กฎหมายนอก 21 ฉบับ, พ.ร.บ. ที่มีหลายฉบับต่างปี (ศุลกากร เช็ค ลิขสิทธิ์ ฯลฯ), ชื่อฉบับแก้ไข "(ฉบับที่ N)" หรือกฎหมายลำดับรอง → status="cannot_verify", reason="unresolved_law_name" — ถ้ารู้ law_code ให้เรียก verify_citation เอง
อ่านผล (citations[] ละรายการ):
status "verified" | "verified_title_marked_repealed" (พบจริง แต่ชื่อฉบับมี "(ยกเลิก)" — แนะนำให้ตรวจ source_url) | "not_found" | "cannot_verify" · retryable=true = อาจเป็นเหตุชั่วคราว ให้ลองใหม่เฉพาะรายการนั้นด้วย verify_citation (1 หน่วย) ห้ามส่งทั้งเอกสารซ้ำ (หักทุกรายการอีกรอบ) และไม่ควรวนซ้ำ not_found · false = ต้องตรวจเอง
status="not_found" ไม่ใช่ข้อสรุปว่าอ้างอิงนั้นปลอม = "ไม่พบในคลังที่ตรวจได้" เท่านั้น (คลังฎีกาไม่ครบทุกฉบับ / มาตราไม่มีในฉบับล่าสุดแต่อาจมีในฉบับเก่า) — ห้ามบอกผู้ใช้ว่า "ไม่มีอยู่จริง" ให้ตรวจต้นฉบับก่อนตัดทิ้ง
reason="section_not_found_in_this_version" → เรียก get_law_versions(law_code, unit_label="มาตรา " + section) ต้องเติม "มาตรา " นำหน้าเสมอ (section ที่คืนเป็นเลขเปล่า)
law ส่งต่อ deka_by_section(law=...) ได้ตรงๆ · timeline_code = ฉบับล่าสุดเสมอ ไม่ใช่ฉบับ ณ วันที่ของเอกสาร
unique_citation_limit_exceeded=true = เกิน 50 จุด ตรวจตามลำดับที่ปรากฏ ส่วนที่เหลือเรียกซ้ำกับเนื้อหาที่เหลือ · stopped_early=true = หมดเวลา คืนผลบางส่วนที่ตรวจเสร็จแล้ว · extractor_capped=true = citation ดิบเกิน 200 จุด ส่วนท้ายเอกสารไม่ถูกสกัด/ตรวจเลย — บอกผู้ใช้ว่าตรวจไม่ครบ และให้แบ่งเอกสารส่งใหม่
error หมดเวลา (ไม่ใช่ stopped_early) เกิดหลังหักโควตาแล้วและไม่คืน — ลองใหม่ = หักอีกรอบ ควรแบ่งเอกสารให้สั้นลงก่อน · error "มีคำขอ…จำนวนมาก" (รอคิว) เกิดก่อนหักโควตา ลองใหม่ได้โดยไม่เสียโควตา
evidence_snippet ของฎีกาตัดมาจาก full_text อาจมีชื่อจริงคู่ความ — ทำตาม deka_privacy_note ก่อนคัดลงเอกสาร
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| document_text | Yes | เนื้อหาเอกสารเต็มแบบข้อความล้วน (คำฟ้อง/คำให้การ/สัญญา/บันทึกความเห็น) 1–50,000 ตัวอักษร — เอกสารยาวกว่านั้นให้แบ่งส่ง · ว่าง/ยาวเกินถูกปฏิเสธก่อนตรวจสิทธิ์ Pro และก่อนหักโควตา |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| quota | No | ||
| citations | No | ||
| disclaimer | No | ||
| attribution | No | ||
| stopped_early | No | ||
| not_found_note | No | ||
| extractor_capped | No | ||
| citations_checked | No | ||
| deka_privacy_note | No | ||
| stopped_early_message | No | ||
| total_citations_found | No | ||
| unique_citation_limit_exceeded | No |