2016年8月28日 星期日

關於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.

沒有留言: