關於bot framework (5) - 透過.net SDK使用LUIS
在你知道了LUIS的功能之後,接著我們就來看看如何透過程式碼叫用LUIS。
你知道LUIS是一個服務,且用的通訊方式是http與JSON,因此你當然也知道可以透典型的http get來抓取,並且把JSON轉成js或c#看得懂的類別來操作。
不過,如果你使用VS2015、寫C#或VB,以前沒有適合的nuget package可用,從上一周開始,你可以直接從nuget上使用底下這個套件,來呼叫LUIS的功能:
安裝此套件之後,使用起來非常簡單:
//建立LuisClient Microsoft.Cognitive.LUIS.LuisClient lc = new Microsoft.Cognitive.LUIS.LuisClient( LUIS AppID, key); this.textBoxResult.Text = "分析中..."; //Call Luis API 查詢 var ret = await lc.Predict(textBoxQuery.Text); if (ret.Intents.Count() <= 0) return; var msg = ""; foreach (var item in ret.Intents) //顯示intent { msg += $"\n intent: {item.Name} score:{item.Score} "; } msg += "\n\n"; foreach (var item in ret.Entities) //Entities { msg += $"\n Entities: {item.Value[0].Name} {item.Value[0].Value} score:{ item.Value[0].Score} "; } //顯示於TextBox this.textBoxResult.Text = msg;
這幾乎不用解釋了。
你可以使用LuisClient 建立一個instance,記得傳入LUIS AppID與key,透過Predict以非同步方式呼叫,把要查詢的句子(Query)傳入當參數,回傳值透過intents與Entities兩個集合屬性傳回,LUIS會回傳給你它所分析出的所有可能性,你可以透過score找到分數以判斷最高的可能性。
that’s it.
have fun.
留言