Botframework-solutions: VA dengan Keterampilan yang terhubung tidak berfungsi dengan benar di WebChat

Dibuat pada 12 Jun 2019  ·  20Komentar  ·  Sumber: microsoft/botframework-solutions

Pengaturan saya adalah Template Asisten Virtual yang terhubung dengan Template Keterampilan. Semuanya baik-baik saja jika saya mencoba menjalankan VA saya di dalam Bot Emulator, dan berfungsi dengan benar di localhost dan dengan Azure Endpoint, tetapi ketika saya mencoba memulai dialog keterampilan di VA saya di dalam Azure WebChat, saya tidak mendapat respons apa pun, VA saya hanya berhenti untuk jawab pertanyaanku.

emulator2
emulator1

Bug

Komentar yang paling membantu

Terima kasih - Saya telah berhasil melakukan repro di webchat. Aneh - menyelidiki.

Semua 20 komentar

Saya memiliki masalah yang sama persis, saya memiliki bot utama dan keterampilan yang diterbitkan di Azure, ketika saya menguji bot di dalam emulator, itu berfungsi dengan baik, percakapan diserahkan ke bot keterampilan. Namun begitu digunakan baik di webchat atau dalam kasus saya di aplikasi Bereaksi menggunakan saluran langsung, bot berhenti merespons. Satu-satunya perbedaan bagi saya antara dua konfigurasi itu adalah bahwa kami menggunakan AppId dan AppPassword di emulator, mungkin ada masalah otentikasi yang mencegah dua bot berbicara satu sama lain saat digunakan ke Azure?

Satu-satunya informasi di appinsights adalah pengecualian: POST ke titik akhir bot gagal dengan status HTTP 500 tidak ada detail lebih dari itu.

Terima kasih untuk ini - dapatkah Anda mengonfirmasi bahwa Anda dapat menelusuri titik akhir manifes keterampilan dari keterampilan yang Anda gunakan? misalnya http://YOURSKILLNAME.azurewebsites.net/api/skill/manifest. Ini akan membuktikan bahwa keterampilan bekerja dengan benar.

Terima kasih untuk ini - dapatkah Anda mengonfirmasi bahwa Anda dapat menelusuri titik akhir manifes keterampilan dari keterampilan yang Anda gunakan? misalnya http://YOURSKILLNAME.azurewebsites.net/api/skill/manifest. Ini akan membuktikan bahwa keterampilan bekerja dengan benar.

Ya, manifes saya sedang online dan tampaknya baik-baik saja. Juga, Jika saya menggunakan obrolan web di dalam grup sumber daya keterampilan saya, itu berfungsi (hanya dengan dialog keterampilan dan tanpa VA, tentu saja). Di sini manifes saya: https://hsilva-my1stskill.azurewebsites.net/api/skill/manifest.

Semuanya berfungsi di dalam Bot Emulator, menggunakan titik akhir VA dan Skill Azure saya, masalahnya ada di dalam VA WebChat ketika mencoba mengarahkan ulang untuk keterampilan.

Hanya memeriksa dua kali layanan aplikasi untuk Keterampilan dibuat menggunakan skrip penyebaran? Apa pun caranya, bisakah Anda memeriksa Soket Web diaktifkan di Layanan Aplikasi untuk Keterampilan? Ini ditetapkan sebagai bagian dari penyebaran keterampilan.

image

Hanya memeriksa dua kali layanan aplikasi untuk Keterampilan dibuat menggunakan skrip penyebaran? Apa pun caranya, bisakah Anda memeriksa Soket Web diaktifkan di Layanan Aplikasi untuk Keterampilan? Ini ditetapkan sebagai bagian dari penyebaran keterampilan.

Ya, saya mengaktifkan soket web di kedua aplikasi, di VA saya dan di aplikasi Keterampilan saya.
Dan saya melakukan semua proses mengikuti dokumentasi, dengan skrip penyebaran.

Terima kasih - satu hal terakhir untuk membantu kami repro, dapatkah Anda membagikan kode html/js webchat yang Anda gunakan untuk "menghosting" bot VA - minus rahasia Anda tentu saja! Tolong jangan gunakan kontrol webchat di halaman Azure - alih-alih sambungkan saluran webchat dan uji melalui pendekatan itu.

Jika itu membantu Anda, dalam kasus saya, saya juga mengaktifkan soket web dan manifes dapat dijangkau, kode reaksi yang saya gunakan adalah:

import React, {Component} from 'react';
import {connect} from 'react-redux';
import { DirectLine } from 'botframework-directlinejs';
import ReactWebChat from 'botframework-webchat';


class HomePage extends Component {
  constructor(props) {
    super(props);

    this.directLine = new DirectLine({ token: '' });
  }
  render() {
    return (
      <div style={{height:'500px'}}>
        <ReactWebChat directLine={ this.directLine } 
                      styleOptions={{}} 
                      locale='fr-FR' 
                      />
      </div>
    );
  }
}

