Asisten dan Keterampilan Virtual
Naskah Ketik
Ketika QnAMakerDialog dibuat dengan bahasa tertentu (mis. DE) akan selalu menyelesaikan bahasa itu meskipun Anda mengubah bahasa atau pengguna lain menggunakan bahasa yang berbeda (mis. EN).
Pengguna 1 : Mengirim ucapan ke bot ( DE );
Bot : Bot menyelesaikan ucapan sebagai maksud QnA, dan membuat QnADialog baru, dengan knowledgebaseId sebagai Id dari Dialog:
``
private registerQnADialog(knowledgebaseId: string, cognitiveModels: ICognitiveModelSet, locale: string): void {
const qnaEndpoint: QnAMakerEndpoint | undefined = cognitiveModels.qnaConfiguration.get(knowledgebaseId);
if (qnaEndpoint == undefined){
throw new Error(
Tidak dapat menemukan konfigurasi basis pengetahuan QnA Maker dengan id: ${ knowledgebaseId }.`);
}
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 : Mengirim QnA Answer ke User 1 di lokal User 1 ( DE )
Pengguna 2 : Mengirim ucapan ke bot ( EN );
Bot : Bot menyelesaikan ucapan sebagai maksud QnA (sama dengan pengguna 1 yang dikirim), tidak ada QnaMakerDialog baru yang dibuat karena satu Dialog dengan knowledgebaseId yang sama sudah ada.
Bot : Bot memulai kembali Dialog QnA (ditambahkan dari iterasi 1 pengguna) dan mendapatkan jawaban dari Basis Pengetahuan (DE) pengguna pertama;
Bot : Mengirim Pesan ke Pengguna 2 di lokal Pengguna 1.
QnAMakerDialog lain akan dibuat dengan bahasa yang tepat dan ID basis pengetahuan yang tepat.
Terima kasih @tommyJimmy87. Segera setelah kami memiliki pembaruan terkait implementasi Dependency Injection, kami akan menghubungi Anda kembali!
Hai @tommyJimmy87 , kami membuat PR #3559 yang memecahkan masalah ini dengan memasukkan Injeksi Ketergantungan di bot.
Jika Anda sangat baik, dapatkah Anda memvalidasi perubahan mengikuti langkah-langkah repro ini dan menggunakan cabang ini:
npm install
untuk menginstal dependensinpm run build
untuk mengkompilasi solusinpm pack
untuk membuat tgzGunakan tgz yang dibuat di Virtual Assistant package.json sebagai berikut:
"bot-solutions": "JALAN KE BOT-SOLUTIONS TGZ"
Terapkan Asisten Virtual dalam berbagai bahasa
QnAMakerDialog
Anda sebutkanLast but not least, seperti yang telah disebutkan, PR berisi perubahan berikut:
inversifyjs
) di Asisten Virtual dan Keterampilan TypeScriptKami akan memperhatikan jawaban Anda 😊.
Hai @Batta32 ,
terima kasih atas dukungan Anda, sepertinya masalah telah diselesaikan dengan pustaka solusi bot baru yang saya integrasikan dari cabang Anda :) Apakah Anda memiliki perkiraan kasar kapan Anda akan merilisnya?
HI @Batta32 , saya memperhatikan bahwa ketika saya mencoba menjalankan unit test saya mendapatkan kesalahan : TypeError: Reflect.hasOwnMetadata is not a function
.
Apakah ini karena Anda tidak memigrasikan tes untuk menggunakan inversify?
Terima kasih @tommyJimmy87! Kami akan meninjau ini dan kami akan kembali kepada Anda segera setelah kami memiliki pembaruan tentang ini 😊.
Hai @Batta32 , kami memecahkan masalah ini dengan menambahkan impor ini ke file js basis uji: require('reflect-metadata');
Hai @tommyJimmy87 - kami tidak dapat mereproduksi masalah yang Anda sebutkan terkait dengan pengujian unit.
Kami datang dengan pertanyaan :
Ini adalah lingkungan kita:
feature/southworks/dependency-injection-implementation
Kami mengambil langkah-langkah berikut untuk mereproduksi masalah untuk Asisten Virtual dan Keterampilan:
npm install
untuk menginstal dependensinpm run build
untuk mengkompilasi solusinpm pack
untuk membuat .tgz
.tgz
di Virtual Assistant package.json sebagai berikut:npm install
untuk menginstal dependensinpm run build
untuk mengkompilasi solusinpm run test
untuk mengkompilasi solusiHai @tommyJimmy87 - kami menambahkan perubahan yang disarankan di PR #3559.
Kami memperbarui bot Asisten & Keterampilan Virtual dengan menambahkan file tes impor berikut: require('reflect-metadata');
khususnya di BotTestBase dan SkillTestBase , untuk menghindari masalah yang Anda sebutkan terkait dengan pengujian unit.
Anda dapat mengikuti langkah -
Terima kasih,
Diego.
Hai @Batta32 dan @DiegoCardozo94 ,
Saya punya satu pertanyaan umum tetapi karena saya sudah menggunakan Cabang ini dalam proyek kami meskipun belum dirilis, saya akan menanyakannya di sini.
Dalam skenario kami, kami memiliki MS Teams sebagai satu-satunya saluran, saya melihat bahwa TeamsActivityHandler hanya digunakan di VA dan bukan dalam sampel keterampilan, benar? Karena mungkin salah saya juga memperluas keterampilan TeamsActivityHandler dan itu mengarahkan saya ke satu masalah khusus: pada dasarnya metode endOfConversation
tidak pernah dipanggil setelah cancel
di DefaultActivityHandler
keterampilan . Tapi mungkin saya harus beralih ke ekstensi ActivityHandler "normal" di dalam keterampilan. Bisakah Anda membantu saya atau lebih tepatnya memberi saya umpan balik tentang ini?
Terima kasih
Hai @tommyJimmy87 , TeamsActivityHandler
diturunkan dari ActivityHandler
yang menambahkan dukungan untuk peristiwa dan interaksi khusus Microsoft Teams.
Asisten Virtual adalah yang berinteraksi ke Saluran Tim Microsoft dalam skema Asisten Virtual yang terhubung ke Keterampilan, jadi DefaultActivityHandler
dari Asisten Virtual perlu diperluas dari TeamsActivityHandler
, bukan Keterampilan dalam skema yang disebutkan, seperti yang Anda lihat di sampel.
DefaultActivityHandler
dari Asisten Virtual di template/sampel mengimplementasikan TeamsActivityHandler
yang memungkinkan skenario Teams di luar kotak.
Kami meneliti dokumentasi berikut yang juga dapat Anda tinjau:
Beri tahu kami jika ini membantu Anda 😊.
Masalah ini sudah basi karena sudah buka 30 hari tanpa aktivitas. Hapus label atau komentar basi atau ini akan ditutup dalam 5 hari
@Batta32 ini belum dirilis kan?
Hai @tommyJimmy87 - kami sedang menyelesaikan rencana untuk merilis paket baru. Segera setelah kami memiliki pembaruan, kami akan kembali kepada Anda di sini 😊.
@Batta32 ada pembaruan?
Hai @cwhitten , masalah ini sudah diperbaiki dengan PR #3559 yang diperbarui dengan perubahan yang diminta dari @peterinnesmsft .
Segera setelah PR digabungkan, perubahan akan muncul di cabang next
.
Apa status #3559? @Batta32
Pembaruan terakhirnya adalah pada 11 September
Terima kasih
Hai @tonyanziano , PR #3559 siap ditinjau dan digabungkan berisi perubahan yang diminta dari @peterinnesmsft.
Segera setelah PR digabungkan, perubahan akan muncul di cabang next
.
Masalah ini sudah basi karena sudah buka 30 hari tanpa aktivitas. Hapus label atau komentar basi atau ini akan ditutup dalam 5 hari
@joshgummersall apa status #3752? Kapan Anda berharap untuk menggabungkannya?
Segera setelah orang lain dapat meninjau dan menyetujuinya!
@joshgummersall ,
Bisakah Anda bekerja untuk menggabungkan PR sehingga tiket ini dapat ditutup?
@virtual-josh, tinggal menunggu satu review PR lagi; itu sudah disetujui oleh satu pengulas. Tidak yakin siapa yang harus di-ping untuk ulasan kedua.
Komentar yang paling membantu
Hai @Batta32 ,
terima kasih atas dukungan Anda, sepertinya masalah telah diselesaikan dengan pustaka solusi bot baru yang saya integrasikan dari cabang Anda :) Apakah Anda memiliki perkiraan kasar kapan Anda akan merilisnya?