ทดลองสร้าง Line @ Bot แบบมั่วๆ
Line ได้ออก API สำหรับ Line @ และ Line Official มาได้สักพักนึงแล้วโดยใช้ชื่อว่า Messaging Api ซึ่งวันนี้เพิ่งมีโอกาสได้ลองเล่น API แบบจริงจังเลยมาเขียนบล็อกแชร์ประสบการณ์การใช้งาน API ของ Line ในการสร้าง Chat Bot แบบขำๆขึ้นมาสิ่งที่ต้องการในการสร้าง Bot
- Server 1 ตัว (ใช้ Ubuntu 14.04)
- Nginx (ใช้อะไรก็ได้แล้วแต่ถนัด)
- HTTPS ที่ valid cert อันนี้ต้องมีไม่งั้นใช้ไม่ได้ ในที่นี้ใช้ Let's Encrypt (ลองใช้ Cloudflare ที่ใช้ค่า - Default แล้วโดนบล็อกข้อมูลที่ส่งมาจาก Line เลยขี้เกียจหาวิธีแก้)
- PHP 5
- Python 3
- ChatterBot (เอาไว้สร้าง Bot Chat)
- MongoDB (เอาไว้เก็บข้อมูลของ ChatterBot)
- Sample-Line-Bot (https://github.com/kittinan/Sample-Line-Bot)
ติดตั้ง Nginx, php และ config https ไว้ให้พร้อมใช้งาน
Line Messaging API Architecture
ขออนุญาติก็อบรูปใน Line Developer มาให้ดู ซึ่งการทำงานก็ไม่มีไรมาก
เมื่อผู้ใช้ส่งข้อความมาที่ Line @ เรา Line ก็จะส่งข้อความนั้นมายัง Server ที่เราเซตเอาไว้
สมัครใช้งาน Line Messaging API
ตาม Link นี้เลย https://developers.line.me/messaging-api/getting-started ค่อยๆอ่าน แล้วทำตามอย่าข้ามขั้นตอนเด็ดขาด ไม่งั้นปวดหัวสุดๆ
สร้าง Chat Bot ด้วย ChatterBot
Install MongoDB
วิธีการตาม Link นี้เลย https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-14-04
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
sudo echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
เสร็จสิ้นการลง MongoDB
Install Python 3
ใน Ubuntu 14.04 นั้นลง Python 3 มาไว้อยู่แล้ว โดยแค่ลงเพิ่มอีก 2 package คือ python pip กับ python levenshtein
sudo apt-get install python3-pip python3-levenshtein python3-nltk python3-setuptools
Install ChatterBot ผ่าน python pip
sudo pip3 install chatterbot
sudo python3 -m nltk.downloader -d /usr/local/share/nltk_data brown movie_reviews conll2000 punkt averaged_perceptron_tagger
เมื่อลง Package ที่ต้องการต่างๆเรียบร้อยแล้วให้ clone https://github.com/kittinan/Sample-Line-Bot มายังเครื่อง เพื่อที่เราจะเริ่มทำการ train bot ให้ตอบแชทได้
เมื่อ clone มาเสร็จแล้วให้ไปยัง folder python แล้วรัน
python3 trainer.py sample_conversation.json
โดย sample_conversation.json นั้นเป็นตัวอย่างข้อมูลการสนทนา ถาม-ตอบ ซึ่งอยู่ใน format json array โดยส่วนตัวผมใช้ข้อมูลการ Chat กับเพื่อนใน Facebook ในการ train model ของ chat bot
เมื่อ train model เสร็จแล้วให้ทดสอบว่า chat bot ทำงานได้ถูกต้องโดยการรัน
python3 chat.py "ดีครับ"
python3 chat.py "ชื่อไร"
Bot ก็จะตอบมาดังภาพ
ดูรายละเอียด ChatterBot เพิ่มเติม ได้ที่ http://chatterbot.readthedocs.io/en/stable/
ประกอบร่าง Line API กับ ChatterBot
เข้าไป Line Business Center แล้วเข้า Messaging API Developer
ตั้งค่า Webhook URL ให้ชี้มายัง Domain Server ของเรา (Line บังคับให้ใช้ได้เฉพาะ https ที่ valid เท่านั้น) ดังภาพ
แล้ว Copy Channel Access Token มาใส่ในไฟล์ config.yml
แล้ว Install Dependencies ของ code php ให้เรียบร้อย ผ่านทาง composer
composer install
ลองไปคุยกับ bot ใน Line bot ก็จะตอบข้อความเราตาม model ที่ train ไว้ดังภาพ
ปล.
- กราบขออภัยที่ไม่ได้ลงลึกในรายละเอียดการติดตั้งในส่วนต่างๆ
- คราวหน้าเราจะมาสร้าง model ของ chatbot จาก ข้อความที่เราเคย chat กับเพื่อนใน facebook กัน
Subscribe to:
Posts (Atom)
3 comments: