ข้อความหนึ่งบรรทัดอาจทำให้งานหลังบ้านต้องตัดสินใจหลายเรื่อง เช่น ลูกค้าพิมพ์ว่า “ขอเปลี่ยนที่อยู่ค่ะ ส่งไปหรือยัง ถ้าส่งแล้วไม่ต้องเปลี่ยน” ทีมต้องเข้าใจเจตนา ตรวจสถานะจัดส่ง ตรวจสิทธิ์ของคนแก้ และเก็บหลักฐานว่าตัดสินใจอย่างไร
ถ้าโยนทุกอย่างให้โมเดลเดียว โมเดลจะถูกขอให้ทำทั้งงานภาษาและงานควบคุมระบบในครั้งเดียว ทางเลือกที่ปลอดภัยกว่าคือให้ AI ตอบเฉพาะคำถามเชิงความหมาย แล้วให้โค้ด Odoo และคนรับผิดชอบตัดสินตามสถานะจริง
Jev เป็นโมเดลตัดสินใจของ TypeSafe AI ที่รับข้อมูลพร้อมคำถามซึ่งกำหนดรูปแบบคำตอบไว้แล้ว และคืนคำตอบในรูปที่โค้ดนำไปใช้ต่อได้ จุดที่น่าสนใจจึงไม่ใช่การให้ Jev เขียนข้อความตอบลูกค้า แต่เป็นการวาง Jev ไว้ก่อนคิวงาน เพื่อช่วยบอกว่าเรื่องนี้น่าจะเป็นงานประเภทใด มีความกำกวมแค่ไหน และควรส่งให้ใครตรวจ
บทความนี้เสนอขั้นตอนการทำงานสำหรับทดลอง แนวทางนี้ยังไม่ใช่กรณีใช้งาน Jev ในโครงการลูกค้าของ Enersys
แยกความหมายออกจากอำนาจเปลี่ยนข้อมูล
ในตัวอย่างเปลี่ยนที่อยู่ Jev ไม่จำเป็นต้องเห็นข้อมูลทุกฟิลด์ใน Odoo และไม่ควรได้รับสิทธิ์แก้ใบส่งของ หน้าที่ของมันอาจมีเพียงการอ่านข้อความที่เตรียมไว้แล้วตอบคำถาม เช่น
- ข้อความนี้อยู่ในกลุ่มเปลี่ยนที่อยู่ ติดตามพัสดุ ยกเลิกคำสั่งซื้อ หรือเรื่องอื่น
- ระดับความเร่งด่วนตามเกณฑ์ที่ทีมกำหนดอยู่ระดับใด
- ข้อความมีเงื่อนไขที่ต้องตรวจสถานะก่อนตอบหรือไม่
เมื่อได้ผลคัดแยก โค้ดจึงอ่านสถานะการจัดส่งจาก Odoo หากรายการยังไม่ส่ง ระบบอาจสร้างกิจกรรมให้เจ้าหน้าที่ตรวจที่อยู่และยืนยันกับลูกค้า หากส่งแล้ว ระบบใช้เส้นทางอีกแบบตามนโยบายของขนส่งและธุรกิจ ไม่มีขั้นตอนไหนต้องให้โมเดลเดาว่าพัสดุส่งแล้วหรือยัง เพราะ Odoo หรือระบบขนส่งมีค่าจริงอยู่แล้ว
หลักนี้ใช้กับงานอื่นได้ด้วย Jev ช่วยอ่านว่า “ลูกค้ากำลังขออะไร” ส่วนโค้ดตรวจว่า “ระบบอนุญาตให้ทำอะไร ณ สถานะนี้” และคนตอบว่า “กรณีนี้ควรอนุมัติหรือไม่”
Choice, Score และ Noul ใช้คนละงาน
TypeSafe แบ่งคำถามเป็น 3 แบบ และอนุญาตให้ส่งหลายคำถามไปประเมินกับข้อมูลชุดเดียวกันแบบแยกอิสระ เอกสารบทนำ แนะนำให้คำถามหนึ่งตอบการตัดสินใจที่แคบและเฉพาะเจาะจง หากต้องชั่งหลายปัจจัย ควรแยกคำถามแล้วประกอบกติกาในโค้ด
Choice เลือกหนึ่งคำตอบจากตัวเลือกที่กำหนด เหมาะกับการเลือกคิว เช่น change_address, track_delivery, cancel_order, other ผลลัพธ์มีตัวเลือกที่เลือก การกระจายความน่าจะเป็น และค่า confidence
Score ให้ระดับตามเกณฑ์ที่เรียงลำดับ เหมาะกับการแบ่งความเร่งด่วนตั้งแต่ “รอตามรอบได้” ถึง “ต้องตรวจก่อนตัดรอบขนส่ง” แต่ละระดับต้องมีคำอธิบายที่คนหน้างานเข้าใจตรงกัน ไม่ควรใช้ Score เพื่อคำนวณจำนวนเงิน ส่วนลด หรือจำนวนสินค้า
Noul ตอบคำถามใช่หรือไม่ใช่เป็นค่าระหว่าง 0 ถึง 1 เช่น “ข้อความนี้มีเงื่อนไขขึ้นกับสถานะจัดส่งหรือไม่” Noul ไม่มีฟิลด์ confidence แยกต่างหาก จึงไม่ควรนำเกณฑ์ของ Choice ไปใช้กับ Noul โดยตรง
คำถามทั้งสามแบบไม่ได้แทนกติกาธุรกิจ ถ้าการเปลี่ยนที่อยู่ต้องผ่านเงื่อนไข 4 ข้อ ทีมควรให้โค้ดตรวจ 4 ข้อนั้นจากฟิลด์จริง ไม่ควรซ่อนเงื่อนไขทั้งหมดไว้ในคำถามยาวข้อเดียว
Confidence ช่วยจัดคิว ไม่ได้ยืนยันว่ารายการหนึ่งถูก
สำหรับ Choice และ Score ค่า confidence คำนวณจากรูปทรงของการกระจายความน่าจะเป็น หากน้ำหนักกระจุกที่คำตอบเดียว ค่าจะสูงกว่าเมื่อหลายคำตอบใกล้กัน TypeSafe อธิบายวิธีอ่านค่านี้ เพื่อให้โค้ดเลือกว่าจะทำต่อ ขอข้อมูลเพิ่ม หรือส่งให้คนตรวจ
การปรับเทียบ (calibration) อธิบายพฤติกรรมของกลุ่มคำตอบจำนวนมาก ไม่ได้ค้ำประกันว่ารายการที่ confidence 0.9 รายการหนึ่งจะถูกแน่นอน AI primer ของ TypeSafe ระบุขอบเขตนี้ไว้โดยตรง
ดังนั้นทีมไม่ควรคัดลอกเกณฑ์ตัดสิน (threshold) จากตัวอย่างในเอกสารมาใช้กับงานจริง เกณฑ์ของคิว “ติดตามพัสดุ” อาจผ่อนกว่างาน “แก้ที่อยู่หลังออกใบส่งของ” เพราะต้นทุนเมื่อส่งผิดคิวต่างกัน และเกณฑ์ของข้อความภาษาไทยต้องมาจากผลทดสอบภาษาไทยขององค์กรเอง
งานที่ยังควรอยู่ในโค้ดและ Odoo
เอกสารข้อจำกัดของ Jev 1.13 ระบุว่าโมเดลไม่เหมาะกับเลขที่ต้องแม่น การนับ การเปรียบเทียบวันเวลา งานที่ต้องอ้อมหลายชั้น และข้อมูลที่มีรายละเอียดไม่เกี่ยวข้องมาก ข้อจำกัดเหล่านี้ช่วยแบ่งระบบได้ค่อนข้างตรงไปตรงมา
งานต่อไปนี้ควรใช้กติกาที่ทดสอบได้ในโค้ดหรือค่าจาก Odoo
- คำนวณสต็อกพร้อมขาย จำนวนสินค้า ส่วนลด ภาษี และยอดสุทธิ
- ตรวจว่าสถานะใบส่งของอยู่ก่อนหรือหลังจุดที่อนุญาตให้แก้
- เปรียบเทียบกำหนดส่ง รอบตัดคลัง และช่วงเวลาที่นโยบายกำหนด
- ตรวจสิทธิ์ผู้ใช้ ขอบเขตบริษัท คลังสินค้า และกติกาการเข้าถึงรายการ
- ป้องกันการทำรายการซ้ำด้วยรหัสอ้างอิงที่ระบบตรวจซ้ำได้
Jev ยังรับข้อมูลเป็น text เท่านั้นตาม หน้ารุ่นโมเดล หากลูกค้าส่งภาพฉลาก เสียง หรือ PDF ต้องมีขั้นตอนแปลงเป็นข้อความก่อน อาจใช้ OCR หรือโมเดลภาษาเมื่อจำเป็น แต่ถ้าข้อมูลต้นทางเป็นข้อความอยู่แล้ว ไม่ควรเพิ่มโมเดลอีกตัวโดยไม่มีเหตุผล
ภาษาอังกฤษเป็นภาษาหลักที่ Jev ทำได้ดีที่สุด เอกสารระบุว่าภาษาอื่นต้องทดสอบกับข้อมูลของตนเอง ดังนั้นข้อความไทย คำย่อในแชต ชื่อถนน และการพิมพ์ผิดต้องอยู่ในชุดทดสอบจริง จะอนุมานจากผลภาษาอังกฤษไม่ได้
