ทำไมต้อง LINE Chatbot?

ปัจจุบัน LINE ได้กลายมาเป็นช่องทางหลักในการสื่อสารของคนไทย ด้วยจำนวนผู้ใช้งานกว่า 45 ล้านคนทั่วประเทศ โดยการใช้งานหลากหลายตั้งแต่คุยกันในหมู่เพื่อนฝูง ครอบครัว จนไปถึงการมีปฏิสัมพันธ์กับธุรกิจหรือแบรนด์ต่างๆ

Apps Overflow

ประกอบกับตอนนี้ปัญหาใหญ่ของตลาด Mobile แอพฯ นั่นก็คือ มีแอพฯมากเกินไปจนล้นตลาด นักพัฒนาก็จะเผชิญหน้ากับความยากลำบากในการทำให้แอพฯ ของตนเองเป็นที่รู้จักและติดอันดับในตลาด แถมยังต้องดูแลสร้างแอพฯทั้ง iOS และ Android จะดีกว่าไหมถ้าเราสร้างบริการของเราบน LINE แอพฯที่คนไทยทุกคนมีติดเครื่องอยู่แล้ว

สิ่งที่คุณจะได้ลงมือทำ

ใน codelab นี้คุณจะได้เรียนการสร้าง LINE Chatbot ที่เข้าใจและตอบโต้เป็นภาษาไทยได้ เพื่อนำไปใช้ในธุรกิจหรือโปรเจคของตัวเอง โดยสามารถทำได้โดยไม่ต้องเขียนโปรแกรม ผ่านการใช้เครื่องมือฟรีที่ชื่อ Dialogflow

สิ่งที่คุณจะได้เรียนรู้

สิ่งที่คุณต้องเตรียมพร้อมก่อนเริ่ม Codelab

LINE Messaging API คืออะไร?

LINE Messaging API คือ API ที่จะทำหน้าที่เป็นตัวกลางที่จะเชื่อมต่อ Server ของเราเข้ากับ LINE Official Account ทำให้เราสามารถเขียนโปรแกรมเพื่อสร้างบริการที่เราต้องการ ผ่านการข้อความและโต้ตอบกับผู้ใช้ในลักษณะ Chatbot ได้นั่นเอง โดยสามารถโต้ตอบกับผู้ใช้หลักๆได้ 2 แบบได้แก่

Push messages

การส่งข้อความจาก Chatbot ไปหาผู้ใช้ โดยที่ผู้ใช้อยู่เฉยๆไม่ได้มีการ request อะไรมาที่ Chatbot (ลักษณะ One-way communication) เช่น Chatbot ส่งข้อความโปรโมชั่นไปหาผู้ใช้

Reply messages

เป็นการโต้ตอบกับ Chatbot โดยผู้ใช้เป็นคน request มาที่ Chatbot ก่อนและตัว Chatbot ทำการตอบข้อความกลับไปหาผู้ใช้ เช่น ผู้ใช้ส่งข้อความเข้ามา หรือ ผู้ใช้ทำการ Add Chatbot เป็นเพื่อน (ผู้ใช้เป็นคนทักหา Account เราก่อน ลักษณะ Two-way communication)

Webhook events คืออะไร?

คือเหตุการณ์ event ต่างๆที่เกิดขึ้นกับ Chatbot ของเรา (event trigger) โดยเมื่อ event เกิดขึ้นแล้วจะมีสัญญาณพร้อมกับข้อมูลในรูปแบบที่เป็น JSON วิ่งมาที่ Webhook API ที่เราผูกไว้ ซึ่งภายใน JSON นั้นจะมี replyToken ที่ไว้สำหรับการ Reply messages เพื่อตอบกลับผู้ใช้ได้นั่นเอง

สมัครเป็น LINE Developer

จุดเริ่มขบวนสำหรับการพัฒนาแอปพลิเคชันต่างๆบนแพลทฟอร์มของ LINE คือคุณจะต้องสมัครเป็น LINE Developer ก่อน

  1. เข้าไปที่ https://developers.line.biz/console/ แล้วเลือก Log in with LINE account(สีเขียว) เพื่อเข้าสู่ระบบ

  1. เข้าสู่ระบบด้วยบัญชี LINE ของคุณให้เรียบร้อย
  2. กรอกชื่อและอีเมล พร้อมกดยอมรับ Agreement จากนั้นกดปุ่ม Create my account เป็นอันเสร็จสิ้นขั้นตอนการสมัครเป็น LINE Developer


สร้าง Provider

Provider คือ superset ของแอปทั้งหลายที่เราจะพัฒนาขึ้นรวมถึง LINE Chatbot ด้วย โดยการสร้างเพียงให้ระบุชื่อของ Provider ลงไป ซึ่งอาจจะตั้งเป็นชื่อตัวเอง, ชื่อบริษัท, ชื่อทีม หรือชื่อกลุ่มก็ได้


สร้าง Channel

Channel คือ subset ของ Provider โดยมีอยู่ 3 รูปแบบ คือ LINE Login, Messaging API และ Clova Skill

  1. สำหรับการพัฒนา Chatbot เราจะต้องเลือก Create a Messaging API channel

  1. เมื่อกดเลือก Messaging API channel จะเข้าสู่หน้าที่ให้ระบุรายละเอียดต่างๆลงไปแล้วกดสร้าง

ระบุรายละเอียดต่างๆ

Channel configuration

  1. ให้เราทำการ Add Chatbot ที่เราเพิ่งสร้างขึ้นมา โดยไปที่แทป Messaging API และทำการ Scan QR code ด้วยแอป LINE

  1. หลังจากเพิ่มเพื่อนเสร็จเราจะได้รับข้อความต้อนรับ Greeting message ซึ่งเราสามารถปิดหรือปรับเปลี่ยนได้ที่ LINE Official Account Manager โดยกดปุ่ม Edit ตามรูปด้านล่าง

  1. ให้เราทำการปิด Auto-reply messages เนื่องจากฟีเจอร์นี้จะเป็น default การตอบกลับของ Chatbot ของเรา ซึ่งเรากำลังจะพัฒนา Chatbot ขึ้นมาจริงๆ จึงไม่จำเป็นต้องใช้ฟีเจอร์นี้

  1. จากนั้นกลับมาที่หน้าเวปของ LINE Developer ตรงส่วนของ Channel access token ให้กดปุ่ม Issue ที่อยู่ด้านขวามือ (เราจะกลับมาใช้ค่านี้อีกครั้งในช่วงท้ายของแบบฝึกหัด)

Diaglogflow คืออะไร?

ตัว Dialogflow เป็นเครื่องมือในการพัฒนาให้ Chatbot สามารถเข้าใจบทสนทนาแบบมนุษย์ (Conversation Development Tool) โดยเบื้องหลังจะมี Machine learning คอยประมวลผลให้ โดยเราสามารถนำไปใช้ได้เลย ไม่ต้องพัฒนาตัว NLP เอง แถมรองรับภาษาไทยอีกด้วย

สร้าง Agent

  1. เข้าไปที่ https://dialogflow.cloud.google.com/ และทำการ Sign-in with Google ด้วย Gmail เพื่อเข้าสู่ระบบ

  1. กด CREATE AGENT ซึ่งคำว่า Agent ในที่นี้ก็คือตัว Chatbot นั่นเอง

  1. ให้ระบุรายละเอียดต่างๆลงไปแล้วกด CREATE ได้เลย

ระบุรายละเอียดต่างๆ

  1. ตั้งชื่อ Agent ห้ามเว้นวรรค
  2. เลือกภาษาหลักที่จะพัฒนา (ให้เลือกภาษาไทย) แม้ต่อจากขั้นตอนนี้เราจะเพิ่มภาษาที่ 2 ที่ 3 ได้ แต่ภาษาหลักจะเปลี่ยนไม่ได้ นั่นก็แปลว่า Agent จะตรวจสอบ input ที่เข้ามาด้วยภาษาที่เราเลือกตรงนี้ก่อนเป็นอันดับแรก
  3. เลือก Time zone
  4. เลือก Google Project ที่มีหรือทำการสร้างใหม่ก็ได้

Intents คืออะไร?

