Virtueller Assistent
Typoskript
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.
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
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: {} } ]
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.
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:
onboardingDialog
der VA sendenonboardingDialog
noch nicht fertig warVielen 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:
onboardingDialog
der VA so, dass sie das Skill-Sample aufruft. Wir werden unsere Änderungen auf dem gemeinsamen Snippet basieren.So verstanden ist Ihr Workflow.
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.
Hilfreichster Kommentar