2016-04-13 5 views
0

Может кто-нибудь помочь мне интерпретировать то, что, черт возьми, это означает, что с рамочным бот справки о:Passing в LuiS лиц, чтобы связать диалоговое состояние

Вы также можете передать в LuiS лиц связываться с государством. Если EntityRecommendation.Type - это путь к полю в вашем классе C#, то EntityRecommendation.Entity будет передаваться через распознаватель для привязки к вашему полю. Как и в исходном состоянии, любой шаг для заполнения этого поля будет пропущен.

Когда я называю диалог я прохожу в моей коллекции LuisResult result Entities, как так:

context.Call(new FormDialog<ItemSearch>(new ItemSearch(), ItemSearch.BuildForm, options: FormOptions.PromptInStart,entities:result.Entities), null); 

В рамках этих организаций, по крайней мере один, который отображает в качестве имени и типа к общественной собственности на диалоге моего однако государство никогда не заполняется. Что мне не хватает?

TIA.

ответ

0

Вы можете найти пример этого в PizzaOrderDialog. если вы посмотрите на реализацию FormDialog, она использует файл entity.type для сопоставления принятой в сущности рекомендации с шагом в форме. Затем обнаруженные объекты будут предоставлены в качестве входных данных для этого этапа формы.

Вот пример того, как форма может пропустить этап рода на основе выявленных лиц по модели Луиса в форме пиццы:.

 var entities = new List<EntityRecommendation>(result.Entities); 
     if (!entities.Any((entity) => entity.Type == "Kind")) 
     { 
      // Infer kind 
      foreach (var entity in result.Entities) 
      { 
       string kind = null; 
       switch (entity.Type) 
       { 
        case "Signature": kind = "Signature"; break; 
        case "GourmetDelite": kind = "Gourmet delite"; break; 
        case "Stuffed": kind = "stuffed"; break; 
        default: 
         if (entity.Type.StartsWith("BYO")) kind = "byo"; 
         break; 
       } 
       if (kind != null) 
       { 
        entities.Add(new EntityRecommendation(type: "Kind") { Entity = kind }); 
        break; 
       } 
      } 
     } 

     var pizzaForm = new FormDialog<PizzaOrder>(new PizzaOrder(), this.MakePizzaForm, FormOptions.PromptInStart, entities); 
0

также, что существует проблема с прохождением Entities в кажется для работы, если свойство, на которое вы сопоставляете, является Enum (согласно образцу PizzaBot). Однако, если публичное свойство является строкой, оно не отображается. Я не уверен в других типах.

https://github.com/Microsoft/BotBuilder/issues/151

 Смежные вопросы

  • Нет связанных вопросов^_^