Intent มาจากคำว่า Intention แปลว่า เจตนา หรือความปรารถนาของผู้ใช้ ซึ่งใน Diaglogflow เราจะต้องสร้าง Intents เป็นเรื่องๆไป เช่น เรื่องที่เกี่ยวกับทักทาย, เรื่องที่เกี่ยวกับสอบถามข้อมูล เป็นต้น ซึ่ง Chatbot ควรจะต้องเข้าใจและสามารถแยกแยะเรื่องต่างๆได้ ไม่ใช่ว่าผู้ใช้กำลังทักทายมา แต่ตัว Chatbot ดันไปพยายามตอบคำถาม

Pre-defined Intents

หลังจากที่เราสร้าง Agent จะมี Pre-defined Intents พื้นฐานมาให้ 2 ตัว ได้แก่

Default Fallback Intent

หน้าที่ของ Intent ตัวนี้คือ เมื่อไรที่ผู้ใช้ป้อนข้อความอะไรเข้ามาแล้วตัว Chatbot ไม่เข้าใจ มันจะวิ่งเข้า Intent ตัวนี้ เมื่อกดเข้าไปดูจะพบว่ามี section ที่ชื่อ Responses ซึ่งมีข้อความที่แสดงความไม่เข้าใจกรอกไว้เป็นตัวอย่างหลายบรรทัด เมื่อเราใช้งานจริงก็จะพบว่า หากเราพิมพ์อะไรที่มันไม่เข้าใจ มันจะสุ่มคำพูดใน responses ตอบกลับไปให้

Default Welcome Intent

หน้าที่ของ Intent ตัวนี้คือเกี่ยวกับเรื่องการทักทายกับผู้ใช้ กดเข้าไปดูจะพบว่าจะมีส่วนที่ชื่อ Training Phrases ที่สอนให้ Dialogflow เข้าใจว่าเมื่อผู้ใช้พิมพ์คำที่อยู่ในบริบท หรือ context เหล่านี้เข้ามา ก็ให้สุ่มคำตอบใน Responses กลับไป (ผู้ใช้ไม่ต้องพิมพ์เป๊ะๆก็ได้ มันจะพยามเข้าใจเอง)

ในวันนี้เราจะทำ Chatbot ที่สามารถคำนวนค่า BMI (Body mass index) ของผู้ใช้ได้ว่า ผู้ใช้มีรูปร่างที่อ้วนเกินไป ผอมเกินไป หรือว่าหุ่นกำลังดีแล้ว

  1. ให้กดปุ่ม CREATE INTENT และตั้งชื่อว่า BMI จากนั้นเลื่อนลงมาที่ Training phrases ทำการกรอกประโยคที่ผู้ใช้น่าจะพิมพ์เข้ามาเพื่อถามถึง BMI ของตนเอง ใส่ข้อความให้หลากหลาย ยิ่งหลากหลายยิ่งดี เพราะ Dialogflow จะเรียนรู้และทำความเข้าใจจากประโยคเหล่านี้

  1. จากนั้นให้เลื่อนลงมาด้านล่าง ในส่วนของ Responses ให้เรากด ADD RESPONSES และทำการกรอกตรง Text Response ซึ่งก็คือประโยคที่จะตอบกลับไป สามารถใส่ได้หลายประโยคและตัว Dialogflow จะสุ่มเอาประโยคเหล่านี้ไปตอบผู้ใช้ให้

  1. หลังจากนั้นให้กดปุ่ม SAVE ตัว Dialogflow จะทำการเทรนนิ่งตัว Chatbot ของเราตามข้อความที่เรากรอกใน Intent

  1. หลังจากเทรนนิ่งเสร็จแล้ว ให้เราทำการทดสอบได้ที่แทปด้านขวามือ (พิมพ์ตรง Try it now) อาจจะไม่ต้องพิมพ์ข้อความเป๊ะๆก็ได้เพื่อทดสอบว่า Chatbot เข้าใจเกี่ยวกับเรื่อง BMI ที่เรากำลังจะถามไหม

หลังจากที่ Chatbot ทำการสอบถามผู้ใช้กลับไป เพื่อให้ผู้ใช้กรอกข้อมูลนำ้หนักและส่วนสูงเข้ามา สิ่งที่เราต้องทำถัดไปก็คือ สร้าง Follow-up Intent จาก BMI Intent (เป็นการควบคุมบทการสนทนา ผู้ใช้จะไม่สามารถกระโดดเข้า Follow-up Intent นี้ได้เลยหากไม่ผ่าน BMI Intent มาก่อน)

  1. ให้เอาเมาส์ไปอยู่เหนือบรรทัด BMI จะเจอลิงค์ Add follow-up intent ขึ้นมา กดแล้วเลือก custom
  2. เราจะได้ Intent ตัวใหม่ที่อยู่ภายใต้ BMI Intent ชื่อ BMI - custom ให้กดคลิกเข้าไป

  1. ชื่อ Intent เราสามารถแก้ได้ (แต่ในแบบฝึกหัดนี้ให้ใช้เหมือนเดิม)
  1. เป็น Context ที่ถูกสร้างอัตโนมัติและเป็น input ที่ถูกส่งมาจาก BMI Intent แต่สังเกตว่าด้านล่างกรอบเบอร์ 4 ที่ชื่อ Add output context ยังว่าง นั่นก็เพราะยังไม่มี Intent มาอยู่ภายใต้ BMI — custom Intent นั่นเอง

ถัดไปให้เลื่อนลงไปจนเจอส่วนที่ชื่อว่า Action and parameters ตรงส่วนนี้เราจะมากำหนดตัว parameter กัน ซึ่ง Chatbot ของเราต้องการค่าน้ำหนักและส่วนสูง ให้เรากด New parameter และทำการสร้างน้ำหนักและส่วนสูงไว้ 2 ค่า (ตามรูปด้านล่าง)

  1. เลือกต่อเมื่อ parameter ตัวนี้จำเป็นที่จะต้องได้มา (ให้เราทำการเลือก)
  1. ตั้งชื่อ parameter ให้สื่อความหมายกับสิ่งที่ต้องการเก็บ
  2. ประเภทของ parameter ที่จะเข้ามา กรณีนี้คือน้ำหนักและส่วนสูง จึงเลือกเป็น @sys.number
  1. ตั้งชื่อตัวแปรของ parameter นำหน้าด้วย $ เพื่อนำไปแสดงผลในขั้นตอน Responses
  1. ถ้าเลือกข้อ 5 ไว้ จะมี Prompts ขึ้นมาให้กรอก และมันจะแสดงผลกรณีที่ Dialogflow ไม่สามารถเก็บค่านั้นมาได้ ในตัวอย่างด้านล่างก็คือค่าน้ำหนัก โดยเราสามารถมีได้หลายประโยคเพื่อเพิ่มความหลากหลายในการตอบกลับ

หลังจากนั้นก็ให้เลื่อนกลับขึ้นไปที่ส่วนของ Training Phrases แล้วทำการกรอกประโยคที่ผู้ใช้น่าจะพิมพ์ตอบกลับมา (หลังจากที่ก่อนหน้านี้ เราถามเรื่องน้ำหนักและส่วนสูงกับไป) เช่น 162 cm 58 kg, สูง 162 ซม หนัก 58 กก เป็นต้น

  1. จากนั้นใช้เมาส์ลากสิ่งที่คิดว่าเป็น น้ำหนัก และ ส่วนสูง (เอาแค่ตัวเลข ไม่เอาหน่วย)
  1. ลากแล้วจะมี dialog ขึ้นมาให้เลือก เราก็เลือกส่วนสูงหรือน้ำหนักตามที่เราสร้างไว้
  1. ดูให้แน่ใจว่า value ถูกต้องตรงตามที่เราต้องการ
  1. ในกรณีที่มันจับ parameter ให้อัตโนมัติแล้วเราไม่ต้องการ หรือเราลากไม่ตรง ก็สามารถลบออกได้
  1. ขั้นตอนสุดท้ายของ BMI - custom Intent นี้ ก็คือการระบุ Responses เพื่อขอให้ผู้ใช้ยืนยันว่า Dialogflow เก็บข้อมูลมาได้ถูกต้อง ให้เรากรอกข้อมูลตามรูปด้านล่าง

  1. กดปุ่ม SAVE และลองทำการทดสอบ Chatbot ว่ามีการเก็บค่าได้ถูกต้องหรือไม่

หลังจากที่ Chatbot ทำการสอบถามเพื่อให้ผู้ใช้ยืนยันข้อมูลนำ้หนักและส่วนสูง สิ่งที่เราต้องทำถัดไปก็คือ สร้าง Follow-up Intent ต่อจาก BMI - custom เพื่อให้ผู้ใช้ตอบว่า ใช่ (yes) หรือ ไม่ใช่ (no) โดยเราจะเริ่มที่กรณีผู้ใช้ตอบว่าไม่ใช่ก่อน

  1. ให้เราสร้าง Intent ภายใต้ BMI - custom Intent โดยกด Add follow-up intent แล้วเลือก no ซึ่งถ้าทำถูกรูปมันจะเป็นลำดับชั้นแบบนี้

  1. คลิกเลือก BMI - custom - no แล้วเลื่อนลงมาในส่วนของ Training Phrases จะพบว่า มีประโยคต้นแบบเตรียมมาให้แล้ว ที่เป็นแบบนั้นเพราะเราเลือกประเภท Intent ตอนสร้างเป็น no นั่นเอง Dialogflow จึงมีประโยคที่เตรียมมาให้เหมาะกับ Intent ประเภทนั้นๆไว้

  1. เลื่อนต่อลงมาที่ส่วนของ Responses ถ้าผู้ใช้งานตอบว่า ไม่ นี่ไม่ใช่ส่วนสูงและน้ำหนักของฉัน ให้เราตอบกลับไปตามตัวอย่างด้านล่าง

  1. ให้เราเลื่อนหน้าจอกลับขึ้นตรงส่วนชื่อ Contexts และเติมชื่อ BMI-followup ที่ช่อง output context จาก Intent นี้กันเลย

  1. กดปุ่ม SAVE และลองทำการทดสอบ Chatbot ว่าสามารถกลับมาถามได้อย่างถูกต้องและอยู่ใน Context ที่ถูกต้องไหม

หลังจากที่ Chatbot เราสร้าง Intent เพื่อให้ผู้ใช้ตอบว่า ไม่ แล้วต่อมาเราจะสร้าง Intent เพื่อรองรับกรณีที่ผู้ใช้ตอบว่าใช่กันบ้าง

  1. ให้เราสร้าง Intent ภายใต้ BMI - custom โดยกด Add follow-up intent แล้วเลือก yes

  1. เสร็จแล้วก็คลิกที่ BMI - custom - yes และเลื่อนลงมาในส่วนของ Training Phrases จะพบว่า มีประโยคที่บ่งบอกถึงการยอมรับเตรียมไว้แล้ว

  1. ถัดไปส่วนของ Action and parameters ให้เราสร้างตัวแปร weight และ height อีกครั้ง แต่ครั้งนี้เราจะไม่ถามผู้ใช้ใหม่แล้ว เราจะเอาค่ามาจาก Intent ก่อนหน้านี้ (BMI - custom นั่นเอง)โดยวิธีการก็คือ ใช้ # นำหน้าชื่อ context ที่ส่งเข้ามา แล้วตามด้วยชื่อ parameter ที่เราเคยตั้งชื่อไว้ (ดูให้ตรงกัน)

  1. ใส่ข้อความ Responses

  1. กดปุ่ม SAVE และลองทำการทดสอบ Chatbot ว่าเก็บค่าของ parameter มาได้อย่างถูกต้องหรือไม่

Fulfillment คืออะไร?

ตอนนี้เราจบบทสนทนาที่ BMI - custom - yes Intent ซึ่งขั้นตอนต่อไปที่เราต้องทำคือส่งต่อค่าน้ำหนักและส่วนสูงไปคำนวนที่ระบบหลังบ้าน ผ่านส่วนที่เรียกว่า Fulfillment ซึ่งเป็นส่วนนี้จะเป็นส่วนที่ทำให้เราสามารถเขียนโปรแกรมเพื่อทำการคำนวนค่า BMI ได้นั่นเอง ซึ่งถ้าไม่ต้องการคำนวนสามารถข้ามส่วนนี้ไปได้

  1. ให้เราคลิกเลือก BMI - custom - yes และทำการเลื่อนหน้าจอลงมาล่างสุด จะเจอหัวข้อชื่อ Fulfillment เห็นแล้วก็ให้กด toggle เปิด Enable webhook call for intent และกดปุ่ม SAVE

  1. จากนั้นให้ไปเลือกคลิกเมนู Fulfillment ที่อยู่แทปด้านซ้ายมือ โดยในแบบฝึกหัดนี้เราจะเลือก Inline Editor ที่พัฒนาด้วย Google Cloud Functions ซึ่งจะใช้ Node.js นั่นเอง

  1. กดปุ่ม toggle เพื่อทำการ enabled ตัว Inline Editor ขึ้นมา ซึ่งเราจะพบกับหน้าจอให้ผูกบัตรเครดิตของ Google Cloud Platform ให้ทำการผูกให้เรียบร้อย

  1. ให้เราทำการแก้โค้ดตามตัวอย่างด้านล่าง
