Botframework-solutions: Skill kann nicht richtig beendet werden, wenn der Benutzer abbricht, wenn der Skill aus dem Unterdialog in VA gestartet wird

Erstellt am 1. Juni 2020  ·  16Kommentare  ·  Quelle: microsoft/botframework-solutions

Welches Projekt ist betroffen?

Virtueller Assistent

In welcher Sprache ist das?

Typoskript

Was geschieht?

Wenn Sie einen Dialog starten und dann einen Skill aus diesem Dialog starten, wird er nicht richtig im Stack registriert. Wenn der Benutzer den Interrupt "Abbrechen" verwendet, erhält der Skill nie das Ende der Konversation zum Zurücksetzen.

Was sind die Schritte, um dieses Problem zu reproduzieren?

Erstellen Sie eine VA und einen Skill. Starten Sie den Skill aus dem "Onboarding-Dialog der VA. Versuchen Sie den Skill mit dem Interrupt abzubrechen und prüfen Sie, ob der Skill das Gesprächsende erhält

Was haben Sie erwartet?

Können Sie Protokolle, Fehlerausgaben usw. freigeben?

Dialogstapel von Skill, der in einem Unterdialog gestartet wurde
[ { id: 'MainDialog',
state: { Optionen: {}, Werte: [Objekt], stepIndex: 1 } },
{ id: 'TextPrompt', Zustand: { Optionen: [Objekt], Zustand: {} } },
{ id: 'TransferDialog2',
Zustand: { Dialoge: [Objekt] },
Version: '-43530585' } ]

Dialogstapel von Fähigkeiten, die vom Hauptdialog gestartet werden
[ { id: 'MainDialog',
state: { Optionen: {}, Werte: [Object], stepIndex: 2 } },
{ id: 'dlpskill', Zustand: {} } ]

Irgendwelche Screenshots oder zusätzlichen Kontext?

Needs Triage Bug

Hilfreichster Kommentar

Alle 16 Kommentare

Danke @tomSauret847 für die Meldung dieses Problems! Sobald wir ein Update haben, melden wir uns bei euch 😊.

Hallo @tomSauret847! Der Versuch, dieses Problem zu reproduzieren, war nicht erfolgreich.

Wir haben einige Fragen zu Ihren Repro-Schritten.

  • Verwenden Sie den [email protected] ?
  • Lösen Sie den Skill aus, indem Sie die Äußerung während des onboardingDialogs der VA senden?
  • Haben Sie die VA aktualisiert, um die Absicht an den Skill weiterzuleiten? Wenn ja, welche Modifikationen haben Sie daran vorgenommen?
  • Was meinst du mit TransferDialog2 ? Ist es ein Synonym für onboardingDialog ?

Wir haben festgestellt , dass es eine Validierung in der interruptDialog Methode der VA MainDialog, dass nur auf eine andere Fähigkeit schaltet , wenn der aktuelle Dialog zu einer Fähigkeit gehört.
Im Fall von onboardingDialog dies false zurück, daher wird es nicht unterbrochen, um das Skill-Sample zu starten.

Das ist unsere Umgebung:

Wir haben die folgenden Schritte unternommen, um das Problem zu reproduzieren:

  1. Virtuellen Assistenten und Fähigkeiten bereitstellen
  2. Verbinden Sie den virtuellen Assistenten mit dem Skill
  3. Führen Sie beide Bots im Bot-Emulator aus
  4. Die Äußerung eines Skills während der onboardingDialog der VA senden
  5. Der Skill wurde nicht initialisiert, da onboardingDialog noch nicht fertig war

image

Vielen Dank!

Derzeit haben wir unseren Live-Agententransfer als Skill eingerichtet, um zu einem Live-Agenten eskalieren zu können, wenn der Bot das Kundenproblem nicht lösen kann (TransferDialog2). Wir müssen eine Validierung durchführen, um sicherzustellen, dass der Kunde in die richtige Chat-Warteschlange weitergeleitet wird, weshalb wir dies in einen Dialog ähnlich dem Onboarding-Dialog eingebaut haben. Ich rufe den Agenttransfer Skill mit folgendem Code im transferDialog auf.

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

Die VA startet den Skill und leitet alle Kundennachrichten an den Skill weiter, aber wenn der Kunde die Unterbrechung "Dialog abbrechen" auslöst, sendet die VA das Gesprächsende nicht an den Skill, damit wir den Skill bereinigen und beenden können. Du hast die Schritte reproduziert, aber die Fertigkeit in deiner Reproduktion nicht abgebrochen. Hier besteht unser Problem darin, den EOC in der Fähigkeit zu erhalten, die verbrauchten Ressourcen zu bereinigen und zu schließen.

Ich verwende eine TypeScript-VA
TypeScript-Fähigkeit
Ich habe beide basierend auf den Änderungen aktualisiert, die im "nächsten" Zweig des Repositorys veröffentlicht wurden, um sicherzustellen, dass sie auf dem neuesten Stand sind
Der Skill wird ausgelöst und funktioniert ordnungsgemäß, er erhält nur kein EOC, wenn der Kunde alle aktiven Dialoge abbricht.

Danke @tomSauret847 für die ganzen Infos 😊.
Wir werden das Problem weiterhin reproduzieren und Sie über alle Aktualisierungen informieren.

@tomSauret847 , wir möchten Ihnen bestätigen , dass wir das Problem richtig verstanden haben.

Basierend auf dem, was Sie in Ihrem letzten Kommentar gesagt haben, werden wir daran arbeiten, das folgende Szenario nachzubilden:

  1. Erstellen Sie ein Beispiel für einen virtuellen Assistenten
  2. Fertigkeitsbeispiel erstellen
  3. Ändern Sie die onboardingDialog der VA so, dass sie das Skill-Sample aufruft. Wir werden unsere Änderungen auf dem gemeinsamen Snippet basieren.
  4. Abbrechen senden
  5. Die Stornierung des Skill-Samples sollte fehlschlagen

So verstanden ist Ihr Workflow.
image

Danke @VictorGrycuk Das ist der korrekte Workflow des Szenarios, das wir implementieren. Wir können dafür sorgen, dass der Skill während des Gesprächs ordnungsgemäß funktioniert, aber wenn der Kunde abbricht, wird der Skill nicht zurückgesetzt, da er nie das Gesprächsende erhält.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen