2016-10-31 2 views
1

私はLuisDialogを使用していますが、LuisResultを使用してアクション、パラメータを検出し、欠落しているパラメータをユーザーに確認する方法を知りたいと思います。 LuisResultには既にアクションとパラメータが含まれていますが、私はユーザーにプロンプ​​トを表示する最善の方法、またはcontextIdを使用してその情報をLUISに送り返す方法がわかりません。私はBotBuilder SDKまたは一般的なWeb上でこのテーマに関する例を見つけることができませんでした。LUISアクションをボットに統合して、ユーザーに詳細情報を入力する方法を教えてください。

答えて

1

私の大雑把なアプローチはこれです。たとえば、LuisResultのエンティティがあるとします。見つからない場合は、ユーザーにプロンプ​​トを表示する必要があります。

まず、不足しているエンティティを確認します。欠落しているものがある場合は、ユーザーにプロンプ​​トを出し、新しいデータを処理する別のメソッドに応答をリダイレクトします。すでに受信したLuisResultは、最初にConversationDataに保存する必要があります。

 var requiredEntities = new List<string>() 
     { 
      "builtin.places.place_name", 
      "builtin.places.place_type" 
     }; 
     string askForMore = null; 
     foreach(var entity in requiredEntities) 
     { 
      EntityRecommendation temp; 
      var found = result.TryFindEntity(entity, temp); 
      if (!found) 
      { 
       //Prompt the user for more information 
       askForMore = entity; 
      } 
     } 
     if (askForMore != null) 
     { 
      //TODO: store values from existing LuisResult for later use 
      //For example, use ConversationData for storage. 

      context.PostAsync("Please enter value for entity " + askForMore); 
      context.Wait(AdditionalUserInputReceived); 
     } 
     else 
     { 
      //do normal stuff 
     } 

これは完全に手動の方法です、私はLuisDialogFormFlowを組み合わせることにより、より自動化があるかもしれないと仮定し、あまり柔軟性

+0

こんにちは付き!それは実際に私がこの種の状況を今取り扱っている方法です。 LUISのアクション(プロンプトとパラメータ)を完全に無視するため、このコードではLUISアクションを直接実装する方法があるかどうかは不思議でした。私はこのコードが完了したことを知っています(ありがとう)が、私はLUISによって提供されるプロンプトとパラメータ名を使用できるより良い代替があるのだろうかと思っています。 – artie

+0

Luisアクションを使用するには、Luis Previewモードを使用します。 – Satheesh

関連する問題