前一篇提到選擇用Chatbot做為APP前端UI是因為方便,不需重新設計使用者介面,但Linebot上線後,隨即我就發現使用者很多時候不知道如何操作,怎麼解?提供功能選單?文字訊息怎麼辦?
敗口罩開發記錄-自然語言篇
- 1694
- 0
- 2020-03-21
前一篇提到選擇用Chatbot做為APP前端UI是因為方便,不需重新設計使用者介面,但Linebot上線後,隨即我就發現使用者很多時候不知道如何操作,怎麼解?提供功能選單?文字訊息怎麼辦?
距離這個達94萬好友數的Linebot出生差不多剛好滿月,是時候來做個個人記錄了,緣由就不多浪費篇幅說明,簡單來說一開始只是為了方便自己和親友能快速查到販賣口罩的超商位置,就在開發完Linebot後,政策改為只有健保藥局才可以販售口罩,最後進化成藥局版,身為技術人用技術幫助自已也是件合情合理的事
Dialog 是整個 bot framework 裡的核心概念,最主要的作用是用來管理與使用者的對談,簡單來說可以把它看成是程式裡面的方法,有了 Dialog 的機制,在開發 Chatbot 時,我們可以進一步的規劃對話的流程,依特定順序來執行相對應的反應,在實務上人類的對話相當不容易控制,為了讓 Chatbot 能提供更好的使用者體驗,通常會利用一些手法讓對話的過程比較容易控制,一旦能控制,就可以利用程式來結構化。
一般來說Chatbot試圖以模擬自然對話做為應用軟體的一種溝通模式,然而畢竟不是真的人類,要能達到理想上的完全像人類一樣的對話,就目前來說是有困難的,因此在Chatbot的一些情境裡,我們會利用資訊卡的UI來讓對話更流暢。
Chatbot的設計中,如何讓新用戶首次與你的Chatbot互動可以更方便,是非常重要的,通常我們會加入主動式的歡迎句,例如
Chatbot與User最主要的通訊方式,是透過 message activities,這裡面所包含的內容可以是純文字或是圖卡,甚至是附件夾檔,與 V3版本不同的是在bot framework V4版本裡有turn 回合的概念(有關turn回合的概念請參考前一篇文章),讓bot可以從User端接收訊息,並且透過ITurnContext物件可以回覆給User。
從本章起將開始進入到 Bot Framework V4 的開發內容,首先從一個概觀的角度來說明,在Bot Framework V4裡一個 bot 與 使用者間的對話是如何運行的,建立起基本概念後,再搭配程式碼就比較容易理解。
(Ref : https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-basics?view=azure-bot-service-4.0&tabs=cs)
如同開發一般應用程式般,Chatbot的開發過程中,也會需要在開發者端的電腦進行測試,然而Chatbot不一樣的是我們不會有專用的使用者介面(一般來說都是結合時下流行的IM,例如Line,facebook messenger),如果為了能在本機端進行測試,而特別再開發一個使用者介面,就太浪費時間了,這裡我們可以使用微軟提供的 BotFramework-Emulator
Line 可以說是台灣人使用頻率最高的通訊軟體,比起 facebook messenger 高出不少,然後 Azure bot service 自從 GA 一直都沒有直接支援接通 Line 的功能,過去要接通 Line 只能利用 Direct Line 的方式來處理,就在前幾天講課的過程中,突然看到了 Azure bot service 的 Channel 清單出現了 Line 的符號,真是太棒了
在前一篇我們概要的說明了一下基於 ASP.NET Core 的 Bot.Framework V4 Chatbot 專案,其中在 Startup.cs 裡 Configure方法主要是配置HTTP request pipeline,而ConfigureServices方法則是配置相依性注入,那麼到底配置了些什麼東西呢,才能讓整個 Chatbot 可以執行,本篇就來做些說明。
ASP.NET Core 要懂得相依性注入
伴隨各項雲端AI服務的普及化,許多AI的應用開始快速發展,其中一項就是Chatbot(對話機器人),不管是facebook messager或Line,愈來愈多人開發出各式各樣的Chatbot,當然微軟在方面也不輸人,推出了一個專門用於開發Chatbot的框架,Bot Framework,目前Bot Framework版本已經來到V4的版本,除了提供開發Chatbot所需的SDK之外,更可以搭配Azure Bot Service,直接串連facebook messager,輕鬆變身為facebook messager bot,等等...那Line呢? 雖然目前沒辦法像facebook messager一樣直接串連,但是也是可以透過Direct Line機制進行整合的。
Conversation as a Platform (Microsoft BUILD 2016)
使用雲端服務有個好處是你隨時可以享用新發佈的功能,不過另一面也會面臨改版改介面的情況,以LUIS來說從2015年開始試用到現在,我已經看過3次不同的管理介面囉,就來看看這次改了些什麼
LUIS 全名 - Language Understanding Intelligent Service ,微軟所推出的自然語意理解服務,是開發Chatbot不可或缺的利器
在前一篇文章中針對LUIS的運用可以理解到意圖及關鍵項目(entities)的設計,是整個語意理解精準度的關鍵,一個LUIS App 目前最多可以定義 30個關鍵項目(entities),所以接下來我們來看看在LUIS裡針對自訂義關鍵項目(custom entities)的幾種設計方式。
最近Chatbot突然間火紅了起來,在幾次的交流及課程活動中,常被問到有關LUIS的一些相關問題(誤解?),索性就來寫篇關於LUIS的意圖(intents)及關鍵項目(entities)見解文(可能有不同見解或想法,歡迎交流)。