---
title: "รายงานการนำเข้าข้อมูลฐานองค์ความรู้"
titleEn: "Knowledge Base Ingestion Report"
clauses: ["7.2.5","4.5.2","ก.4.7.4","ข.1"]
phase: 2
category: "รายงานอัตโนมัติ"
generated: true
generatedAt: "2026-10-03T02:28:03Z"
---

> สร้างอัตโนมัติเมื่อ 2026-10-03T02:28:03Z

# รายงานการนำเข้าข้อมูลฐานองค์ความรู้

**อ้างอิง TOR:** ข้อ 7.2.5 (รายงานผลการนำเข้าข้อมูล งวดที่ 2), ข้อ 4.5.2 และ ก.4.7.4 (นำเข้าเอกสารตามภาคผนวก ข), ภาคผนวก ข.1 (พระไตรปิฎกและอรรถกถาแปล ฉบับ มมร. 91 เล่ม)

รายงานนี้สร้างโดยสคริปต์ `npm run report:ingestion` (`scripts/reports/ingestion-report.ts`) ซึ่งอ่านตัวเลขจากฐานข้อมูลของระบบโดยตรง (ตาราง `KnowledgeDocument`, `Chunk`, `IngestionJob`, `IngestionJobItem`) และเทียบกับไฟล์ต้นฉบับ ไม่มีการกรอกตัวเลขด้วยมือ ผู้ดูแลระบบดูข้อมูลชุดเดียวกันแบบสดได้ที่หน้า `/admin/knowledge-base` (การ์ด coverage) และ `/admin/knowledge-base/jobs`

## 1. สรุปภาพรวม

| รายการ | จำนวน |
|---|---:|
| เอกสารที่ทำดัชนีแล้ว (indexed) | 329 |
| Chunks ที่ค้นหาได้ | 4,392 |
| โทเคนโดยประมาณรวมทุก chunk | 1,215,968 |
| ขนาดเฉลี่ย / สูงสุดต่อ chunk (tokens) | 277 / 17,848 |
| Chunks ที่ยาวเกิน 3,000 tokens (คงทั้งข้อ ไม่แบ่ง) | 5 |
| บรรทัดที่ถูกตัดโดยขั้นตอน sanitize | 0 บรรทัด ใน 0 เอกสาร |
| เอกสารรอนำเข้า / ล้มเหลว / ลบแล้ว | 0 / 0 / 1 |
| ความครอบคลุมฉบับ มมร. 91 เล่ม | 6 จาก 91 เล่ม (6.6%) |
| เล่มพระไตรปิฎกฉบับหลวงที่มีข้อมูล | 12 จาก 45 เล่ม (26.7%) |
| แหล่งที่มาของเอกสาร | seed: 329 |

## 2. จำนวนเอกสารและ chunks ตามประเภทเอกสาร (ก.4.8.3)

| ประเภทเอกสาร | เอกสาร | Chunks |
|---|---:|---:|
| หนังสือ/ตำราร่วมสมัย (`contemporary`) | 171 | 3,662 |
| พระไตรปิฎก (`tipitaka`) | 151 | 636 |
| อรรถกถา (`atthakatha`) | 4 | 85 |
| ธรรมะครูบาอาจารย์ (`teacher_dhamma`) | 3 | 9 |
| **รวม** | **329** | **4,392** |

## 3. จำนวนเอกสารและ chunks ตามปิฎก

| ปิฎก | เอกสาร | Chunks |
|---|---:|---:|
| (ไม่ระบุ) | 178 | 3,756 |
| พระสุตตันตปิฎก | 131 | 396 |
| พระอภิธรรมปิฎก | 7 | 130 |
| พระวินัยปิฎก | 13 | 110 |
| **รวม** | **329** | **4,392** |

หมายเหตุ: “(ไม่ระบุ)” คือเอกสารที่ไม่ได้จัดอยู่ในปิฎกใดปิฎกหนึ่ง เช่น อรรถกถา หนังสือร่วมสมัย และธรรมะครูบาอาจารย์

## 4. จำนวนเอกสารและ chunks ตามฉบับ

