11

LuisFormBuilderで作成したインテントと組み合わせて使用​​しようとしています。これを行うためのドキュメントが見つかりません。

私は次のことをしたいと思います:

  1. ユーザーは、 Luisで解釈されるフレーズを入力します。
  2. フレーズですべてのエンティティが指定されていない場合、フォーム ビルダーがギャップを埋めます。

どうすればいいですか?チュートリアルはありますか?について話している人を見かけますがLuisDialogs、どこから始めればよいかわかりません。

4

1 に答える 1

16

手短に :

ここにいくつかの手順があります(ただし、リンクしたガイドに必ず従う必要があります):

基本的には継承するクラスでありLuisDialog<object>、Luis id とシークレットを使用してその上に属性を配置する必要があります

[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")]
[Serializable]
public class SimpleAlarmDialog : LuisDialog<object>
{ [...]

次に、クラスにメソッドを追加し、LuisIntent(...)属性でそれらを装飾します。

 [LuisIntent("builtin.intent.alarm.turn_off_alarm")]
 public async Task TurnOffAlarm(IDialogContext context, LuisResult result)
 { [...]

メソッド内で、次のようなコードを使用してエンティティが見つかったかどうかを検索できます。

EntityRecommendation title;
if (result.TryFindEntity(Entity_Alarm_Title, out title))
{
    what = title.Entity;
}
else
{
    what = DefaultAlarmWhat;
}

最後に、ダイアログを開始するには、コントローラー内でこれを呼び出す必要があります。

public async Task<Message> Post([FromBody]Message message)
    {
        if (message.Type == "Message")
        {
            // return our reply to the user
            return await Conversation.SendAsync(message, () => new EchoDialog());
        }
        else
        {
            return HandleSystemMessage(message);
        }
    }
于 2016-05-02T10:31:36.877 に答える