Menambahkan beberapa kategori ke bot FAQ Anda

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat proyek dan memberi tag pada pasangan Tanya Jawab ke dalam domain yang berbeda dengan metadata
  • Membuat proyek terpisah untuk setiap domain
  • Membuat sumber daya bahasa terpisah untuk setiap domain

Saat membuat bot FAQ, Anda mungkin mengalami kasus penggunaan yang mengharuskan Anda untuk mengatasi kueri di beberapa domain. Katakanlah tim pemasaran di Microsoft ingin membangun bot dukungan pelanggan yang menjawab pertanyaan umum pengguna pada beberapa Produk Surface. Demi kemudahan, kita akan menggunakan URL FAQ masing-masing di Surface Pen dan Surface Earbud untuk membuat proyek.

Membuat proyek dengan metadata khusus domain

Penulis konten dapat menggunakan dokumen untuk mengekstrak pasangan jawaban atas pertanyaan atau menambahkan pasangan jawaban atas pertanyaan kustom ke proyek. Untuk mengelompokkan pertanyaan dan jawaban ini ke dalam domain atau kategori tertentu, Anda dapat menambahkan metadata.

Untuk bot pada produk Surface, Anda dapat mengambil langkah-langkah berikut untuk membuat bot yang menjawab kueri untuk kedua jenis produk:

  1. Tambahkan URL FAQ berikut sebagai sumber dengan memilih Tambahkan sumber>URL>, lalu Tambahkan semua setelah Anda menambahkan tiap-tiap URL di bawah:

    Tanya Jawab Umum Surface Pen
    Tanya Jawab Umum Surface Earbuds

    Screenshot of add URL UI.

  2. Dalam proyek ini, kami memiliki pasangan jawaban atas pertanyaan pada dua produk dan kami ingin membedakannya sedemikian sehingga kami dapat mencari respons di antara pertanyaan dan jawaban untuk produk tertentu. Untuk melakukan ini, kita dapat memperbarui bidang metadata untuk pasangan Tanya Jawab.

    Seperti yang Anda lihat dalam contoh di bawah ini, kami telah menambahkan metadata dengan produk sebagai kunci dan surface_pen atau surface_earbuds sebagai nilai di mana pun berlaku. Anda dapat memperluas contoh ini untuk mengekstrak data pada beberapa produk dan menambahkan nilai yang berbeda untuk setiap produk.

    Screenshot of metadata example.

  3. Sekarang, untuk membatasi sistem untuk mencari respons di seluruh produk tertentu, Anda harus meneruskan produk tersebut sebagai filter dalam REST API jawaban atas pertanyaan kustom.

    URL prediksi REST API dapat diambil dari panel Sebarkan proyek:

    Screenshot of the Deploy project page with the prediction URL displayed.

    Dalam badan JSON untuk panggilan API, kami telah surface_pen sebagai nilai untuk produk metadata. Jadi, sistem hanya akan mencari respons di antara pasangan QnA dengan metadata yang sama.

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    Anda bisa mendapatkan nilai metadata berdasarkan input pengguna dengan cara berikut:

    • Secara eksplisit mengambil domain sebagai input dari pengguna melalui klien bot. Misalnya seperti yang ditunjukkan di bawah ini, Anda dapat mengambil kategori produk sebagai input dari pengguna ketika percakapan dimulai.

      Take metadata input

    • Secara implisit mengidentifikasi domain berdasarkan konteks bot. Misalnya, jika pertanyaan sebelumnya ada pada produk Surface tertentu, itu dapat disimpan sebagai konteks oleh klien. Jika pengguna tidak menentukan produk di kueri berikutnya, Anda dapat meneruskan konteks bot sebagai metadata ke API Hasilkan Jawaban.

      Pass context

    • Ekstrak entitas dari kueri pengguna untuk mengidentifikasi domain yang akan digunakan untuk filter metadata. Anda dapat menggunakan layanan Azure AI lainnya seperti Named Entity Recognition (NER) dan pemahaman bahasa percakapan untuk ekstraksi entitas.

      Extract metadata from query

Seberapa besar proyek dapat dibuat?

Anda dapat menambahkan hingga 50000 pasangan jawaban atas pertanyaan ke satu proyek. Jika data Anda melebihi 50.000 pasangan jawaban atas pertanyaan, Anda harus mempertimbangkan untuk memisahkan proyek.

Membuat proyek terpisah untuk setiap domain

Anda juga dapat membuat proyek terpisah untuk setiap domain dan memelihara proyek secara terpisah. Semua API mengharuskan pengguna meneruskan nama proyek untuk membuat pembaruan apa pun ke proyek atau mengambil jawaban atas pertanyaan pengguna.

Ketika pertanyaan pengguna diterima oleh layanan, Anda harus meneruskan projectName di titik akhir REST API yang ditunjukkan untuk mengambil respons dari proyek yang relevan. Anda dapat menemukan URL di halaman Sebarkan proyek di bawah Dapatkan URL prediksi:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

Membuat sumber daya bahasa terpisah untuk setiap domain

Katakanlah tim pemasaran di Microsoft ingin membangun bot dukungan pelanggan yang menjawab kueri pengguna pada Surface dan produk Xbox. Mereka berencana untuk menetapkan tim yang berbeda untuk mengakses proyek di Surface dan Xbox. Dalam hal ini, disarankan untuk membuat dua sumber daya jawaban atas pertanyaan kustom - satu untuk Surface dan satu lagi untuk Xbox. Namun, Anda dapat menentukan peran yang berbeda untuk pengguna yang mengakses sumber daya yang sama.