Text-to-SQL คืออะไร ใช้ภาษาคนถามข้อมูลธุรกิจ SME ไทยได้จริงหรือ?
Text-to-SQL คือเทคโนโลยี AI ที่แปลงคำถามภาษาคนเป็นคำสั่ง SQL ให้เจ้าของธุรกิจ SME ถามข้อมูลจากฐานบริษัทได้ด้วยตนเอง แทนการรอรายงานจากทีมไอที เมื่อผู้จัดการพิมพ์ว่า "ขอรายได้รวมเดือนกรกฎาคมแยกตามสาขา" ระบบจะสร้างคำสั่ง SQL ที่ถูกต้อง รันกับฐานข้อมูล และส่งผลกลับมาเป็นตารางหรือสรุปสั้น ๆ ภายในไม่กี่วินาที สำหรับ SME ไทยที่ใช้ Odoo หรือระบบ ERP อื่นอยู่แล้ว เทคโนโลยีนี้ไม่ได้เป็นแค่ของเล่น แต่เป็นเครื่องมือลดคอขวดด้านทักษะและเวลา ทำให้ "ถามข้อมูลจริง" กลายเป็นกิจวัตรประจำวัน
Text-to-SQL คืออะไร?
Text-to-SQL คือเทคนิคที่ใช้ Large Language Model (LLM) เป็นตัวแปลงเจตนาของมนุษย์เป็น Structured Query Language หรือ SQL ซึ่งเป็นภาษาที่ฐานข้อมูลใช้ค้นหาข้อมูล คนที่เขียน SQL เป็นจะสามารถดึงตัวเลขได้ตรงตามเงื่อนไข แต่คนส่วนใหญ่ในธุรกิจ โดยเฉพาะเจ้าของร้าน ผู้จัดการฝ่ายขาย หรือหัวหน้าคลังสินค้า ไม่จำเป็นต้องเข้าใจ syntax ของ SQL เลย Text-to-SQL ทำให้คนกลุ่มนี้ถามฐานข้อมูลด้วยภาษาเดียวกับที่ใช้ถามพนักงาน เช่น "สินค้าตัวไหนขายดีที่สุดในสัปดาห์นี้" หรือ "ลูกค้ารายใดค้างชำระเกิน 30 วัน"
การทำงานจริงไม่ได้มีแค่การแทนที่คำศัพท์ ระบบต้องเข้าใจบริบทด้วย ตัวอย่างง่าย ๆ คือคำว่า "ยอดขาย" ในธุรกิจหนึ่งอาจหมายถึงยอดรวมสุทธิในตาราง sale_order แต่อีกธุรกิจหนึ่งอาจหมายถึงยอดที่บันทึกในตาราง account_move การจะแปลให้ถูก ระบบต้องรู้ schema ของฐานข้อมูล รู้ว่าฟิลด์ใดเชื่อมกับตารางใด และรู้ตัวอย่างคำสั่ง SQL ที่เคยเขียนถูกต้องในบริบทนั้น กระบวนการหลักคือ ผู้ใช้พิมพ์คำถาม ระบบสกัดเจตนาและเงื่อนไข แล้วสร้าง SQL ขึ้นมาใหม่ ไม่ใช่เลือกจากคลังคำสั่งสำเร็จรูป
ตัวอย่างคำสั่งที่ Text-to-SQL สร้างได้จากคำถาม "ขอรายได้รวมเดือนกรกฎาคมแยกตามสาขา" มีหน้าตาแบบนี้:
SELECT warehouse.name AS สาขา, SUM(so.amount_total) AS รายได้รวม
FROM sale_order so
JOIN stock_warehouse warehouse ON so.warehouse_id = warehouse.id
WHERE so.confirmation_date >= '2026-07-01'
AND so.confirmation_date < '2026-08-01'
GROUP BY warehouse.name
คนถามไม่ต้องเข้าใจว่าทำไมต้อง JOIN stock_warehouse หรือทำไมต้องใช้ >= และ < แทนการเช็คเดือนตรง ๆ แต่ AI ที่ได้รับตัวอย่างที่ดีจะสร้างคำสั่งแบบนี้ให้เอง และนี่คือหัวใจของ Text-to-SQL ในมุมธุรกิจ
ทำไม Text-to-SQL ถึงสำคัญกับ SME ไทย?
ปัญหาใหญ่ของ SME ไทยไม่ใช่การไม่มีข้อมูล แต่เป็นข้อมูลอยู่ในระบบ ERP หรือระบบบัญชีแล้วเข้าถึงยาก ทีมไอทีมีงานเล็ก ๆ น้อย ๆ เต็มไปหมด การขอดูรายงานสักชุดต้องรอเป็นวันหรือเป็นสัปดาห์ บางครั้งพนักงานขายอยากรู้ผลยอดขายประจำวันก็ต้องรอให้ฝ่ายไอทีดึงข้อมูลหลังเลิกงาน แล้วส่ง Excel มาให้อีกวันหนึ่ง ถ้าคำถามใหม่เกิดขึ้นตอนประชุมช่วงเช้า ก็ต้องเลื่อนการตัดสินใจไปก่อน
Text-to-SQL เปลี่ยนกระบวนการนี้ให้สั้นลงอย่างมาก ผู้จัดการหรือเจ้าของธุรกิจสามารถถามเองได้ทันที เช่น "กำไรขั้นต้นของเดือนนี้เทียบกับเดือนก่อนลดลงตรงหมวดไหน" หรือ "คลังสาขาบางพลีเหลือสินค้าอะไรต่ำกว่าจุดสั่งซื้อ" คำถามเหล่านี้ไม่ซับซ้อนสำหรับนักเขียน SQL แต่การต้องจ้างคนหรือรอคิวไอทีทำให้หายากกว่าที่ควรเป็น เมื่อเครื่องมือแปลงภาษาคนเป็น SQL ได้ ทรัพยากรที่แพงที่สุดของธุรกิจคือข้อมูลเชิงลึกที่ถูกปลดล็อกออกมาโดยไม่ต้องเป็นโปรแกรมเมอร์
นอกจากนี้ SME ไทยหลายแห่งเริ่มใช้ Odoo เนื่องจากเป็น ERP ที่ปรับแต่งได้และค่าใช้จ่ายต่ำ Odoo เก็บข้อมูลทุกอย่างใน PostgreSQL ซึ่งรองรับการเชื่อมต่อกับ Text-to-SQL ได้โดยตรง แปลว่าธุรกิจที่ลงทุนกับระบบ ERP ไปแล้วไม่ต้องเปลี่ยนซอฟต์แวร์ แค่เพิ่มชั้น AI เข้ามาก็สามารถใช้ข้อมูลที่มีอยู่ตอบคำถามที่เกิดขึ้นจริงในที่ประชุมได้แล้ว
สถานการณ์จริง: SME ไทยใช้ Text-to-SQL ถามอะไรได้บ้าง?
ลองนึกภาพร้านค้าปลีกเสื้อผ้าออนไลน์ที่ขายทั้งหน้าร้านและเว็บ เจ้าของอยากรู้ว่า "สินค้า 5 อันดับแรกที่ขายดีที่สุดเมื่อวานคืออะไร" ด้วย Text-to-SQL ระบบจะไปดึงข้อมูลจากตาราง sale_order และ sale_order_line แล้วจัดกลุ่มตาม product.name เรียงตามยอดขายรวม ซึ่งปกติต้องใช้เวลาเขียน query อย่างน้อย 10–15 นาทีสำหรับคนที่เขียน SQL เป็น แต่ตอนนี้ได้คำตอบแบบเรียลไทม์
โรงงาน SME ที่ผลิตชิ้นส่วนโลหะอาจถามว่า "วัตถุดิบชนิดไหนที่เหลือในสต็อกต่ำกว่าจำนวนขั้นต่ำที่กำหนด" ระบบจะดึงข้อมูลจากตาราง stock_quant เทียบกับ product_template ที่มีฟิลด์ minimum_qty แล้วแสดงรายการที่ต้องสั่งซื้อก่อนปิดการผลิต นี่คือคำถามที่เกิดซ้ำทุกสัปดาห์ และถ้าเตรียมตัวอย่างคำสั่งไว้ ระบบก็จะตอบได้แม่นยำแม้ผู้ใช้จะพิมพ์ต่างจากเดิมเล็กน้อย
ธุรกิจบริการ เช่น บริษัททำความสะอาดหรือบริษัทขนส่ง ก็ถามเรื่องลูกค้าค้างชำระได้ง่าย ๆ ว่า "ใครบ้างที่จ่ายเงินเกินกำหนด 15 วัน และมียอดค้างรวมเท่าไร" ระบบจะ JOIN ตารางลูกค้ากับตารางใบแจ้งหนี้ และกรองวันที่ครบกำหนดกับสถานะการชำระเงิน ข้อมูลเหล่านี้เป็นข้อมูลที่เจ้าของธุรกิจรู้ว่ามีอยู่ใน Odoo แต่ไม่สะดวกจะดึงออกมาทุกวัน Text-to-SQL ทำให้คำถามที่เคยต้องฝากทีมไอทีกลายเป็นประโยคสนทนาง่าย ๆ ภายในเว็บแอปหรือแชท
Text-to-SQL ทำงานอย่างไรกับข้อมูลของเรา?
การทำงานแบบผิวเผินคือ "พิมพ์คำถามเป็นภาษาไทย แล้วได้คำตอบเป็นตาราง" แต่เบื้องหลังมีองค์ประกอบสามส่วนที่ต้องทำงานร่วมกัน ได้แก่ ตัว LLM ที่เข้าใจภาษาและเขียน SQL โครงสร้างฐานข้อมูลหรือ schema ที่อธิบายว่าตารางใดเก็บอะไร และชุดตัวอย่างคำสั่ง SQL ที่ถูกต้อง เพื่อใช้เป็นแนวทางให้ AI รู้จักรูปแบบของบริษัท
ขั้นแรก LLM จะอ่านคำถามและแยกแยะเงื่อนไข เช่น ช่วงเวลา กลุ่มลูกค้า โครงการ หรือสาขา จากนั้นจะ map เงื่อนไขเหล่านั้นกับชื่อตารางและฟิลด์จริงจาก schema ที่ป้อนเข้าไปใน prompt ตัวอย่างเช่น คำว่า "สาขา" จะ map กับ stock_warehouse.name หรือ branch_id ขึ้นอยู่กับโครงสร้างของแต่ละบริษัท ส่วน "ยอดขาย" อาจ map กับ amount_total หรือ price_subtotal การเลือกผิดตัวทำให้ตัวเลขผิดทั้งก้อน จึงจำเป็นต้องมี data dictionary ที่เขียนอธิบายด้วยมือ
ต่อมา LLM จะสร้างคำสั่ง SQL โดยใช้เทคนิคที่เรียกว่า few-shot prompting คือ มีตัวอย่างคำถามและคำสั่งที่ถูกต้อง 20–30 ชุดอยู่ใน system prompt เพื่อให้ AI เลียนแบบรูปแบบเชิงตรรกะ เมื่อได้ SQL แล้วระบบจะตรวจสอบความถูกต้องเบื้องต้น เช่น ฟิลด์ที่ใช้มีจริง ตารางที่ JOIN มีความสัมพันธ์กัน แล้วจึงรันด้วยสิทธิ์ read-only สุดท้ายผลลัพธ์อาจถูกส่งกลับเป็นตาราง หรือถูกส่งให้ LLM ใช้อีกครั้งเพื่อสรุปเป็นภาษาไทย เช่น "เดือนกรกฎาคมมียอดรวม 2.4 ล้านบาท สูงสุดที่สาขาอ่อนนุช"
เริ่มต้นใช้ Text-to-SQL กับธุรกิจใน 6 ขั้นตอน
การเริ่มใช้ไม่ต้องรอให้ทีมไอทีเขียนระบบใหญ่โต เริ่มจากขั้นตอนเล็ก ๆ ได้เลย ขั้นแรกคือ สำรวจฐานข้อมูล เปิดดูตารางที่ใช้ออกใบสั่งขาย เช็คสต็อก หรือบันทึกบัญชี แล้วจดชื่อฟิลด์หลักและความสัมพันธ์ระหว่างตารางเป็นภาษาไทย ขั้นที่สองคือ เลือกเครื่องมือ ที่เหมาะกับงบประมาณ ทั้งโซลูชันเชิงพาณิชย์อย่าง Flowtica หรือเครื่องมือโอเพนซอร์สอย่าง Vanna, Dataherald และ Wren AI โดยต้องเลือกตัวที่รองรับ PostgreSQL และ Odoo
ขั้นที่สามคือ เตรียมตัวอย่างคำสั่ง SQL ที่ถูกต้อง ควรเริ่มจาก 20–30 คำถามที่พบบ่อยในธุรกิจ เช่น ยอดขายรายวัน รายการสินค้าขายดี สต็อกคงเหลือ ลูกค้าค้างชำระ พร้อมคำสั่ง SELECT ที่ถูกต้อง เพื่อให้ AI เรียนรู้สไตล์ของบริษัท ขั้นที่สี่คือ ทดสอบกับข้อมูลจริง ตรวจสอบว่าตัวเลขตรงกับรายงานเดิมหรือไม่ ถ้าไม่ตรงก็เก็บตัวอย่างเพิ่มหรือแก้คำอธิบายฟิลด์ ขั้นที่ห้าคือ จำกัดสิทธิ์การอ่าน สร้าง database user ที่อ่านได้อย่างเดียว และเปิดเผยเฉพาะตารางที่จำเป็นเพื่อลดความเสี่ยงข้อมูลรั่วไหล ขั้นสุดท้ายคือ ให้ผู้ใช้งานจริงลองถาม ช่วงแรกควรมีมนุษย์คอยตรวจสอบคำสั่ง SQL ที่ระบบสร้างและผลลัพธ์ ก่อนจะปล่อยให้ใช้กับทีมขายและผู้จัดการฝ่ายต่าง ๆ
มีข้อควรระวังอะไรบ้างก่อนใช้จริง?
ข้อแรกคือ ความถูกต้องของผลลัพธ์ ไม่ใช่ทุกคำตอบที่ AI สร้างจะถูกต้องเสมอไป ความผิดพลาดที่พบบ่อยคือ LLM เข้าใจฟิลด์ผิด เลือกตารางไม่ตรง หรือลืมเงื่อนไขสำคัญ เช่น การกรองสถานะใบสั่งขายที่ยกเลิก ผู้ให้บริการหลายรายระบุความแม่นยำในระดับ 80–90% ในชุดทดสอบ (ผู้ให้บริการระบุ / ผลจริงขึ้นกับบริบท) แต่ในข้อมูลจริงที่มีชื่อฟิลด์ซับซ้อน ความแม่นยำอาจต่ำกว่านั้น วิธีลดความเสี่ยงคือให้ระบบแสดง SQL ก่อนรันเสมอ และมีผู้ดูแลข้อมูลตรวจสอบเป็นระยะ
ข้อที่สองคือ การควบคุมสิทธิ์อ่านข้อมูล Text-to-SQL เป็นเครื่องมือที่ทรงพลัง เพราะใช้ภาษาธรรมชาติถามได้ทุกอย่าง ถ้าไม่กำหนดสิทธิ์ให้แคบ ๆ พนักงานอาจเผลอดึงข้อมูลเงินเดือนของทั้งบริษัท หรือข้อมูลลูกค้าทั้งหมดออกมาได้ ดังนั้นควรสร้าง user ที่มีสิทธิ์ SELECT เฉพาะตารางที่จำเป็น และใช้ row-level security เพื่อให้แต่ละแผนกเห็นเฉพาะข้อมูลของตนเอง
ข้อที่สามคือ ค่าใช้จ่าย token การเรียก LLM แต่ละครั้งมีค่าใช้จ่ายตามจำนวน input และ output token ยิ่งส่ง schema ทั้งฐานข้อมูลและตัวอย่างคำสั่งจำนวนมากในทุกคำถาม ยิ่งใช้ token เยอะ สำหรับ SME ควรเริ่มจากชุดข้อมูลเล็ก ๆ และตั้งงบประมาณรายเดือน รวมถึงใช้แคชเพื่อไม่ให้คำถามซ้ำ ๆ เสียค่าใช้จ่ายซ้ำ
ข้อสุดท้ายคือ การให้มนุษย์ตรวจสอบก่อนใช้งานจริง โดยเฉพาะช่วงสัปดาห์แรก ควรมีระบบ log คำถามและคำตอบ เพื่อให้ทีมไอทีหรือหัวหน้าแผนกดูว่า AI ตอบตรงความต้องการหรือไม่ เมื่อเก็บข้อมูลไปได้ระยะหนึ่ง ก็นำคำถามที่พบบ่อยมาทำเป็นรายงานมาตรฐานอัตโนมัติ ซึ่งจะช่วยลดค่าใช้จ่ายและเพิ่มความมั่นใจให้กับผู้ใช้
สรุป: SME ไทยควรเริ่มใช้ Text-to-SQL วันนี้ไหม?
คำตอบคือควรเริ่มทดลอง โดยเฉพาะธุรกิจที่ใช้งาน Odoo หรือระบบฐานข้อมูลอยู่แล้ว และมีข้อมูลยอดขาย สต็อก หรือบัญชีที่พร้อมใช้ Text-to-SQL ไม่ใช่ความฝันที่ต้องรอทีมไอทีขนาดใหญ่ แต่เป็นเทคโนโลยีที่ SME ไทยสามารถเริ่มได้ภายในไม่กี่สัปดาห์ หากยอมลงทุนเวลาจัดเตรียม schema และตัวอย่างคำสั่ง SQL สิ่งสำคัญคือต้องมองว่า AI เป็นผู้ช่วยที่ต้องมีคนตรวจสอบ ไม่ใช่เครื่องมือที่ไว้ใจได้ 100% เมื่อเริ่มจากคำถามเล็ก ๆ ที่เกิดจริงในธุรกิจ ประโยชน์จะเห็นได้ทันที เพราะการตัดสินใจด้วยข้อมูลจริงไม่ควรรอนานถึงรอบรายงานเดือนหน้า
คำถามที่พบบ่อย
Text-to-SQL แปลภาษาคนเป็น SQL ได้แม่นยำแค่ไหน?
ความแม่นยำขึ้นอยู่กับความชัดเจนของคำถาม โครงสร้างฐานข้อมูล และตัวอย่างที่ให้ AI เรียนรู้ หากตารางมีชื่อไม่ตรงความหมายหรือข้อมูลซ้ำซ้อน ผลลัพธ์อาจผิดได้ แต่เมื่อเตรียม schema และตัวอย่าง query ที่ดี ผู้ให้บริการหลายรายระบุความแม่นยำในระดับ 80–90% ในกรณีทดสอบ (ผู้ให้บริการระบุ / ผลจริงขึ้นกับบริบท) วิธีลดความผิดพลาดคือให้ AI สร้างคำสั่ง SQL แล้วให้ผู้ใช้เห็นข้อมูลตัวอย่างก่อนรันจริงเสมอ
SME ที่ไม่ได้เขียน SQL เป็น ใช้ได้จริงไหม?
ได้จริง เพราะผู้ใช้พิมพ์ถามเป็นภาษาไทย เช่น 'เดือนที่แล้วขายดีที่สุด 5 อันดับคืออะไร' ระบบจะจัดการแปลงเป็นคำสั่ง SQL ให้เอง อย่างไรก็ตาม ผู้ใช้ควรเข้าใจความหมายข้อมูลขั้นพื้นฐาน เช่น ยอดขายรวมภาษีหรือไม่ สต็อกคงเหลือสาขาไหน เพื่อจะได้ตรวจสอบผลลัพธ์ได้ ระบบไม่ใช่คนเขียนรายงาน แต่เป็นเครื่องมือที่ช่วยให้ถามได้บ่อยขึ้นและเร็วขึ้น
ต้องมีข้อมูลแบบไหนก่อนใช้?
ขั้นแรกต้องมีฐานข้อมูลที่ใช้งานจริง เช่น PostgreSQL, MySQL หรือ Odoo ที่มีตารางลูกค้า สินค้า คำสั่งซื้อ แล้วรวบรวม schema ของแต่ละตาราง ทั้งชื่อฟิลด์ ชนิดข้อมูล และความสัมพันธ์ระหว่างตาราง จากนั้นเตรียมตัวอย่างคำสั่ง SQL ที่ถูกต้องและคำถามภาษาไทยที่ตรงกับตัวอย่าง เพื่อให้ AI เรียนรู้รูปแบบและใช้เป็นอ้างอิง แนะนำให้เริ่มจากชุดข้อมูลเล็ก ๆ เช่น ตารางยอดขายและสินค้า ก่อนขยายไปตารางบัญชีหรือเงินเดือน
ใช้กับ Odoo ได้จริงหรืออย่างไร?
ได้จริง เพราะ Odoo เก็บข้อมูลในฐานข้อมูล PostgreSQL ซึ่ง Text-to-SQL รองรับการเชื่อมต่อโดยตรง ตัวอย่างเช่น ถามว่า 'ยอดขายตามพนักงานขายรายคนไตรมาสนี้เท่าไร' ระบบจะ map ฟิลด์ในตาราง sale_order และ order_line ให้โดยอัตโนมัติ แต่ต้องเปิดสิทธิ์อ่านเฉพาะตารางที่เกี่ยวข้อง และควรทดสอบกับข้อมูลจริงก่อนใช้กับทีมงาน เพื่อป้องกันการเผลอดึงข้อมูลลูกค้าออกมามากเกินความจำเป็น
ราคาและค่าใช้จ่ายเป็นแบบไหน?
เครื่องมือมีตั้งแต่โอเพนซอร์สที่ใช้เองฟรี ไปจนถึงบริการคลาวด์ที่คิดค่าใช้จ่ายตามจำนวน token หรือจำนวนคำสั่ง SQL ต่อเดือน สำหรับ SME ควรเริ่มจากรุ่นฟรีหรือทดลองใช้งานก่อน ค่าใช้จ่ายหลักคือเวลาเตรียมข้อมูลและเขียนตัวอย่าง query ไม่ใช่ค่า license เพียงอย่างเดียว ควรประเมินปริมาณคำถามต่อเดือนและขนาดข้อมูลก่อนเลือกแพ็กเกจ