chatbot


[chatbot + AI = 下一代操作模式][16]BotBuilder開發總結 - 下一步是搭AI服務

[chatbot + AI = 下一代操作模式][16]BotBuilder開發總結 - 下一步是搭AI服務.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([15]上綫 - 透過Direct Line把chatbot和任意程式做連接)介紹完了Direct Line Channel之後,Azure Bot Service 和 BotBuilder 搭配開發chatbot的部分就到了一個尾聲。當然,裡面還有很多細節可以介紹,但是以目前介紹的内容來説,要開發出一個能用的chatbot已經不是什麽問題。

那下一步是什麽?在介紹bot builder的過程會發現,開發chatbot其實蠻死板的,有沒有辦法讓他更加智能一些?如果搭上最近幾年很火的AI服務就可以。

這篇將快速回顧一下目前bot builder所學到的内容,以及下一步如何搭配AI服務來增加可用性。


[chatbot + AI = 下一代操作模式][15]上綫 - 透過Direct Line把chatbot和任意程式做連接

[chatbot + AI = 下一代操作模式][15]上綫 - 透過Direct Line把chatbot和任意程式做連接.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([14]上綫 - 把facebook粉絲頁和chatbot接上)介紹了如何把chatbot和Facebook Messenger做了連接。bot channel registration還有好幾個内建的其他channel可以設定做關聯,至於怎麽設定可以透過google的方式去找到相關資料,因此其他内建的channel 這邊不在做介紹。

不過,雖然任意網站可以用web control channel來連接,并且有些内建的channel,可是如果想要在不是内建的channel關聯chatbot怎麽辦?舉例來説,如果今天想要和Line關聯或者微信怎麽辦?或者如果想要在任何程式和chatbot 做關聯?

這就是Direct LIne Channel的目的,只要可以用程式來控制,那麽就可以透過Direct LIne Channel來和chatbot關聯。

這篇將會透過開發一個console程式和chatbot程式溝通。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-15

[chatbot + AI = 下一代操作模式][14]上綫 - 把facebook粉絲頁和chatbot接上

[chatbot + AI = 下一代操作模式][14]上綫 - 把facebook粉絲頁和chatbot接上.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([13]上綫 - 開啓web control channel)看了如何開啓web control的channel,透過iframe讓chatbot可以在任意網站出現。

這篇將看看如何把chatbot和別的平臺的聊天工具整合,這邊將介紹内建有支援的channel,Facebook Messenger。


[chatbot + AI = 下一代操作模式][13]上綫 - 開啓web control channel

[chatbot + AI = 下一代操作模式][13]上綫 - 開啓web control channel.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

透過上一篇([12]準備上綫 - 用Bot Channel Registration注冊chatbot),chatbot已經和bot channel registration設定好了,可以上綫了。

接下來需要做的就是設定對應的channel。

這篇將來看看最容易的channel,web control。看如何取得相關的資訊讓chatbot可以在任意網站上面出現。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-13

[chatbot + AI = 下一代操作模式][12]準備上綫 - 用Bot Channel Registration注冊chatbot

[chatbot + AI = 下一代操作模式][12]準備上綫 - 用Bot Channel Registration注冊chatbot.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([11]準備上綫 - chatbot發佈到Azure App Service)介紹了如何用visual studio把chatbot部署到了Azure的PaaS服務,App Service。

這一篇將來看另外一個部分,也就是如何把chatbot和不同的channel連接在一起的服務,Azure Bot Service裡面的Bot Channel Registration (以下簡稱Channel Registration)。


[chatbot + AI = 下一代操作模式][11]準備上綫 - chatbot發佈到Azure App Service

[chatbot + AI = 下一代操作模式][11]準備上綫 - chatbot發佈到Azure App Service.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([10]用IDialog全部重構 - 階段性總結)我們把所有的程式用Dialog重構了之後,對於chatbot開發暫時到了一個段落。當然,目前功能還非常的雛形,但是以目前介紹的東西已經足夠寫出一個好的chatbot,因此各位可以自由發揮。

接下來我們要開始看看上綫的部分。當chatbot開發完了之後,該怎麽讓他上綫?需要搭配什麽服務。這篇將會看第一個部分,把chatbot先host在azure的app service上面。


[chatbot + AI = 下一代操作模式][10]用IDialog全部重構 - 階段性總結

[chatbot + AI = 下一代操作模式][10]用IDialog全部重構 - 階段性總結.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([09]使用IDialog來實現SoC)介紹了怎麽使用IDialog來拆分邏輯,并且一步一步的用取得名字的邏輯拆成為一個NameDialog

在這一篇我們將會把所有的邏輯重構成爲IDialog,并且對於目前學習到的BotBuilder做一個階段性的總結。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-10

[chatbot + AI = 下一代操作模式][09]使用IDialog來實現SoC

[chatbot + AI = 下一代操作模式][09]使用IDialog來實現SoC.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([08]如何微調FormFlow讓使用上更流暢)介紹完FormFlow之後,我們需要回來看一下目前最大的問題,也就是程式碼都寫在一隻RootDialog裡面。

BotBuilder有考慮到這件事情,因此内建用IDialog來解決這個問題。