const mapStateToProps = state => ({
  userInfo: state.auth.userInfo,
});

export default connect(mapStateToProps)(HomePage);


Manifes saya: https://dave-skill-jooxter.azurewebsites.net/api/skill/manifest , saya tidak menggunakan koneksi oauth.

Terima kasih - satu hal terakhir untuk membantu kami repro, dapatkah Anda membagikan kode html/js webchat yang Anda gunakan untuk "menghosting" bot VA - minus rahasia Anda tentu saja! Tolong jangan gunakan kontrol webchat di halaman Azure - alih-alih sambungkan saluran webchat dan uji melalui pendekatan itu.

Maaf tapi saya tidak punya html/js untuk dibagikan karena saya hanya mencoba dengan Azure WebChat di dalam portal. Jadi, tidak mungkin untuk dijalankan di webchat ini? Saya hanya ingin tahu apakah saya melakukan sesuatu yang salah atau apakah itu normal.

Dari pihak saya, saya telah menguji sedikit lebih banyak bot saya, dan tampaknya pesan dari bot utama diteruskan ke bot keterampilan namun untuk beberapa alasan bot utama tidak menerima respons dari bot keterampilan dan ini tanggapan tidak dikirim ke klien obrolan.

Terima kasih - Saya telah berhasil melakukan repro di webchat. Aneh - menyelidiki.

Terima kasih semuanya, saya memeriksanya kemarin dan @lzc850612 dapat mengidentifikasi masalah yang anehnya hanya muncul di webchat di mana respons aktivitas dari keterampilan tidak "ditulis ulang" dengan benar sebelum mengirim kembali ke WebChat yang kemudian ditolak.

Saya baru saja memvalidasi bahwa #1540 memperbaiki masalah dengan Bot saya. Sementara kami menyiapkan paket .Skills nuget baru, Anda dapat melanjutkan dengan mengambil build terbaru dari myget dan pada saat yang sama mungkin bijaksana untuk mengambil Solusi dari myget juga karena mereka dibangun bersama.

Ada contoh baris perintah tentang cara menginstal tetapi Anda juga dapat menambahkan sumber paket di Visual Studio ke: https://botbuilder.myget.org/F/aitemplates/api/v3/index.json

Setelah Anda memiliki versi ini, terapkan ulang Bot Anda ke Azure dan coba lagi.

Terima kasih atas bantuan Anda mendiagnosis ini.

@darrenj Bagi saya sepertinya berfungsi sekarang, kerja bagus!

Bagus, terima kasih telah memberi tahu kami. Kami akan menerbitkan versi baru .solutions dan .skills ke nuget pada akhir minggu.

@darrenj Bagi saya ketika saya mencoba membangun proyek keterampilan saya, saya memiliki kesalahan ini.
'SkillEvents' tidak mengandung definisi untuk 'SkillBeginEventName', MainDialog.cs, baris 128.

Hapus pengendali ini - paket Keterampilan terbaru telah pindah menggunakan SemanticObject (melalui SkillMiddleware) daripada menggunakan acara terpisah sehingga Anda tidak perlu menangani ini untuk maju.

                case SkillEvents.SkillBeginEventName:
                    {
                        var state = await _stateAccessor.GetAsync(dc.Context, () => new SkillState());

                        if (dc.Context.Activity.Value is Dictionary<string, object> userData)
                        {
                            // Capture user data from event if needed
                        }

                        break;
                    }

Hapus pengendali ini - paket Keterampilan terbaru telah pindah menggunakan SemanticObject (melalui SkillMiddleware) daripada menggunakan acara terpisah sehingga Anda tidak perlu menangani ini untuk maju.

                case SkillEvents.SkillBeginEventName:
                    {
                        var state = await _stateAccessor.GetAsync(dc.Context, () => new SkillState());

                        if (dc.Context.Activity.Value is Dictionary<string, object> userData)
                        {
                            // Capture user data from event if needed
                        }

                        break;
                    }

Terima kasih, sekarang saya dikerahkan lagi dan sesuatu yang baru terjadi. Asisten tidak menunggu tanggapan saya dan mengirimi saya semua putaran dialog multiturn (juga di dalam Bot Emulator).

emulator3

Saya pikir itu mengambil perubahan/perbaikan lain sebagai bagian dari pembaruan. @lzc850612 satu untuk dilihat begitu Anda bangun ;-)

Kami baru saja menerbitkan paket nuget baru ke nuget yang dapat Anda perbarui dan hapus versi build hariannya. Kami hanya beberapa logika yang memerlukan perubahan pada MainDialog.cs Anda di asisten Anda yang menurut saya adalah akar dari masalah yang Anda lihat di atas.

Dalam RouteAsync hapus baris ini

  // Pass the activity we have
  var result = await dc.ContinueDialogAsync();

WebChat berfungsi "di luar kotak" dengan perubahan baru.

Pastikan semua paket nuget Anda diperbarui ... dan keterampilan bekerja dengan obrolan web!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat