Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[Bot Framework V4][10]在Dialog裡面做Branching以及Looping把不同功能更加模組化

[Bot Framework V4][10]在Dialog裡面做Branching以及Looping把不同目的更加模組化.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([09]使用waterfall建立表單式填寫)介紹了使用watfall的方式達到建立一個表單式搜集的chatbot。

裡面爲了簡化把取得姓名的部分暫時拿掉了,但是在實務上不同邏輯的dialog可能會存在,那怎麽辦呢?

這篇將介紹透過Dialog來做Branching以及Looping。

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

看全文>>


[faq]Windows安裝 git 2.19.1 之後做git clone/pull/push出現NullReferenceException錯誤的問題解決方式

[faq]Windows安裝 git之後做git push出現NullReferenceException錯誤的問題解決方式.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

最近在一臺乾净的電腦裡面重新安裝了開發環境,git作爲版控工具肯定是首選要裝的工具之一。

環境准備好了之後,當然就是要clone專案下來開始開發,可是竟然出現了fatal: NulIReferenceException encountered. Object reference not set to an instance of an object.

太詭異了吧,用了git這麽多年還沒有遇到過這種問題,到底要怎麽處理呢?

看全文>>


[Bot Framework V4][09]使用waterfall建立表單式填寫

[Bot Framework V4][09]使用waterfall建立表單式填寫.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([08]改用TextPrompt詢問使用者姓名)使用TextPrompt來取得使用者的姓名,感覺起來好像和自己維護狀態沒什麽兩樣,因爲還是需要透過if else來呼叫。

這樣Dialogs還有意義嗎?

這篇將會介紹另外一種使用情景,有時候需要搜集使用者的資料,例如説他要訂房的話會需要搜集他要訂什麽時間,住幾個晚上等等,這個時候Dialog就變得更加方便。

這篇將介紹如何透過waterfall來達到這個效果。

在V3版本有所謂的FormFlow,waterfall dialog做出來有點類似一樣的概念,有興趣可以看看:[07]使用FormFlow讓Chatbot搜集表單資訊更容易
這篇的程式碼github頁面是alantsai-samples/mhat-hotelbotv4:blog/chapter-09

看全文>>


[Bot Framework V4][08]改用TextPrompt詢問使用者姓名

[Bot Framework V4][08]改用TextPrompt詢問使用者姓名.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([07]Dialog - 控制流程的元件介紹)介紹了Dialog的原件之後,接下來就是要實際使用看看是什麽感覺。

這篇先用最基本的TextPrompt,看看如何簡化詢問姓名的邏輯。

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

看全文>>


[Bot Framework V4][07]Dialog - 控制流程的元件介紹

[Bot Framework V4][07]Dialog - 控制流程的元件介紹.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([06]使用BotState儲存使用者的相關信息)透過ConversationState記錄狀態的方式,來控制整個對話流程,然後透過把使用者信息儲存在UserState達到可以記錄每個使用者的個人信息。

開發當然可以透過這個方式繼續做下去,但是一個問題就冒出來,簡單的流程用這種方式當然沒問題,但是當流程很複雜怎麽辦?是不是變成需要自己建立一個機制能夠知道目前在整個流程的那個部分?

這個問題肯定Framework有考量到,那這個機制是什麽?作爲開發者怎麽使用呢?

這篇將介紹V4裡面的機制,Dialog

看全文>>


[Bot Framework V4][06]使用BotState儲存使用者的相關信息

[Bot Framework V4][06]使用BotState儲存使用者的相關信息.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

上一篇([05]搞懂Bot的State Management - 怎麽儲存信息)看完了一堆理論了之後,相信對於整個V4的BotState有個比較清楚的概念 - 爲什麽要用Accessor,整體的串接以及需要哪些原件。

這一篇將在加深這個部分的印象,如果Bot能夠記得使用者的姓名將會給一個不同的使用者體驗。

看看怎麽在UserState裡面儲存内容。

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

看全文>>


[Bot Framework V4][05]搞懂Bot的State Management - 怎麽儲存信息

[Bot Framework V4][05]搞懂Bot的State Management - 怎麽儲存信息.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([04]瞭解EchoBot的程式碼結構)看了整個EchoBot的骨架之後,相信對於整個Chatbot的撰寫有了一些基本的概念了。

接下來要做的就是進入細部看細節。看看每一個環節實際怎麽撰寫。

先從State開始,如果説Bot沒辦法記得使用者的習慣以及設定,那麽整個使用體驗會很差。舉例來説,如果沒有state,那麽每一次都要問使用者的姓名,就太笨了。

這篇來看看V4裡面的Bot State Management。

看全文>>