PALO IT Blog

Agentic Pattern Design ภาคปฏิบัติ โจทย์ ที่ 2— Unstructured Dataset Analytic Agent

เขียนโดย Sarin Suriyakoon - 10/10/25

ในโจทย์นี้เรามาดูอีกหนึ่งงานจริงที่ทางผมและน้องในทีมได้ร่วมมือกับทีมวิจัย IRD ในการ วิเคราะห์ฐานข้อมูล (PDF, Image ทั้งหมด 2,287 files) ข่าวเกี่ยวกับ Air Pollution ทั้งภาษาไทยและอังกฤษ โดยใช้ LLM ช่วยแปล และคัดกรองข้อมูลให้สามารถเอาไปทำ Data Analytics ได้

ที่มาและความสำคัญ

โจทย์จากลูกค้าซึ่งเป็นนักวิจัยของสถาบันวิจัย IRD คือ ก่อนหน้านี้เค้ามีการทำงานวิจัยที่คล้ายๆ กันนี้กับข่าวที่เกี่ยวกับ Air Pollution ของเชียงใหม่เท่านั้น ซึ่งสมัยก่อนข่าวเป็นภาษาอังกฤษ และ เป็นข่าวของเชียงใหม่เท่านั้น ทางทีมงานวิจัยใช้วิธีอ่านและวิเคราะห์ลง Excel เพื่อนำตัวเลขที่น่าสนใจมาสรุปเป็นกราฟ

สามารถอ่านผ่านๆ กันได้ ใน https://englishkyoto-seas.org/2023/08/vol-12-no-2-olivier-evrard-and-mary-mostafanezhad/

หลายปีถัดมา ในปี 2025 คราวนี้นักวิจัยต้องการนำข่าวทั้งภาษาไทยและภาษาอังกฤษ ในเขตพื้นที่กรุงเทพมาวิเคราะห์รวมกัน ซึ่งเป็นปริมาณที่มากขึ้นและเป็นภาษาที่นักวิจัยไม่คุ้นเคย (ภาษาไทย) การจะวิเคราะห์ฐานข้อมูลชุดใหม่นี้ได้ จำเป็นต้องใช้นักแปล หรือ …LLM

จะเห็นได้ว่า LLM หรือเทคโนโลยีที่เกิดขึ้นใหม่สามารถช่วยเร่งความเร็วในการทำงานวิจัยตัวนี้ได้ (แน่นอนว่าต้องแสดงความโปร่งใสในการใช้ LLM ในการทำงานวิจัย) เงื่อนไขคือ Agent ตัวนี้ต้องใช้เวลาเขียนโค้ด ออกมาให้ได้เป็น Excel/CSV ภายในสองอาทิตย์ และนักวิจัยจะนำ Excel/CSV ไปวิเคราะห์ต่อเอง

วิเคราะห์ Pain Point

หลังจากหา pain point และปัญหาจากนักวิจัยอย่างละเอียดแล้ว สิ่งที่เสนอคือ ทาง PALO IT จะ produce Excel/CSV ให้ทางนักวิจัยจะนำไปถาม Chatbot ในท้องตลาดเอง (ChatGPT,Google Gemini, Google BigQuery etc) เนื่องจากในปัจจุบัน Chatbot สามารถเขียนโค้ดในการวิเคราะห์ dataset ได้เป็นอย่างดี และ domain knowledge เกี่ยวกับ dataset ชุดนี้รวมถึงคำถามที่นักวิจัยอยากรู้และพล็อตเป็นกราฟ นักวิจัยจะรู้ดีที่สุด (Subject Matter Expert)

ทาง PALO IT จะสร้าง Agent ที่สามารถ Digest PDF และ Image Dataset ให้มาอยู่ในรูปแบบ Excel/CSV ที่นักวิจัยคุ้นเคยเอง

Solution

หลังจากวิเคราะห์ Pain Point และความปรับความคาดหวังของนักวิจัยเรียบร้อยแล้ว ทางเราจึงได้เสนอ Solution ตามด้านล่าง

Solution Explanation

A — ตรงนี้ถือเป็นจุดเริ่มต้นเรานำ Database ไว้ใน Repository เรา

B — หลังจากนั้นเราจะใช้ PDF to Markdown Agent ในการแปลง PDF ทั้งหมดให้อยู่ในรูปแบบที่ LLM เอาไปอ่านต่อได้ (อ่านเพิ่มเติมได้ใน section “Model Selection”)