這篇來看看IDialog怎麽做到SoC (Seperation of Concern)。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-09

[chatbot + AI = 下一代操作模式][08]如何微調FormFlow讓使用上更流暢

[chatbot + AI = 下一代操作模式][08]如何微調FormFlow讓使用上更流暢.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([07]使用FormFlow讓Chatbot搜集表單資訊更容易)我們瞭解了如何透過使用建立Model然後搭配FormFlow的方式讓我們的chatbot可以從使用者那邊搜集到表單類型的資訊。

不過我們也開始遇到一些問題,舉例來説,欄位名稱是英文,如果中途退出就gg了等等的細節問題。這些問題需要我們對Model或者FormFlow建立的時候做一些調整。

這篇將和大家介紹一下,如何做這些調整。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-08

[chatbot + AI = 下一代操作模式][07]使用FormFlow讓Chatbot搜集表單資訊更容易

[chatbot + AI = 下一代操作模式][07]使用FormFlow讓Chatbot搜集表單資訊更容易.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([06]不只能輸出文字 - 看看各種内建卡片模式以及可自定的Adaptive Card)介紹了如何透過Rich Card把bot輸出的内容變成更加漂亮的卡片樣式。

到目前爲止,所有的邏輯都在一起,作爲開發人員會開始覺得程式碼已經開始有些味道了(smell)了。如果今天我們想要透過交談對話中取得一些使用者的資訊,例如填寫表單,那可以想象要寫更多的if/else來處理。感覺程式碼會更加臟。

還好BotBuilder在表單類型的溝通有一個模組叫做FormFlow,在這一篇將來介紹如何使用FormFlow來設計從使用者收集資料。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-07

[chatbot + AI = 下一代操作模式][06]不只能輸出文字 - 看看各種内建卡片模式以及可自定的Adaptive Card

不只能輸出文字 - 看看各種内建卡片模式以及自定的Adaptive Card.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([05]深入IDialogContext - 處理上下文、對外的聯係和state)看了IDialogContext的作用以及如何用3個主要作用的state的部分來儲存使用者相關的訊息。

到目前爲止我們的機器人回復的内容都是文字。如果今天我的内容比較豐富,例如有圖片+文字怎麽辦?有沒有更好的呈現方式。

這篇將來看看Activity裡面的Attachment搭配Card呈現多元樣式的概念。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-06

[chatbot + AI = 下一代操作模式][05]深入IDialogContext - 處理上下文、對外的聯係和state

[chatbot + AI = 下一代操作模式][05]深入IDialogContext - 處理上下文以及對外的聯係.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([04]瞭解BotBuilder的組成)完整看了EchoBot的程式碼組成,并且瞭解了BotBuilder一些常見的物件。并且依照所學調整了部分程式碼。

這一篇將會聚焦在其中一個管理上下文以及對來連綫的物件IDialogContext

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-05

[chatbot + AI = 下一代操作模式][04]瞭解BotBuilder的組成

[chatbot + AI = 下一代操作模式][04]瞭解BotBuilder的架構.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([03]建立第一個chatbot - EchoBot)透過使用Project Template建立出一個EchoBot出來,并且透過了bot emulator瞭解了如何和chatbot做測試。

這篇將會深入一些,看看BotBuilder的組成以及一些比較重要的class。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-04

[chatbot + AI = 下一代操作模式][03]建立第一個chatbot - EchoBot

[chatbot + AI = 下一代操作模式][03]建立第一個chatbot - EchoBot.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([02]微軟的Bot Framework是什麽?)以一個high level的角度看了微軟的Bot Framework的CaaP解決方案,接下來就要看看細節的地方。

這篇將會以建立一個chatbot的hello world來看看開發chatbot會用到什麽工具,并且整體的感受是如何。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-03

[chatbot + AI = 下一代操作模式][02]微軟的Bot Framework是什麽?

[chatbot + AI = 下一代操作模式][01]開篇 - 爲什麽應該學.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([01]開篇 - CaaP是什麽,爲什麽應該學)瞭解了下一個時代的操作模式:CaaP (Conversation as a Platform),那麽微軟的解決方案是什麽?這個解決方案的架構是什麽?

這一篇將會從high level的角度來看看微軟的整體解決方案,Microsoft Bot Framework。


[chatbot + AI = 下一代操作模式][01]開篇 - CaaP是什麽,爲什麽應該學

[chatbot + AI = 下一代操作模式][01]開篇 - 爲什麽應該學.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

Chatbot (聊天機器人) 并不是一個新奇的東西,從微軟2016年的build大會提出了CaaP (Conversation as a Platform)的概念之後,并且出現了Bot Framework,在2017年的時候在台灣火紅了一段時間。

那個時候我雖然知道,但是并沒有很深入去理解過,其中一個很大原因我個人覺得是被聊天機器人這個以及一些電商平臺的智能客服給誤導了。

但是當我實際深入進去看的時候,我發現微軟提出CaaP不是沒有道理,因此有了這個系列的文章出現。

學東西都有成本,爲什麽要學并且這個系列會有什麽内容,將會在這篇像大家介紹。