เริ่มต้นกับ Bot Framework

ตั้งแต่ต้นปีที่ผ่านมาเราก็เห็นว่า ขาใหญ่ในวงการทั้งหลายพยายามโปรโมท API ที่เรียกว่า Bot ทั้ง Facebook Google, Microsoft, Apple, LINE ต่างเปิดตัวกันครบหมด ซึ่งน่าจะเป็นสัญญาณว่า นี่คือเทรนต่อไปของ  API

ส่วนตัวผมก็อยากลองเล่นมาตั้งแต่ Microsoft เปิดตัวแล้ว จนได้มีโอกาสมาลองวันนี้ครับ

Bot Framework คืออะไร ถ้าไปดูใน  https://dev.botframework.com/ ก็คือมันก็คือระบบตอบรับอัตโนมัตินั่นเอง ซึ่งจริงๆแล้ว Bot มีมานานแล้วแต่อาจจะใช้ในงานเฉพาะทาง แต่ตอนนี้พวกบริษัทยักษ์ใหญ่ก็ทำเป็น Framework ให้เราพัฒนา Bot เพื่อใช้ใน App ของเราได้ง่ายขึ้น

เนื่องจาก Bot Framework ของ Microsoft นั้นจริงๆแล้วก็คือ Framework ที่พัฒนาต่อยอดจากแนวคิดของ Web Service ดังน้ันมันก็คือการเขียน Web Service นั่นเอง

ซึ่งเรามีตัวเลือก 2 ทางครับ
1. ใช้ Node.js
2. ใช้.NET

ครั้งนี้ผมจะใช้ Node.js ในการสร้าง Bot Service ครับ เริ่มจากสร้าง Folder เปล่า แล้วสร้าง Node.js config ด้วย command นี้

npm init

จากนั้นเราจะทำการโหลด Dependencies ที่ใช้ในการพัฒนา Bot กันครับ ด้วย command

npm install --save botbuilder
npm install --save restify

จากนั้นลองสร้างไฟล์ app.js แล้ว Copy ตามนี้

var restify = require('restify');
var builder = require('botbuilder');

//=========================================================
// Bot Setup
//=========================================================

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});
  
// Create chat bot
var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());

//=========================================================
// Bots Dialogs
//=========================================================

bot.dialog('/', function (session) {
    session.send("Hello World");
});

ในส่วนของ Code ข้างบนที่เป็น JavaScript นั้นแบ่งออกได้เป็น 4 ส่วน

  1. สีแดง – การเรียกใช้งาน modules ที่เกี่ยวข้อง
  2. สีเขียว – เป็นการสร้าง Web Service แบบ REST ที่ port 3978
  3. สีม่วง – เป็นการสร้าง bot object และทำการรับฟัง Request ที่จะเข้ามาด้วย path /api/messages เช่น ถ้ามี client เรียก http://localhost:3978/api/messages ตัว bot object จะได้รับ message นี้
  4. สีส้ม – เป็นการจัดการ Dialog (บทสนทนา) ซึ่งจากตัวอย่างจะเป็นการส่งข้อความ “Hello World” กลับไปให้ Client

จากนั้นไปโหลด Bot Framework Emulator มาจาก ทีนี่ ซึ่งตัว Emulator ก็คือตัวที่เอาไว้ใช้ทดสอบ Bot service ของเรานั่นเอง หน้าตาจะเป็นแบบนี้

bot_emu

จากนั้นลองรัน app.js ดูครับ ด้วย command

node app.js

ถ้า Bot เรารันได้แบบไม่มีปัญหาก็จะขึ้น Console แบบนี้ครับ

server_run

กลับมาที่ Emulator ลองพิมพ์อะไรไปแล้ว Enter ดูครับ

bot_send.pngหลังจากพิมพ์ Hi ไป จริงๆแล้วก็คือการส่ง HTTP request ไปที่ http://localhost:3978/api/messages พร้อมกับ JSON payload ที่มี Property “text” นั่นเอง

ส่วนฝั่ง Bot นั้นก็ตอบรับกลับมาเป็น JSON response

bot_recreive.png

ซึ่ง “text” : “Hello World” ก็คือ string ที่ทำการ assign ตอนที่เราเขียน  Code ในไฟล์ app.js

bot.dialog('/', function (session) {
    session.send("Hello World");
});

งั้นเราลองมาแก้เป็น .send() อย่างอื่นแทนเพื่อทดสอบ ก็ได้อย่างที่เห็นครับ

bot_last.png

มาถึงตรงนี้จาก Bot Framework เบื้องต้นตอนนี้อาจจะยังทำให้ไม่ค่อยเห็นว่าจะเอาไปใช้ต่อยังไงได้บ้าง แต่ลองนึกดูว่าถ้าเราสามารถสร้างระบบถาม-ตอบได้อย่างฉลาด เช่นมีการดึง data จากที่ต่างๆ รวมถึงทำ Machine Learning ก็อาจจะทำให้ Bot นั้นมีประโยชน์มากขึ้น ยังไงก็ขอเวลาผมไปลองศึกษาเพิ่มเติมก่อนละกันครับ 🙂

 

2 thoughts on “เริ่มต้นกับ Bot Framework”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s