'use strict';
 
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
 
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
 
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
  console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
 
  function welcome(agent) {
    agent.add(`Welcome to my agent!`);
  }
 
  function fallback(agent) {
    agent.add(`I didn't understand`);
    agent.add(`I'm sorry, can you try again?`);
  }
  
  function bodyMassIndex(agent) {
    let weight = agent.parameters.weight;
    let height = agent.parameters.height / 100;
    let bmi = (weight / (height * height)).toFixed(2);
    let result = 'ขออภัย หนูไม่เข้าใจ';
    
    if (bmi < 18.5){
      result = 'คุณผอมไป กินข้าวบ้างนะ';
    } else if (bmi >= 18.5 && bmi<= 22.9){
      result = 'คุณหุ่นดีจุงเบย';
    } else if (bmi >= 23 && bmi<= 24.9){
      result = 'คุณเริ่มจะท้วมแล้วนะ';
    } else if (bmi >= 25.8& bmi<= 29.9){
      result = 'คุณอ้วนละ ออกกำลังกายหน่อยนะ';
    } else if (bmi > 30){
      result = 'คุณอ้วนเกินไปละ หาหมอเหอะ';
    }
    agent.add( result);
  }


  let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  
  intentMap.set('BMI - custom - yes', bodyMassIndex);

  agent.handleRequest(intentMap);
});

จากโค้ดด้านบนนี้ ขออธิบายเพิ่มเติมดังนี้

  1. เขียนเสร็จแล้วให้กดปุ่ม DEPLOY แล้วรอจนคำว่า DEPLOYING... เปลี่ยนเป็น DEPLOYED และเห็นข้อความแบบนี้

  1. ทำการทดสอบ Chatbot ว่าคำนวนค่าของ BMI ได้อย่างถูกต้องหรือไม่

หลังจากที่เราทดสอบใน Dialogflow จนเป็นที่น่าพอใจแล้ว คราวนี้ก็ถึงเวลาเอามาใช้งานจริงกับ LINE Chatbot ที่เราได้สร้างทิ้งไว้ตั้งแต่ตอนแรก

  1. เริ่มต้นจากการคลิกเมนู Integration ทางเมนูด้านซ้ายมือใน Dialogflow ในหน้านี้จะเจอผู้ให้บริการมากมายที่รองรับการเชื่อมต่อกับ Dialogflow ให้เลื่อนลงมาด้านล่างและกด toggle ที่ LINE

  1. ในหน้านี้เราจะต้องแลกเปลี่ยนข้อมูลกันระหว่าง LINE กับ Dialogflow โดย 3 ช่องแรก Channel ID, Channel Secret และ Channel Access Token ได้มาจากขั้นตอนของ Channel configuration

  1. กรอกเสร็จก็ให้เรากดปุ่ม START ได้เลย
  1. ถัดมาช่องที่ชื่อว่า Webhook URL ทาง Dialogflow จะสร้างตัว server มาให้เราเพื่อให้ไปต่อกับ LINE ได้ ให้ทำการกด icon copy ตามรูปด้านล่าง

  1. ทำการใส่ค่า Webhook settings ให้เรียบร้อย และกดปุ่มเปิด Use webhook

  1. ลองทำการทดสอบ LINE Chatbot ได้เลย

ยินดีด้วย 🥳 ถึงตรงนี้คุณมี Chatbot ตัวแรกเป็นของตัวเองแล้ว!!!

สิ่งที่คุณได้เรียนรู้ใน Codelab นี้

เรียนรู้เพิ่มเติม

Reference docs

บอกเราหน่อยว่า Codelab ชุดนี้เป็นอย่างไรบ้าง