2017-01-19 2 views
0

In LUIS Ich habe einige Äußerungen erstellt, für die Intent erkannt wird, und ich habe 3 verschiedene Entities dafür festgelegt. Beispiel: Ich versuche, einen Bot zu erstellen, um Benutzerproblem in Bezug auf eine Anwendung zu erkennen. Wenn der Benutzer Unable to Open Android eingibt, habe ich die Absicht und Entities als 1. Product 2. Issue 3. Error festgelegt. Aber seit Unable to Open Android enthält keinen Fehlercode. Ich bekomme nur 2 entitiesProduct & Issue. Jetzt möchte ich den Wert für Error bekommen, wenn kein Fehler es als nichts gespeichert würde. Hier ist der Task-Code bisherBotFramework: Wie behandelt man mehrere Entitäten für eine einzelne Absicht?

[LuisIntent("Find_Issue")] 
    public async Task getIssue(IDialogContext context, LuisResult result) 
    { 
     EntityRecommendation getProduct; 
     EntityRecommendation getIssue; 
     EntityRecommendation getError; 
     if(result.TryFindEntity("Product",out getProduct)) 
     { 
      chatdetails.issuedetails.product = getProduct.Entity; 

     } 
     if (result.TryFindEntity("Issue", out getIssue)) 
     { 
      chatdetails.issuedetails.issue = getIssue.Entity; 
     } 
     if (result.TryFindEntity("Error", out getError)) 
     { 
      chatdetails.issuedetails.error = getError.Entity; 
     } 

    } 

chatdetails.issuedetails die Klasse erstellt speichern die Werte von Product, Issue, Error ich nicht bekommen, wie weiter verfahren ist.

+0

Ihr luis-Agent braucht mehr Training. –

+0

Wenn die Aussage des Benutzers nichts enthält, das mit 'Error' assoziiert ist, dann würde es nicht erhalten ... aber wenn es die' error entiy' nicht findet, sollte es den Benutzer nach der 'error' bezogenen Frage fragen. –

+0

@saikatmukherjee Train 'Find Intent' mehr und wenn es keine Entität gibt, können Sie formflow verwenden, um eine Antwort für die 'error'-bezogene Frage vom Benutzer zu erhalten –

Antwort

0

Wenn Sie eine Absicht in LUIS definieren, können Sie auch ihre Aktionsparameter definieren. Aktionsparameter bestehen aus einem Parameternamen, einem Entitätstyp, einer Eingabeaufforderung und falls erforderlich oder nicht.

enter image description here

Dann, wenn die neueste Version des Pakets BotFramework Nuget verwenden, Ihre LuisDialog erkennt automatisch, dass ein erforderlicher Parameter (wie in Ihrem Szenario mit der Entität Fehlern) fehlt und wird automatisch eine Aufforderung Feuer für der Parameter unter Verwendung der im Aktionsparameter definierten Nachricht.

Für technische Details, wie dieses Ding um die Aktionsparameter funktioniert, überprüfen Sie bitte this thread.

Verwandte Themen