身為 LAE(LINE API Expert) 與 LINE 的支持者,既然知道透過Semantic Kernel可以快速的開發對談機器人,那當然要嘗試用在 LINE Bot的開發上。 先前我們 介紹過 如何使用 Semantic Kernel 來開發一個支援記憶與對話前後文、可以用自然語言進行請假的對談機器人,但當時的架構是在 console 環境,負責記憶處理的 ChatHistory 是可以被長時間保存的實體物件,但換成了LINE Bot開發的WebAPI架構,一切就變的有所不同了。 首先,由於ChatHistory物件會隨著WebAPI行程消失而遺失,且我們的LINE Bot還得面對多個用戶,因此也無法簡單的用一個 ChatHistory 物件就保存所有用戶的對話紀錄。所以我們要做一些調整,為每一位用戶建立一個自己的ChatHistory物件。 因此,我們在 WebAPI 中撰寫了底下這樣的程式碼: static Dictionary<string, ChatHistory> ChatHistoryByUser = new Dictionary<string, ChatHistory>(); private ChatHistory getHistoryFromStaticRepo(string UserId) { if (ChatHistoryByUser.ContainsKey(UserId)) return ChatHistoryByUser[UserId]; else return new ChatHistory(); } private void saveHistory(string UserId, ChatHistory chatHistory) { if (ChatHistoryByUser.ContainsKey(UserId)) ChatHistoryByUser[UserId] = chatHistory; else ChatHistoryByUser.Add(UserId, chatHistory); } 這段程式碼以靜態方式儲存ChatHistory物件的Dictionary,搭配 getHistoryF
留言
上次聽您說
新書已經要上市了
可是等到現在
還沒看到耶
可以請問老師是哪家出版社
書名叫什麼嗎
我在過老師您的「Silverlight 權威講座」後,在實作一個網頁的時候,遇到了一個問題!我的程式碼是這樣子的:
protected void DynamicXaml1_OnMouseLeftButtonDown(string ElementName, int x, int y, int absX, int absY)
{
Class1.ElementView = ElementName;
Response.Redirect("test.aspx");
}
一開始在網頁上點這個「DynamicXaml1」的時候,它「馬上」就可以跳到"text.aspx"這個頁面!但是如果讓畫面停久一點,大概幾分鐘的時間,再點「DynamicXaml1」,那就會變成會lag幾分鐘才能跳至"test.aspx",有的時候還會整頁都當掉!能請問董老師這個是什麼原因嗎?謝謝您了!
有關於Silverlight和blend播放音效或音樂的問題想向您請教
Storyboard中是否可以定義我要在這個Storyboard跑到幾秒時,播放一組音效。
例如我想在A Storyboard播放到兩秒時,播放我的音效。
如果我的理解是對的,Silverlight中無論播放影片都是倚賴MediaElement。
但在blend中,當建立Storyboard後,並無法看到MediaElement的長度,也沒辦法決定它到底什麼時候要播放。
所以我如果要再某一段Storyboard播放到兩秒時,我必須要靠程式的作法,靠loop的方式去偵測Storyboard播放的位置,或是把Storyboard切成兩段,當第一段兩秒的Storyboard結束後,觸發結束事件,然後播放音效,再播放下一段動畫。
不過這樣在做動畫時,不是這麼的直覺,可能是因為我們比較習慣傳統剪輯軟體的觀念。
因此,是否是有其他方法可以達到這類效果,還請抽空指導,謝謝。
目前SL3的書籍我只有一本,就是BLOG首頁上的SL權威講座加強版, 這本加強版是SL2的紙本內容加上SL3的PDF電子檔, 所以我並沒有特別強調這本書.
目前SL3沒有專書, 原因很簡單, 因為 VS2010 beta 2已經出了, 而SL3在VS2010中已經可以透過所視及所得的方式開發, 這表示未來SL3(or SL4)的開發工具會和現在VS2008有所不同, 而VS2010預計明年Q1,Q2之間就會上市,因此屆時不管是SL3/SL4,都會有新書問世。