Forwarding Image From LINE to Your Custom Image Processing API via ABDUL in AI for Thai Platform
หลายคนมีโปรแกรมประมวลผลภาพของตัวเอง แต่ต้องการนำมาใช้ร่วมกับ AI Service อื่นๆ ใน AI for Thai Platform วันนี้ผมมีวิธีง่ายๆ มาฝาก โดยใช้ ABDUL Chatbot Platfrom ซึ่งเป็นหนึ่งใน AI Service ด้าน Conversation โดยเราสามารถใช้ ABDUL เป็นตัวกลางในการ integrate service ต่าง ๆ ครับ
ขั้นตอนการทำงาน
- ผู้ใช้ส่งรูปทาง LINE
- LINE ส่งรูปต่อให้ ABDUL
- ABDUL ส่งต่อรูปให้ Custom API
- API คืนคำตอบกลับมา
- ABDUL ส่งคำตอบกลับให้ผู้ใช้ผ่าน LINE
ผมขอข้ามขั้นตอนการลงทะเบียนระบบ การเข้าไปสร้างแชตบอตทั้งหมดไปก่อนนะครับ รวมถึงการเชื่อมต่อระหว่าง ABDUL กับ Line Developer ด้วย Webhook จะขอกระโดดไปที่การตั้งค่าให้ ABDUL สามารถรับรูปและส่งต่อรูปได้ ดังนี้
- เข้าไปสร้าง Conversation Unit ชื่อ USER_SEND_IMAGE * ซึ่งจะเป็น Unit ที่รับ Image Event จาก LINE
- สร้าง Response ด้วย function @fwimage(ENDPOINT,*1) โดย ENDPOINT คือ endpoint ของ Image Processing API ของคุณเอง และ *1 คือ ค่า ID ของรูปที่ส่งมา
จุดสำคัญของ function นี้ คือ ABDUL จะส่งค่าไปให้เป็น json ผ่าน POST method ตาม โครงสร้างนี้
{uid : LINE USER ID, image : STRINGBASE64}
นั่นหมายความว่า ทาง API ต้องรับค่าไปเป็น json ให้ดึงค่าจาก field image ที่เป็น StringBase64 จากนั้นก็ convert ให้เป็น binary ให้เรียบร้อย แล้วบันทึกเป็น image format ทั่วไป
จากนั้นก็นำรูปที่ได้ ไปประมวลผลตามอัธยาศัย
และอย่าลืม ขั้นตอนสุดท้าย
3. ส่งค่าคำตอบจากการประมวลผลกลับมาให้ผู้ใช้ด้วย เป็น text/plain นะครับ (ตอนนี้ยัง support แค่ text/plain แต่เร็วๆ นี้จะทำให้ support json เพื่อความยืดหยุ่นครับ
สำหรับฟังก์ชันนี้ นอกจากจะประยุกต์ใช้กับการส่งต่อให้ Image Processing API แล้ว ยังสามารถใช้เป็นการเก็บรูปจากผู้ใช้ไว้ใน server ได้เช่นกันครับ
ลองเอาไปประยุกต์ใช้กันต่อนะครับ หากทำ api เจ๋งๆ แล้วอยากเอามาเผื่อแผ่ให้คนอื่นใช้บน AI for Thai ก็หลังไมค์มาบอกกันได้เลยนะครับ ^____^