2016-04-26 23 views
10

Sto provando a utilizzare lo FormBuilder in combinazione con i miei intent mentre li ho creati in Luis. Non riesco a trovare la documentazione per farlo.Come integrare Luis nel bot builder

vorrei fare le seguenti cose:

  1. Un utente potrebbe inserire una frase che viene interpretata con Luis.
  2. Se non tutte le entità sono fornite nella frase, il form builder riempirà gli spazi vuoti.

Come posso fare? C'è un tutorial? Vedo persone che parlano di LuisDialogs, ma non so da dove iniziare.

+0

Ho trovato questo è un buon articolo: http://www.c-sharpcorner.com/article/an-interactive-bot-application-with-luis-using-microsoft-bot/ – PhuocLe

risposta

16

In poche parole:

Ecco alcuni passi (ma si dovrebbe assolutamente seguire la guida che ho linkato):

Fondamentalmente si tratta di una classe che eredita LuisDialog<object> e si deve mettere un attributo su di esso con il vostro Luis id e segreta

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

Quindi si aggiunge il metodo alla classe e li si decorano con l'attributo LuisIntent(...).

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

All'interno del metodo, è possibile cercare se un'entità è stato trovato utilizzando un codice come questo:

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

Infine, per avviare la finestra di dialogo, è necessario chiamare questa Dentro il controller:

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); 
     } 
    } 
+0

Grazie! Ho esaminato l'esempio di PizzaBot e sono riuscito a far funzionare il mio codice :-) – Aldentev

+0

Perfetto! puoi contrassegnare la risposta come utile in modo che altre persone che hanno la stessa domanda possano fare affidamento su di essa? :) –

+0

Se l'entità NON viene fornita, come posso chiedere all'utente di fornire solo le informazioni sull'entità nella seconda fase? Devo aggiornare il modello di Luis per poter prendere solo 1 parola come entità e collegarla con l'intento? – Vikram

Problemi correlati