| ฉบับ | เอกสาร | Chunks |
|---|---:|---:|
| หลักสูตรนักธรรมและธรรมศึกษา — ฉบับมหามกุฏราชวิทยาลัย | 132 | 3,277 |
| ไทย | 138 | 549 |
| พุทธประวัติ ฉบับมหามกุฏราชวิทยาลัย (วิกิซอร์ซ) | 27 | 310 |
| มมร. | 7 | 94 |
| English (Sujato, CC0) | 7 | 69 |
| นวโกวาท ฉบับ มหามกุฏราชวิทยาลัย พ.ศ. ๒๕๑๓ | 11 | 47 |
| ราชกิจจานุเบกษา (วิกิซอร์ซ) | 1 | 28 |
| บาลี | 6 | 18 |
| **รวม** | **329** | **4,392** |

## 5. เล่มของพระไตรปิฎกฉบับหลวง (45 เล่ม) ที่มีข้อมูล

นับจากเลขเล่ม (`volume`) ของเอกสารประเภทพระไตรปิฎกที่ไม่ใช่ฉบับ มมร. (ฉบับไทย บาลี และฉบับแปลอังกฤษใช้เลขเล่มชุดเดียวกัน)

| ปิฎก | ช่วงเล่ม | จำนวนเล่ม | เล่มที่มีข้อมูล | ร้อยละ | เล่มที่มีข้อมูล (เลขเล่ม) |
|---|---|---:|---:|---:|---|
| พระวินัยปิฎก | 1–8 | 8 | 2 | 25.0% | 1, 4 |
| พระสุตตันตปิฎก | 9–33 | 25 | 8 | 32.0% | 10–12, 16–17, 19–20, 25 |
| พระอภิธรรมปิฎก | 34–45 | 12 | 2 | 16.7% | 34–35 |
| **รวม** | 1–45 | **45** | **12** | **26.7%** |  |

| เล่ม (ฉบับหลวง) | ปิฎก | เอกสาร | Chunks |
|---:|---|---:|---:|
| 1 | พระวินัยปิฎก | 3 | 40 |
| 4 | พระวินัยปิฎก | 10 | 70 |
| 10 | พระสุตตันตปิฎก | 2 | 53 |
| 11 | พระสุตตันตปิฎก | 2 | 48 |
| 12 | พระสุตตันตปิฎก | 5 | 68 |
| 16 | พระสุตตันตปิฎก | 10 | 41 |
| 17 | พระสุตตันตปิฎก | 26 | 60 |
| 19 | พระสุตตันตปิฎก | 5 | 29 |
| 20 | พระสุตตันตปิฎก | 23 | 29 |
| 25 | พระสุตตันตปิฎก | 58 | 68 |
| 34 | พระอภิธรรมปิฎก | 5 | 100 |
| 35 | พระอภิธรรมปิฎก | 2 | 30 |

## 6. ความครอบคลุมเทียบภาคผนวก ข — ฉบับ มมร. 91 เล่ม

**ผลปัจจุบัน: มีข้อมูล 6 จาก 91 เล่ม คิดเป็น 6.6%** (เกณฑ์งวดที่ 2 ตาม TOR ข้อ 7.2.5: ไม่น้อยกว่า 20% — ชุดข้อมูลสาธิตยังไม่ถึงเกณฑ์)

| ปิฎก | ช่วงเล่ม | จำนวนเล่ม | เล่มที่มีข้อมูล | ร้อยละ | เล่มที่มีข้อมูล (เลขเล่ม) |
|---|---|---:|---:|---:|---|
| พระวินัยปิฎก | 1–10 | 10 | 1 | 10.0% | 6 |
| พระสุตตันตปิฎก | 11–74 | 64 | 5 | 7.8% | 14, 16, 34, 39–40 |
| พระอภิธรรมปิฎก | 75–91 | 17 | 0 | 0.0% | — |
| **รวม** | 1–91 | **91** | **6** | **6.6%** |  |

| เล่ม (มมร.) | ปิฎก | เอกสาร | Chunks |
|---:|---|---:|---:|
| 6 | พระวินัยปิฎก | 2 | 10 |
| 14 | พระสุตตันตปิฎก | 2 | 53 |
| 16 | พระสุตตันตปิฎก | 2 | 48 |
| 34 | พระสุตตันตปิฎก | 3 | 9 |
| 39 | พระสุตตันตปิฎก | 6 | 9 |
| 40 | พระสุตตันตปิฎก | 1 | 1 |

