เนื้อหานี้เป็นแนวทางเบื้องต้นในการใช้งาน DialogFlow
ร่วมกับ LINE Messsage API โดยจะเป็นการใช้งาน DialogFlow
สร้างบทสทนาโต้ตอบกับผู้เใช้ ให้กับ Line Bot ของเรา
การใช้งาน DialogFlow
เบื้องต้น เราต้องทำการสมัครสมาชิก เพื่อเข้าใช้งาน DialogFlow โดยสามารถเข้าไปที่เว็บไซต์
การใช้งาน DialogFlow เราจำเป็นต้องมีบัญชี Google Account ให้ทำการล็อกอินด้วยบัญชี Google
แล้วไปยังหน้า จัดการ (console)
สร้าง Dialogflow agent
เมื่อเข้ามาสู่หน้าจัดการแล้ว ให้เราทำการสร้าง Agent ขึ้นมาใหม่ สามารถดูแนวทางได้ตามนี้
https://dialogflow.com/docs/getting-started/first-agent
https://dialogflow.com/docs/getting-started/first-agent
ในที่นี้จะตั้งเป็น DemoAgent กำหนดเป็นภาษาไทย เราเลือกให้มีการสร้าง Google Project ขึ้นมาใหม่ รายละเอียดประมาณรูป
ด้านล่าง จากนั้นกด Create แล้วรอสักครู่
เมื่อทำการสร้าง DemoAgent เรียบร้อยแล้ว เราก็จะเห็นหน้าตาการจัดการประมาณรูปด้านล่าง
สิ่งที่เราต้องสนใจเบื้องต้นคือ หัวข้อ "Intents"
ในเบื้องต้น DialogFlow จะสร้าง Intents ให้กับ Agent ของเรามาให้อัตโนมัติ 2 รายการคือ
Default Fallback Intent และ Default Welcome Intent
เข้าใจอย่างง่าย "intents" คือ สิ่งที่บ่งบอกถึงจุดประสงค์ เป้าหมาย หรือ ความตั้งใจ ของผู้ใช้ที่ต้องการจาก Agent ซึ่งก็จะคือ
Bot นั่นเอง โดยเราสามารถคลิกเข้าไปดูค่าต่างๆ ใน Intent ทั้งสองได้ เช่น เข้าไปดูใน Default Welcome Intent
แล้วดูในหัวข้อ Training phrases กับ Responses เข้าใจอย่างง่าย ก็คือ ข้อความที่ผู้ใช้จะคุยกับ Bot และ ข้อความที่ Bot จะ
คุยโต้ตอบกลับ โดยจะสัมพันธ์กัน ทดสอบอย่างง่าย เราพิมพ์ทดสอบ คำว่า "ว่าไง" และ Bot ก็จะเลือกคำว่า "สวัสดีค่ะ" หรือ
"สบายดีไหมคะ" มาตอบกลับเรา (ทดสอบได้ที่ฟอร์มด้านขวา)
โดยการโต้ตอบ Bot จะเรียนรู้ข้อความที่ผู้ใช้กรอกเข้ามา และเลือกคำตอบที่เหมาะสม ไม่จำเป็นว่า เราจะต้องกรอกข้อมูลทักทาย
ตรงกับค่าที่กำหนดใน Training phrases เสมอไป เช่น เราลองพิมพ์คำว่า "ไง" ก็จะได้ผลตอบกลับมาว่า "สวัสดีค่ะ"
เราสามารถเพิ่มข้อความ คำ หรือประโยคที่สัมพันธ์กับ Intent อย่างกรณีนี้เป็น Intent สำหรับเพื่อทักทาย เราก็สามารถไปเพิ่ม
ข้อความที่ผู้ใช้อาจจะใช้งานใน Training phrases และคำตอบที่เราต้องการให้ Bot ตอบกลับไปยังผู้ใช้ใน Responses
โดยยิ่งมีจำนวนมากๆ ก็ยิ่งให้สามารถตอบสนองการสนทนาได้อย่างครอบคลุม
เราลองพิมพฺ์คำสนทนาอื่นๆ ที่ไม่ใช้การทักทายเข้าไปดู เช่น "หิวข้าว"
จะเห็นว่าตอนนี้ Bot ไม่เข้าใจสิ่งที่เราต้องการ หรือไม่มี Intent อื่นใด สัมพันธ์กับสิ่งที่เราต้องการ จึงทำการเรียกใช้งาน
Default Fallback Intent และตอบกลับด้วยข้อความว่า "พูดอีกทีได้ไหมคะ" เราลองคลิกเข้าไปดูใน Default Fallback Intent
และดูในส่วนของ Responses
ตอนนี้เราพอจะเห็นแล้วว่า DialogFlow สร้างรูปแบบการสนทนาได้อย่างง่าย ซึ่งในเบื้องต้นเรายังไม่ได้กำหนดอะไรมากนัก
หรือยังไม่ลงไปในรายละเอียดการใช้งาน DialogFlow สิ่งที่เราต้องการคือ เราต้องการใช้งาน DialogFlow ให้ทำงานในลักษณะ
เดียวกันนี้ใน LINE Bot ของเรา
การ Integrations ร่วมกับ Line Bot
DialogFlow อำนวยความสะดวกให้เรา สามารถใช้งานร่วมกับ Line Messaging API ได้อย่างง่าย โดยในหน้าจัดการ ให้ไปที่
เมนู Integrations แล้วเลือก Line
ให้เปิดใช้งานการ Integrate ร่วมกับ Line รอสักครู่ สิ่งที่เราจะนำมา กรอกในหน้านี้คือ Channel ID, Channel Secret และ
Channel Access Token โดยเราต้องไปเอาค่านี้ใน หน้า Line Developers console
กดปุ่ม Start จากนั้น ให้เราเอาค่า Webhook URL ใน DialogFlow ไปกรอกใน Line Messaging API
เป็นอันเสร็จเรียบร้อย
ทดสอบ Line Bot ใช้งานร่วมกับ DialogFlow
เราทดสอบส่งข้อความไปยัง Line Bot เพื่อดูว่า มีการส่งข้อมูลไปยัง Webhook URL ที่ DialogFlow กำหนดให้หรือไม่
และมีการใช้งานชุดข้อความสนทนาจาก Agent ที่เราสร้างไว้ใน DialogFlow หรือไม่ ดูรูปด้านล่างการทดสอบ
เริ่มต้น เราทักไปด้วยข้อความว่า "หวัดดี" Bot ตอบกลับด้วยข้อความว่า "สบายดีไหมคะ" ซึ่งเป็น Responses ของ
Default Welcome Intent จากนั้น เราส่งข้อความว่า "หิวข้าว" Bot ตอบกลับด้วยข้อความว่า "ฉันไม่เข้าใจค่ะ พูดใหม่ได้ไหมคะ"
ซึ่งเป็น Responses ของ Default Fallback Intent
การใช้งาน DialogFlow ช่วยให้เราสร้างการโต้ตอบกับผู้ใช้ผ่านข้อความได้ง่ายและสะดวก โดยถ้าเป็นการใช้งานทั่วๆ ไป ก็ถือว่า
เพียงพอแล้ว โดยเราสามารถไปเพิ่ม Intent ในรูปแบบต่างๆ ให้กับ Agent ได้ตามต้องการ ซึ่ง DialogFlow ยังมีความสามารถอื่นๆ
อีกให้เราได้ปรับประยุกต์ และใช้งาน
อย่างไรก็ตาม ในการใช้งาน Line Bot เราก็ยังอยากใช้ความสามารถของ LINE bot SDK ในการจัดการกับข้อความเพื่อโต้ตอบ
กับผู้ใช้ในรูปแบบที่หลากหลาย และยืดหยุ่นมากกว่าการกำหนดใน DialogFlow แต่เราก็ยังอยากใช้งาน DialogFlow จัดการเฉพาะ
ในส่วนของข้อความ ดังนั้น เนื้อหาตอนหน้า เราจะมาใช้งาน Webhook URL ทั้งที่กำหนดเองที่ฝั่ง server เรา เพื่อให้สามารถใช้งาน
LINE bot SDK สร้างข้อความรูปแบบต่างๆ เช่น Template, Flex Message เป็นต้น และเราจะใช้งาน Webhook URL ของ
DialogFlow กรณีเป็นข้อความ ไปพร้อมๆ กัน
เข้าใจอย่างง่ายก็คือ ถ้าผู้ใช้ส่งข้อความใดๆ และเป็นข้อความที่ไม่ได้กำหนดให้ทำการตอบกลับด้วย LINE bot SDK ก็ให้ทำการ
ส่งต่อ ค่าที่ Line กำหนดไปเรียกใช้งานที่ฝั่ง DialogFlow หรือก็คือ Line ส่งอะไรมาให้เรา เราก็ส่งต่อไปให้ DialogFlow ทั้งหมด
รอติดตาม