Botframework-solutions: QnAMakerDialog tidak dibuat untuk bahasa yang berbeda

Dibuat pada 29 Jun 2020  ·  22Komentar  ·  Sumber: microsoft/botframework-solutions

Proyek apa yang terpengaruh?

Asisten dan Keterampilan Virtual

Bahasa apa ini?

Naskah Ketik

Apa yang terjadi?

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).

Apa langkah-langkah untuk mereproduksi masalah ini?

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.

Apa yang Anda harapkan terjadi?

QnAMakerDialog lain akan dibuat dengan bahasa yang tepat dan ID basis pengetahuan yang tepat.

Bot Services Kobuk bug customer-replied-to customer-reported in-progress

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?

Semua 22 komentar

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:

  1. Buka perpustakaan solusi bot
  2. Jalankan npm install untuk menginstal dependensi
  3. Jalankan npm run build untuk mengkompilasi solusi
  4. Jalankan npm pack untuk membuat tgz
  5. Buka Contoh Asisten Virtual
  6. Gunakan tgz yang dibuat di Virtual Assistant package.json sebagai berikut:

    "bot-solutions": "JALAN KE BOT-SOLUTIONS TGZ"

  7. Terapkan Asisten Virtual dalam berbagai bahasa

  8. Ikuti langkah-langkah untuk mereproduksi skenario QnAMakerDialog Anda sebutkan

Last but not least, seperti yang telah disebutkan, PR berisi perubahan berikut:

  1. Implementasi Injeksi Ketergantungan (pustaka inversifyjs ) di Asisten Virtual dan Keterampilan TypeScript
  2. Perbarui template

Kami 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 :

  1. Apakah Anda menggunakan cabang kami untuk memvalidasi perubahan itu?
  2. Komponen mana yang Anda masalahkan?
  3. Bisakah Anda membagikan langkah-langkah repro yang Anda ikuti?

Ini adalah lingkungan kita:

  • Kami menggunakan cabang ini : feature/southworks/dependency-injection-implementation
  • Contoh Asisten Virtual TypeScript
  • Contoh Keterampilan TypeScript

Kami mengambil langkah-langkah berikut untuk mereproduksi masalah untuk Asisten Virtual dan Keterampilan:

  1. Buka perpustakaan solusi bot
  2. Jalankan npm install untuk menginstal dependensi
  3. Jalankan npm run build untuk mengkompilasi solusi
  4. Jalankan npm pack untuk membuat .tgz
  5. Buka Contoh Asisten Virtual
  6. Gunakan .tgz di Virtual Assistant package.json sebagai berikut:
  7. "bot-solusi": ""
  8. Jalankan npm install untuk menginstal dependensi
  9. Jalankan npm run build untuk mengkompilasi solusi
  10. Jalankan npm run test untuk mengkompilasi solusi
  11. Verifikasi pelaksanaan tes

image

image

Hai @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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat