Ich versuche, einen Bot mit LUIS zu bauen, aber es ist viel schwieriger als ich dachte. Bisher habe ich es geschafft, meine LUIS Anwendung und erstellen Sie eine Intent und ein Entity und ich habe ein paar Utterances, die gut zu funktionieren scheinen geschaffen zu erstellen.Microsoft Bot Framework, LUIS und Aktionsparameter
Ich habe dann meinen Bot erstellt und habe es an Luis angeschlossen. Wenn ich meinen Bot teste, funktioniert es wie erwartet. Jetzt zum Spaß. Ich möchte mit Parametern umgehen. Auf Luis fügte ich eine Aktion meine Intent:
Wie Sie habe ich eine Eingabeaufforderung hinzugefügt sehen können. Mein Code in meinem Bot sieht derzeit wie folgt aus:
/// <summary>
/// Tries to find the category
/// </summary>
/// <param name="result">The Luis result</param>
/// <param name="alarm"></param>
/// <returns></returns>
public string TryFindCategory(LuisResult result)
{
// Variable for the title
EntityRecommendation title;
// If we find our enenty, return it
if (result.TryFindEntity(PiiiCK.Category, out title))
return title.Entity;
// Default fallback
return null;
}
[LuisIntent("Choose category")]
public async Task ChooseCategory(IDialogContext context, LuisResult result)
{
// Get our category
var category = TryFindCategory(result);
var response = "The category you have chosen is not in the system just yet.";
switch (category)
{
case "camera":
response = $"You need help buying a { category }, is this correct?";
this.started = true;
break;
default:
if (!string.IsNullOrEmpty(category)) response = $"Sorry, PiiiCK does not deal with { category.Pluralise() } just yet.";
break;
}
// Post our response back to the user
await context.PostAsync(response);
// Execute the message recieved delegate
context.Wait(MessageReceived);
}
Ich glaube, Sie können erraten, wo ich mit diesem gehe. Wenn der Benutzer Hilft mir eine Kamera kaufen, wird es Wählen Sie die Kategorie Intent und wird die richtige Entität ausgewählt haben. Aber wenn sie eingeben Helfen Sie mir, kaufen, wird es immer noch auf die richtige Absicht gehen, aber es wird keine Entität haben. Ich möchte, dass mein Bot das sieht und den Text in der Eingabeaufforderung verwendet, die ich in LUIS herstellte, und wenn der Benutzer ihre Einheit auswählt, möchte ich, dass es mit diesem Parameter zu LUIS zurückgeht.
Ich habe keine Ahnung, wie man das macht und ich kann keine Tutorials zu diesem Thema finden. Jede Hilfe wäre wünschenswert (sogar Links!)
Können Sie ein Bild Ihres LUIS-Modells hinzufügen, damit wir Ihre Absicht/Ihren Namen verstehen?Was macht TryFindCategory? –
Momentan gibt es nur 1 Absicht (Kategorie wählen) und 1 Entität (Kategorie). TryFindCategory einfach ein Auszug aus https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Samples/AlarmBot/Dialogs/AlarmLuisDialog.cs Zeile 60, wo ich, anstatt Boolean zu sein, nur die Entity oder Null zurückliefern. – r3plica