C — ใน Step นี้เราจะได้ Markdown ออกมา Save เก็บไว้เป็น 1 PDF ต่อ 1 Markdown file ใน path รูปแบบเดียวกับ Dataset สาเหตุที่เลือกจะเก็บ Markdown ในรูปแบบนี้เพราะ 1. ทางเราต้องการใช้ Human และ LLM-as-a-judge เพื่อตรวจสอบผลลัพธ์บางส่วนก่อน ไปขั้นตอนถัดไป หากคุณภาพไม่ได้ (จากการ sample 20–30 file) ก็จะทำการ ปรับ Prompt และรัน pipeline ใหม่ 2. PDF ใน Dataset มีแค่ 1 หน้า ต่อไฟล์เท่านั้น จึงเหมาะกับจะทำเป็น 1 Markdown อย่างยิ่ง

D — ในขั้นตอนนี้เราจะนำ Markdown File ที่ได้มาใช้ในการวิเคราะห์ในหัวข้อเฉพาะเจาะจง โดยในแต่ละหัวข้อมีความซับซ้อน (มี json keys หลายตัว) แตกต่างกันไป ทางเราได้ตัดสินใจ แยก Agent ออกเป็นหัวข้อ เพื่อให้ Agent แต่ละตัวมี seperation of concert กับ Optimize prompt / json output แยกกันไป และสามรถช่วยกันทำงานได้เป็นส่วนๆ โดยไม่กระทบ accuracy กัน

E — หลังจากที่ เหล่า [Topic] Extract Agent ทำงานเสร็จเราจะเก็บ result แต่ละอันไว้เป็นไฟล์ JSON แล้วนำไป Clean และ Process ใน Google BigQuery และแปลงกลับมาเป็น CSV/Excel ของแต่ละหัวข้อ ซึ่งแต่ละ Excel/CSV จะถูกนำไป plot เป็น graph ต่อใน Paper โดยนักวิจัย

Model Selection สำหรับ Data Ingestion/OCR

Model ที่เลือกใช้ในโปรเจคนี้คือ Gemini 2.5 Pro/Flash(ในส่วนที่รัน pipeline ใหญ่) เพราะจากการทดลอกับ Dataset ที่มีได้ความแม่นยำสำหรับงานอ่าน PDF ได้ผลลัพธ์ที่ดีกว่าตัวอื่นๆ ในตลาด เช่น Typhoon OCR, GPT-4.1, Qwen2.5-VL, LLama 4.1

ในทางเขียน Code เราใช้ Google Gen AI SDK ที่ทำการแปลง PDF ไปอยู่ในรูปแบบ Markdown ให้แบบ Native Vision เราแค่ใช้ SDK ชี้ไปที่ไฟล์ที่ต้องการอัพโหลดไปพร้อมกับ prompt “Convert the document content to English text formatted in markdown”

หมายความว่า PDF “น่าจะ” ถูกแปลงเป็น Image ก่อนส่งไปให้ Model นั่นทำให้ตัว Gemini Leverage Multimodal Capability ได้อย่างเต็มที่ ต่างจาก การ Parse PDF to Raw Text ซึ่งโดยส่วนใหญ่ ได้ Output ออกมาอ่านยากและทำให้ LLM ให้ผลลัพธ์ที่ไม่ดี

ด้วยความที่ Dataset ของเราส่วนใหญ่เป็น 1 page PDF กระบวนการที่กล่าวไปข้างบนจึงเหมาะสมที่สุด

รายชื่อ Extractor Agents

ก่อนและระหว่างทำงานเราได้มีการพูดคุยกับนักวิจัยอย่างใกล้ชิดว่า graph ที่อยากได้สุดท้ายมีอะไรบ้าง แล้วเราตีโจทย์ออกมาเป็น Agent แต่ละตัวโดยตรงที่สามารถนำผลลัพธ์ไป Plot ได้เลย ซึ่งรายชื่อของ Agent มีดังนี้

  • Causes Extractor Agent
  • Health Problem Extractor Agent
  • Location Extractor Agent
  • Severity Extractor Agent
  • Stakeholder Extractor Agent
  • Obstacle Extractor Agent
  • Civil Society Movement Extractor Agent

บทสรุป

หากใครกำลังมองหา Consult มาช่วยสร้าง Agentic AI หรือช่วยปรับปรุง AI Agent ที่มีอยู่แล้วให้มี Accuracy และ Scale ได้

ติดต่อทีมงาน PALO IT Thailand ได้ที่ Facebook: PALO IT Thailand (https://www.facebook.com/PALOITTH)

Special Thanks to Reviewers

  • คุณ Sippakorn Raksakiart
  • คุณ Job Natdhanai