Virtueller Assistent und Fähigkeiten
Typoskript
Wenn ein QnAMakerDialog mit einer bestimmten Sprache (z. B. DE) erstellt wird, wird immer diese Sprache aufgelöst, auch wenn Sie die Sprache ändern oder ein anderer Benutzer eine andere Sprache verwendet (z. B. EN).
Benutzer 1 : Sendet die Äußerung an den Bot (DE);
Bot : Der Bot löst die Äußerung als QnA-Intent auf und erstellt den neuen QnADialog mit der KnowledgebaseId als ID des Dialogs:
``
private registerQnADialog(knowledgebaseId: string, cognitiveModels: ICognitiveModelSet, locale: string): void {
const qnaEndpoint: QnAMakerEndpoint | undefined = cognitiveModels.qnaConfiguration.get(knowledgebaseId);
if (qnaEndpoint == undefined){
throw new Error(
QnA Maker-Wissensdatenbankkonfiguration mit ID: ${ KnowledgebaseId } nicht gefunden.`);
}
if (this.dialogs.find(knowledgebaseId) == undefined) {
const qnaDialog: QnAMakerDialog = new QnAMakerDialog(
qnaEndpoint.knowledgeBaseId,
qnaEndpoint.endpointKey,
// The following line is a workaround until the method getQnAClient of QnAMakerDialog is fixed
// as per issue https://github.com/microsoft/botbuilder-js/issues/1885
new URL(qnaEndpoint.host).hostname.split('.')[0],
this.templateEngine.generateActivityForLocale('UnsupportedMessage', locale) as Activity,
// Before, instead of 'undefined' a '0.3' value was used in the following line
undefined,
this.templateEngine.generateActivityForLocale('QnaMakerAdaptiveLearningCardTitle', locale).text,
this.templateEngine.generateActivityForLocale('QnaMakerNoMatchText', locale).text
);
qnaDialog.id = knowledgebaseId;
this.addDialog(qnaDialog);
}
}
```
Bot : Sendet QnA-Antwort an Benutzer 1 im Gebietsschema von Benutzer 1 (DE)
Benutzer 2 : Sendet die Äußerung an den Bot (EN);
Bot : Der Bot löst die Äußerung als QnA-Intent auf (der gleiche Benutzer 1 hat gesendet), es wird kein neuer QnaMakerDialog erstellt, da bereits ein Dialog mit derselben KnowledgebaseId existiert.
Bot : Der Bot startet erneut den QnA-Dialog (hinzugefügt von Benutzer 1 Iteration) und erhält die Antwort von der Wissensdatenbank (DE) des ersten Benutzers;
Bot : Sendet eine Nachricht an Benutzer 2 im Gebietsschema von Benutzer 1.
Ein weiterer QnAMakerDialog wird mit der richtigen Sprache und der richtigen Wissensdatenbank-ID erstellt.
Danke @tommyJimmy87. Sobald wir ein Update zur Implementierung von Dependency Injection haben, werden wir uns bei Ihnen melden!
Hallo @tommyJimmy87 , wir haben den PR #3559 erstellt, der dieses Problem Dependency Injection in die Bots integriert.
Wenn Sie so nett sind, können Sie die Änderungen mit diesen Repro-Schritten validieren und diesen Zweig verwenden :
npm install
, um die Abhängigkeiten zu installierennpm run build
, um die Lösung zu kompilierennpm pack
, um das tgz zu erstellenVerwenden Sie das erstellte tgz im Virtual Assistant package.json wie folgt:
"bot-solutions": "WEG ZU BOT-SOLUTIONS TGZ"
Stellen Sie den virtuellen Assistenten in mehreren Sprachen bereit
QnAMakerDialog
Ihnen erwähnte QnAMakerDialog
Szenario zu reproduzierenZu guter Letzt enthält die PR, wie bereits erwähnt, folgende Änderungen:
inversifyjs
Bibliothek) in Virtual Assistant und Skill of TypeScriptWir werden auf Ihre Antwort aufmerksam sein 😊.
Hallo @Batta32 ,
danke für eure unterstützung, sieht so aus, als ob das problem mit der neuen bot-solutions-Bibliothek gelöst wurde, die ich aus eurem branchen integriert habe :) Habt ihr eine ungefähre Einschätzung, wann ihr sie veröffentlichen werdet?
HI @Batta32 , mir ist Komponententests auszuführen , eine Fehlermeldung TypeError: Reflect.hasOwnMetadata is not a function
.
Liegt das daran, dass Sie die Tests nicht zur Verwendung von Inversify migriert haben?
Danke @tommyJimmy87! Wir werden dies überprüfen und uns bei Ihnen melden, sobald wir ein Update dazu haben 😊.
Hallo @Batta32 , wir haben dieses Problem gelöst, indem wir diesen Import zur Testbasis-Js-Datei hinzugefügt haben: require('reflect-metadata');
Hallo @tommyJimmy87 - wir konnten das von Ihnen erwähnte Problem im Zusammenhang mit den
Wir kamen auf Fragen :
Das ist unsere Umgebung :
feature/southworks/dependency-injection-implementation
Wir haben die folgenden Schritte unternommen, um das Problem für den virtuellen Assistenten und den Skill zu reproduzieren:
npm install
, um die Abhängigkeiten zu installierennpm run build
, um die Lösung zu kompilierennpm pack
, um das .tgz
zu erstellen.tgz
im Virtual Assistant package.json wie folgt:npm install
, um die Abhängigkeiten zu installierennpm run build
, um die Lösung zu kompilierennpm run test
, um die Lösung zu kompilierenHallo @tommyJimmy87 - wir haben die vorgeschlagenen Änderungen in der PR #3559 hinzugefügt.
Wir haben die Virtual Assistant- und Skill-Bots aktualisiert und die folgenden Importtestdateien hinzugefügt : require('reflect-metadata');
speziell in BotTestBase und SkillTestBase , um das von Ihnen erwähnte Problem im Zusammenhang mit den
Sie können diese Schritte ausführen , um die Änderungen im virtuellen Assistenten und im Skill zu testen.
Vielen Dank,
Diego.
Hallo @Batta32 und @DiegoCardozo94 ,
Ich habe eine allgemeine Frage, aber da ich diesen Branch bereits in unserem Projekt verwende, obwohl er noch nicht veröffentlicht wurde, würde ich ihn hier stellen.
In unserem Szenario haben wir MS Teams als einzigen Kanal. Ich sehe, dass der TeamsActivityHandler nur in der VA und nicht im Beispiel des Skills verwendet wird, richtig? Weil ich vielleicht fälschlicherweise auch im Skill den TeamsActivityHandler erweitert habe und das hat mich zu einem speziellen Problem geführt: Grundsätzlich wird die endOfConversation
Methode nie nach einem cancel
im DefaultActivityHandler
$$ des Skills aufgerufen . Aber vielleicht sollte ich innerhalb der Skills einfach auf die "normale" ActivityHandler-Erweiterung wechseln. Könnt ihr mir helfen oder eher Feedback dazu geben?
Vielen Dank
Hallo @tommyJimmy87 , TeamsActivityHandler
wird von ActivityHandler
was Unterstützung für die spezifischen Ereignisse und Interaktionen von Microsoft Teams hinzufügt.
Der virtuelle Assistent ist derjenige , der in Wechselwirkung mit dem Microsoft Team Kanal im Schema des virtuellen Assistenten Fähigkeiten verbunden, so dass die DefaultActivityHandler
des virtuellen Assistenten muss von der TeamsActivityHandler
, nicht der Fähigkeit in diesem genannten Schema, wie Sie in den Beispielen sehen können.
Das DefaultActivityHandler
des virtuellen Assistenten in den Vorlagen/Beispielen implementiert das TeamsActivityHandler
, das Teams-Szenarien out-of-the-box ermöglicht.
Wir haben die folgende Dokumentation recherchiert, die Sie auch einsehen können:
Lass uns wissen, ob dir das hilft 😊.
Dieses Problem ist veraltet, da es seit 30 Tagen ohne Aktivität geöffnet war. Entferne veraltetes Label oder Kommentar oder dies wird in 5 Tagen geschlossen
@Batta32 das ist noch nicht veröffentlicht, oder?
Hallo @tommyJimmy87 - wir sind dabei, einen Plan zur Veröffentlichung neuer Pakete abzuschließen. Sobald wir ein Update haben, melden wir uns hier .
@Batta32 irgendwelche Updates?
Hallo @cwhitten , dieses Problem wurde bereits mit der PR #3559 behoben, die mit den angeforderten Änderungen von @peterinnesmsft aktualisiert wird.
Sobald die PR zusammengeführt wird, werden die Änderungen im next
Zweig angezeigt.
Wie ist der Status von #3559? @Batta32
Das letzte Update dazu war am 11. September
Vielen Dank
Hallo @tonyanziano , die PR #3559 ist bereit zur Überprüfung und Zusammenführung mit den angeforderten Änderungen von @peterinnesmsft.
Sobald die PR zusammengeführt wird, werden die Änderungen im next
Zweig angezeigt.
Dieses Problem ist veraltet, da es seit 30 Tagen ohne Aktivität geöffnet war. Entferne veraltetes Label oder Kommentar oder dies wird in 5 Tagen geschlossen
@joshgummersall wie ist der Status von #3752? Wann werden Sie das voraussichtlich zusammenführen?
Sobald jemand anderes es überprüfen und genehmigen kann!
@joshgummersall ,
Können Sie daran arbeiten, die PR zusammenzuführen, damit dieses Ticket geschlossen werden kann?
@virtual-josh, es wartet nur auf eine weitere PR-Rezension; es wurde bereits von einem Gutachter genehmigt. Ich bin mir nicht sicher, wen Sie für eine zweite Überprüfung anpingen sollen.
Hilfreichster Kommentar
Hallo @Batta32 ,
danke für eure unterstützung, sieht so aus, als ob das problem mit der neuen bot-solutions-Bibliothek gelöst wurde, die ich aus eurem branchen integriert habe :) Habt ihr eine ungefähre Einschätzung, wann ihr sie veröffentlichen werdet?