สร้าง CHATBOT ด้วย PYTHON

stackpython
3 min readJun 28, 2020

--

เนื่องด้วยปัจจุบัน Chatbot เข้ามามีบทบาทในชีวิตประจำวันมากขึ้น วันนี้เราจึงจะมานำเสนอ การสร้าง Chatbot แบบง่ายๆ ด้วยภาษา Python

การสร้าง Chatbot (LINE)

ก่อนอื่นก็ต้องทำการสร้างตัว Chatbot ของเราขึ้นมาก่อนโดยเริ่มจากให้เราเข้าไปยัง LINE Developers แล้วทำการ Login เพื่อเข้าใช้งาน

เมื่อ Login เสร็จเรียบร้อยเเล้วจะได้หน้าตาประมาณรูปด้านล่าง หลังจากนั้นให้ กด Create หลัง Providers เพื่อทำการสร้าง ช่องทางผู้ให้บริการ Chatbot

ทำการตั้งชื่อ ผู้ให้บริการ (Provider) ให้เรียบร้อยเเล้วกด Create จากนั้นกดเลือกที่ Create a Messaging API Channel

เมื่อเข้ามาถึงหน้านี้เเล้วให้ทำการเลือกกรอกรายละเอียดต่างๆ ให้เราต้องการโดยจะมีจุดที่บังคับให้กรอกอยู่ด้วยซึ่งจะมีเครื่อง X อยู่ด้านล่างช่องนั้น

จากนั้นทำการติ้กเคื่องหมายถูกให้กับ 2 ช่องล่างสุดตามภาพด้านบนจากให้ทำการกด Create และกด ยอมรับ ตามลำดับ

เมื่อมาถึงหน้านี้แสดงว่าคุณสร้างตัว Chatbot เสร็จเรียบร้อย

ให้กดไปที่ Messaging API แล้วเลื่อนลงให้สุดแล้วทำการกด issue เพื่อเป็นการสร้าง Channel access token

ต่อจากนั้นเราจะทำการตั้งค่าที่ Edit ในช่อง Auto-reply messages และให้ทำการ ปิด ข้อความตอบกลับอัตโนมัติ และเปิด Webhook

จากนั้นให้มากดที่ Edit ในช่อง Webhook settingsเพื่อรอใส่ URL ของทาง Python ได้เลย

การสร้าง Project Python

ให้เริ่มจากสร้างตัว virtual environment เเละไฟล์ .py ขึ้นมา 1 ไฟล์

from flask import Flask, request, abortimport requestsimport jsonapp = Flask(__name__)@app.route('/', methods=['POST','GET'])def webhook():if request.method == 'POST':payload = request.jsonReply_token = payload['events'][0]['replyToken']print(Reply_token)message = payload['events'][0]['message']['text']print(message)if 'ดี' in message :Reply_messasge = 'ดีมาก'ReplyMessage(Reply_token,Reply_messasge,'ใส่ Channel access token') #ใส่ Channel access tokenreturn request.json, 200else:abort(400)def ReplyMessage(Reply_token, TextMessage, Line_Acees_Token):LINE_API = 'https://api.line.me/v2/bot/message/reply'Authorization = 'Bearer {}'.format(Line_Acees_Token)print(Authorization)headers = {'Content-Type': 'application/json; charset=UTF-8','Authorization':Authorization}data = {"replyToken":Reply_token,"messages":[{"type":"text","text":TextMessage}]}data = json.dumps(data)r = requests.post(LINE_API, headers=headers, data=data)return 200if __name__ == '__main__':app.run(debug=True)

ทำการติดตั้ง packet ด้วยคำสั่ง “pip install Flask”และ”pip install requests”จากนั้นก็สามารถคัดลอกโค้ดนี้เลยเเละทำการนำ Channel access token มาใส่ เมื่อใส่ตัว Channel access token เสร็จก็สามารถลองรันกันได้เลย ระหว่างรันอยู่ ให้เปิด NGROK ขึ้นมา และให้รันเป็น Port ที่เราต้องการด้วยคำสั่ง “ngrok http port” ซึ่ง port : เลข port ที่เราต้องการ

จากนั้นคัดลอก URL หลัง Forwarding มาใส่ใน Chatbot เรา

จากนั้นกด Use webhook แล้วก็เพิ่มเพื่อนกับ Chatbot ไป test กันได้เลย

Add friend : Chatbot

ซึ่งการเพิ่มเพื่อนกับ Chatbot นั้นสามารถทำได้ 2 วิธี

  1. ใช้ Bot basic ID ในการ เพิ่มเพื่อน
  2. ใช้ QRcode ในการ เพิ่มเพื่อน

Test Chatbot

เพียงเท่านี้ก็เสร็จเเล้วครับ ซึ่งการทำมาทั้งหมดนี้สามารถนำไปต่อยอดได้อีกไกลเเน่นอน

ขอบคุณมากครับที่เข้ามาอ่านบทความของทางเพจ Stackpython ทั้งนี้ หากสงสัยตรงไหนเกี่ยวกับเนื้อหาในบทความสามารถติดต่อสอบถามทางเพจเราได้เลยครับ

--

--