Comandi Rapidi - RetiSpA/botler GitHub Wiki

Comandi Rapidi

I Comandi Rapidi sono un ottimo strumento per velocizzare la conversazione, qualora un utente esperto volesse cambiare rapidamente da uno scenario all'altro.

Sono mappati in LUIS come entità, e vengono controllati all'inizio di ogni turno, se presenti grazie alla metodo nella classe CommandRecognizer

        public static async Task<bool> ExecutedCommandFromLuisResultAsync(LuisServiceResult luisServiceResult, BotlerAccessors accessors, ITurnContext turn)
        {
          var entities = luisServiceResult.LuisResult.Entities;
          var listent = luisServiceResult.LuisResult.Entities;

          IList<ICommand> listCommands = new List<ICommand>();
          ICommand command = null;
          string commandExecuted = string.Empty;

          foreach(var ent in entities)
          {
            command = CommandFactory.FactoryMethod(turn, accessors, ent.Key);

            if(command != null)
            {
              listCommands.Add(command);
            }

          }

            // We want to handle 1 command at time
          if (listCommands.Count != 1) return false;

          else
          {
              await listCommands[0].ExecuteCommandAsync();

              return true; // Command found and executed
          }
        }
    }

NOTA:Vedere LUIS per vedere come sono creati i comandi dal lato di LUIS, e per una lista completa dei comandi attualmente attivi.

⚠️ **GitHub.com Fallback** ⚠️