**ข้อจำกัดที่ต้องระบุตามจริง**

- ชุดข้อมูลในระบบสาธิตเป็น **ส่วนย่อย** ที่คัดจากพระไตรปิฎกฉบับหลวงที่เผยแพร่ออนไลน์ (ตามภาคผนวก ข.1 ที่ให้ระยะแรกใช้ฉบับออนไลน์) พร้อมอรรถกถา บาลี และฉบับแปลอังกฤษบางส่วน **ไม่ใช่ไฟล์ฉบับ มมร. 91 เล่ม** เพราะยังไม่ได้รับไฟล์จากมหาวิทยาลัย
- ตัวเลขร้อยละข้างต้นนับ “เล่มที่มีข้อมูลอย่างน้อย 1 เอกสาร” โดยอาศัยฟิลด์ `mbuVolume` ซึ่งระบุเฉพาะเอกสารที่ทราบเลขเล่มฉบับ มมร. ที่ตรงกัน เล่มที่นับว่ามีข้อมูลจึงมีเพียงบางสูตร/บางข้อ ไม่ใช่ทั้งเล่ม
- เกณฑ์ไม่น้อยกว่า 20% ของ TOR ข้อ 7.2.5 ใช้กับการนำเข้าไฟล์ฉบับ มมร. 91 เล่มจริง (ต้องมีอย่างน้อย 19 เล่ม) เมื่อได้รับไฟล์แล้วให้นำเข้าผ่านหน้า `/admin/knowledge-base` โดยระบุ “เล่มฉบับ มมร.” แล้วรันรายงานนี้ซ้ำ ตัวเลขจะคำนวณใหม่จากฐานข้อมูลโดยอัตโนมัติ

## 7. Chunks ที่ยาวเกิน 3,000 tokens (ก.4.6.2)

นโยบายแบ่ง chunk ของพระไตรปิฎก/อรรถกถาคือ 1 ข้อ = 1 chunk **ห้ามแบ่งกลางข้อ** ข้อที่ยาวเกิน 3,000 tokens จึงยังเป็น chunk เดียวและติดธง `oversized` — พบ 5 chunk

| เอกสาร | เล่ม/ข้อ/หน้า | Tokens (ประมาณ) |
|---|---|---:|
| ลักษณะสิกขาที่เป็นอันบอกคืน [๗๘ บท] (วิ.มหา. ข้อ 31–40) | 1/40/53 | 17,848 |
| อุโปสถสูตร | 20/510/232 | 5,537 |
| สุทินน์กลันทบุตรออกบวช (วิ.มหา. ข้อ 14–30) | 1/30/32 | 5,477 |
| กาลามสูตร (เกสปุตตสูตร) | 20/505/212 | 3,319 |
| สังคารวสูตร | 20/500/190 | 3,266 |

## 8. สถิติการ sanitize (ป้องกัน prompt injection ผ่านเอกสาร)

ก่อนแบ่ง chunk ทุกไฟล์ผ่าน `sanitizeText` ซึ่งตัดอักขระควบคุม/อักขระล่องหน และตัดทั้งบรรทัดที่ตรงกับรูปแบบคำสั่งแฝง 19 รูปแบบ (ไทย/อังกฤษ/การปลอม role) จำนวนบรรทัดที่ตัดถูกบันทึกต่อเอกสารในฟิลด์ `sanitizedLines`

- บรรทัดที่ถูกตัดรวม: **0** บรรทัด จาก **0** เอกสาร (จากเอกสารที่ทำดัชนีแล้ว 329 ฉบับ)

- ไม่พบบรรทัดที่เข้าข่ายในชุดข้อมูลปัจจุบัน (ข้อความคัมภีร์ต้นฉบับไม่มีคำสั่งแฝง) — กลไกนี้ทดสอบด้วย fixture ที่ฝังบรรทัดคำสั่งใน `tests/api/knowledge-base.test.ts` และ `tests/unit/sanitize.test.ts`

## 9. งานนำเข้า (Ingestion Jobs) และรายการที่ล้มเหลว

