1 คะแนน โดย doolayer 2025-08-20 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ!

เวลาใช้งานโมเดล AI หลายครั้งก็มักจำเป็นต้องใช้ เอาต์พุต JSON แบบมีโครงสร้าง
ตัวผมเองก็เจอสถานการณ์ที่ต้องใช้เอาต์พุต JSON บ่อยมากระหว่างทำหลายโปรเจกต์ และทุกครั้งก็มักเจอความไม่สะดวกแบบเดิมซ้ำ ๆ

ปัญหาหลัก ๆ ของเอาต์พุตแบบมีโครงสร้างจาก LLM มีอยู่ 3 อย่างครับ

  1. การจัดการโค้ดบล็อก(````json … ``` )
    LLM ส่วนใหญ่มักคืนค่า JSON มาในรูปโค้ดบล็อกที่ครอบด้วย backticks สามตัวและคีย์เวิร์ด json
    แม้จะจัดการได้ด้วย regex ง่าย ๆ แต่พอต้องทำซ้ำทุกครั้งก็ชวนให้รำคาญ ถ้าจัดการได้ในระดับแพ็กเกจด้วยคำสั่งบรรทัดเดียวจะสะดวกกว่ามาก

  2. ปัญหาเครื่องหมายอัญประกาศซ้อนกัน
    ใน JSON สตริงต้องครอบด้วยเครื่องหมายอัญประกาศคู่(") แต่ถ้าภายในสตริงมีเครื่องหมายคำพูดอีกชั้น ก็จำเป็นต้อง escape เป็น \"
    LLM มักพลาดการแยกความต่างนี้และคืนค่า JSON ที่ไม่ถูกต้อง จึงจำเป็นต้องมีฟังก์ชันที่ช่วยแก้ไขปัญหานี้ให้อัตโนมัติ

  3. เครื่องหมายอัญประกาศอัจฉริยะ (smart quotes / Unicode quotes)
    ประโยคที่ LLM สร้างมักมีเครื่องหมายอัญประกาศแบบ “ ” ปะปนอยู่
    ซึ่งไม่ตรงตามมาตรฐาน JSON จึงควรสามารถแปลงทั้งหมดให้เป็นเครื่องหมายอัญประกาศคู่ปกติ(") ได้

พอลองค้นดูก็พบว่ามีโปรเจกต์ ai-json-fixer ที่พัฒนาด้วย Node.js อยู่แล้ว แต่ใน ecosystem ของ Python ยังไม่มีเครื่องมือที่เหมาะนัก

ก็เลยทำขึ้นมาเองเลยครับ! (ร่วมกับอาจารย์ GPT ฮ่าๆ)
ติดตั้งและใช้งานได้ง่าย ๆ ด้วย pip
pip install jsonquotefixer

ลองใช้กันดู แล้วช่วยวิจารณ์กันหนัก ๆ ได้เลยครับ ฮ่าๆ

2 ความคิดเห็น

 
onandon 2025-08-26

น่าจะดีถ้ามีตัวอย่างบน GitHub ในรูปแบบ ipynb เพื่อให้ดูได้ชัดเจน

 
doolayer 2025-08-20

เวลาเชิงลำดับคือ n (ความยาวของลำดับ)!