Barista Chatbot with Dialogflow

หลังจากที่เราได้ลองทำ Chatbot ด้วย IBM Watson กันไปแล้ว แต่ไม่สามารถใช้งานกับภาษาไทยได้ เราจะมาลองสร้าง Chatbot ด้วย Dialogflow ที่สามารถใช้ภาษาไทยได้กัน ซึ่งการทำงานก็จะคล้ายกับ IBM Watson เพราะเป็น NLP เหมือนกัน


การทำงานของ Chatbot จะเริ่มจาก User พิมพ์ข้อความไปยัง Agent ที่ประกอบไปด้วย Intent มากมายเพื่อจัดกลุ่มความต้องการของ User แล้วทำการ Matching โดยภายใน Intent จะประกอบไปด้วย Component หลัก ๆ 3 อย่าง

  • Training Phrase : เป็นการกำหนดประโยคที่ User จะส่งมายัง Agent แบบคร่าว ๆ แล้วใช้ Machine Learning ในการ Train เพื่อสร้างรูปแบบของประโยค Language Model
  • Action and Parameter : เป็นการปรับปรุง Language Model โดยสามารถใส่ Action ข้อความเพื่อรับ Input จาก User เพิ่มเติม ให้สามารถ Extracted Data แล้ว Match กับ Entity
  • Response : เป็นการกำหนดข้อความ Text, Speech หรือ Visual Response ตอบกลับไปยัง User โดยสามารถใช้ Response ที่ถูก Built-in มากับ Dialogflow หรือจะใช้ Fulfillment นำข้อมูลไป Process ผ่าน Webhook แล้วส่งค่ากลับมา

Get Started

  • คลิก Create Agent กำหนดชื่อเป็น Barista โดยเลือก Default Language เป็นภาษา Thai แล้วคลิก Create
  • ตรง Intent จะสร้าง Default Intent ขึ้นมา 2 ตัว Fallback Intent และ Welcome Intent คลิก Default Welcome Intent
  • จะแสดงรายการ Training Phrase พื้นฐานมาให้เราแล้ว รวมถึง Response ด้วย
  • ให้ทำการสร้าง Entity ก่อนสร้าง Intent ซึ่งเปรียบเสมือนการจัดกลุ่มคำที่อยู่ในประเภทเดียวกัน Synonym เช่น Coffee Entity หากลูกค้าต้องการสั่ง Mocha อาจจะพิมพ์เป็นภาษาไทย มอคค่า หรือภาษาอังกฤษ Mocha
  • หลังจากได้ Coffee Entity แล้ว สิ่งที่ทางร้านต้องเป็นคนถามต่อก็คือ รับเป็นกาแฟร้อน กาแฟเย็น กาแฟปั่น เราก็จะสร้าง Type Entity
  • สิ่งที่ร้านจะต้องถามคำถามสุดท้ายเพื่อรับ Requirement ที่ชัดเจนก็คือ หวานปก, หวานน้อย หรือไม่ใส่น้ำตาล เราก็จะสร้าง Sweet Entity
  • จากนั้นเราก็จะมาสร้าง Intent กัน แต่ก่อนจะไปสร้าง เราจะมาลองแก้ไข Default Welcome Intent ให้มันตอบข้อความเราแบบเป็นทางการกันก่อน โดยแก้ไข Training Phrase และ Response
  • ให้ทำการสร้าง Order Intent ซึ่งเปรียบเสมือนประโยคที่ลูกค้าจะสั่งกาแฟ เช่น ลาเต้เย็นหวานน้อย, เอสเพรสโซ่ร้อน, Mocha ปั่น ซึ่งถ้าหากกำหนด Entity ก่อน แล้วมาสร้าง Intent มันจะทำการ Detect Entity ให้โดยอัตโนมัติ
  • เราสามารถกำหนด Require Parameter ที่ต้องการและ Prompts ข้อความตอบกลับจาก Action and Parameter ของ Entity ได้ ก็คือลูกค้าจะต้องระบุว่าอยากกินกาแฟอะไร Coffee Entity, รับเป็นกาแฟร้อน กาแฟเย็น หรือว่าปั่น Type Entity, หวานปกติ หรือหวานน้อย Sweet Entity
  • เราสามารถลองทดสอบ Agent ของเราได้ที่ Try it now ด้านขวามือ ในบทความหน้าจะมาลอง Integrate เข้ากับ Line กัน

อ่านเพิ่มเติม : https://bit.ly/2XP1TST


Leave a Reply

Your email address will not be published. Required fields are marked *