| ประเภทงาน | จำนวนงาน | รายการทั้งหมด | สำเร็จ | ล้มเหลว | สถานะงาน |
|---|---:|---:|---:|---:|---|
| นำเข้าเอกสาร | 3 | 330 | 330 | 0 | completed: 3 |
| ลบเอกสาร | 1 | 1 | 1 | 0 | completed: 1 |

**รายการที่ล้มเหลวค้างอยู่: 0 รายการ**

ไม่มีรายการที่ล้มเหลว — งานล้มเหลวราย item ไม่ทำให้ทั้งงานหยุด และระบบส่งการแจ้งเตือน (`ingestion_failed`) ไปยังผู้ดูแลเมื่อเกิดขึ้น

## 10. วิธีตรวจสอบความครบถ้วนของการนำเข้า

ขั้นตอนตรวจสอบที่สคริปต์นี้ทำจริงทุกครั้งที่สร้างรายงาน (เทียบฐานข้อมูลกับไฟล์ต้นฉบับ):

1. **นับ marker รายข้อเทียบต้นฉบับ** — สำหรับเอกสารที่มี marker `[เล่ม N][ข้อ N][หน้า N]` อ่านไฟล์ต้นฉบับใหม่ นับจำนวน “ข้อ” (คู่ เล่ม/ข้อ ที่ไม่ซ้ำ) แล้วเทียบกับจำนวนข้อที่ไม่ซ้ำใน chunks ของเอกสารนั้น ต้องเท่ากันและไม่มีข้อใดขาด (1 ข้อ = 1 chunk ตาม ก.4.6.2)
2. **เทียบปริมาณข้อความ** — สำหรับเอกสารที่ไม่มี marker (แบ่งแบบ semantic) เทียบจำนวนอักขระของ chunks + หัวข้อ กับต้นฉบับหลัง sanitize ต้องไม่น้อยกว่า 98%
3. **ตรวจไฟล์ต้นฉบับ** — เอกสารที่ไฟล์ต้นฉบับหายจะถูกรายงานแยก (Re-index ไม่ได้)

| การตรวจ | ผล |
|---|---:|
| เอกสารที่ตรวจเทียบไฟล์ต้นฉบับ | 329 จาก 329 เอกสารที่ทำดัชนีแล้ว |
| เอกสารที่มี marker: จำนวนข้อตรงกับต้นฉบับ | 155 / 155 เอกสาร |
| จำนวนข้อในไฟล์ต้นฉบับ / ใน chunks | 578 / 578 ข้อ |
| เอกสารไม่มี marker: ปริมาณข้อความ ≥ 98% | 174 / 174 เอกสาร |
| ไฟล์ต้นฉบับหาย | 0 |
| เอกสารที่ไม่ผ่านการตรวจ | 0 |

การตรวจเพิ่มเติมที่ทำโดยอัตโนมัติในระบบ:

- ทุก item ของงานนำเข้าบันทึกขั้นตอน (parse → sanitize → chunk → embed → index) จำนวน chunk เวลา และข้อความผิดพลาด ตรวจย้อนหลังได้ที่ `/admin/knowledge-base/jobs`
- ชุดทดสอบ `tests/api/knowledge-base.test.ts` นำเข้าไฟล์ทั้ง 4 ชนิด (PDF, TXT, TEI-XML, DOCX) แล้วยืนยันว่าค้นเจอผ่านดัชนี hybrid, ข้อยาวไม่ถูกแบ่ง, บรรทัดคำสั่งแฝงถูกตัด และ Re-index ไม่ทำให้จำนวน/รหัส chunk เปลี่ยนเมื่อเนื้อหาไม่เปลี่ยน
- `tests/unit/chunking-policy.test.ts` ยืนยันนโยบายไม่แบ่งกลางข้อ และ `tests/unit/parsers.test.ts` ยืนยันการอ่านไฟล์แต่ละชนิด
- ผู้ตรวจรับสุ่มตรวจเนื้อหาได้ที่หน้า `/admin/knowledge-base/[id]` ซึ่งแสดง chunk ทุกรายการพร้อมเล่ม/ข้อ/หน้า เทียบกับไฟล์ต้นฉบับ
