Dapatkan jawaban dengan API GenerateAnswer

Untuk mendapatkan jawaban yang diprediksi untuk pertanyaan pengguna, gunakan API GenerateAnswer. Saat memublikasikan pangkalan pengetahuan, Anda dapat melihat informasi tentang cara menggunakan API ini di halaman Terbitkan. Anda juga dapat mengonfigurasi API untuk memfilter jawaban berdasarkan tag metadata, dan menguji pangkalan pengetahuan dari titik akhir dengan parameter string kueri pengujian.

Catatan

Layanan QnA Maker akan dihentikan pada 31 Maret 2025. Versi yang lebih baru dari kemampuan pertanyaan dan jawaban sekarang tersedia sebagai bagian dari Bahasa Azure AI. Untuk kemampuan menjawab pertanyaan dalam Language Service, lihat jawaban pertanyaan. Mulai 1 Oktober 2022, Anda tidak dapat membuat sumber daya QnA Maker baru. Untuk informasi tentang memigrasikan pangkalan pengetahuan QnA Maker yang ada pada jawaban atas pertanyaan, lihat panduan migrasi.

Dapatkan prediksi jawaban dengan API GenerateAnswer

Anda menggunakan GenerateAnswer API di bot atau aplikasi Anda untuk menanyakan pangkalan pengetahuan Anda dengan pertanyaan pengguna, untuk mendapatkan kecocokan terbaik dari pasangan pertanyaan dan jawaban.

Catatan

Dokumentasi ini tidak berlaku untuk rilis terbaru. Untuk mempelajari penggunaan API jawaban atas pertanyaan terbaru, lihat panduan mulai cepat jawaban atas pertanyaan.

Terbitkan untuk mendapatkan titik akhir GenerateAnswer

Setelah Anda menerbitkan pangkalan pengetahuan Anda, baik dari portal QnA Maker, atau dengan menggunakan API, Anda bisa mendapatkan detail titik akhir GenerateAnswer Anda.

Untuk mendapatkan detail titik akhir Anda:

  1. Masuk ke https://www.qnamaker.ai.

  2. Di Pangkalan pengetahuan saya, pilih Lihat Kode untuk pangkalan pengetahuan Anda. Cuplikan layar Pangkalan Pengetahuan saya

  3. Dapatkan detail titik akhir GenerateAnswer Anda.

    Cuplikan layar detail titik akhir

Anda juga bisa mendapatkan detail titik akhir dari tab Pengaturan di pangkalan pengetahuan Anda.

Konfigurasi permintaan GenerateAnswer

Anda memanggil GenerateAnswer dengan permintaan HTTP POST. Untuk sampel kode yang memperlihatkan cara memanggil GenerateAnswer, lihat mulai cepat.

Permintaan POST menggunakan:

URL GenerateAnswer memiliki format berikut:

https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer

Ingatlah untuk mengatur properti header HTTP Authorization dengan nilai string EndpointKey dengan spasi di belakang lalu tombol titik akhir ditemukan di halaman Pengaturan.

Contoh badan JSON terlihat seperti:

{
    "question": "qna maker and luis",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 30,
    "rankerType": "" // values: QuestionOnly
    "strictFilters": [
    {
        "name": "category",
        "value": "api"
    }],
    "userId": "sd53lsY="
}

Pelajari selengkapnya tentang rankerType.

JSON sebelumnya hanya meminta jawaban yang berada di angka 30% atau di atas skor ambang batas.

Properti respons GenerateAnswer

Responsnya adalah objek JSON termasuk semua informasi yang Anda butuhkan untuk menampilkan jawaban dan giliran berikutnya dalam percakapan, jika tersedia.

{
    "answers": [
        {
            "score": 38.54820341616869,
            "Id": 20,
            "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together. [View a sample bot](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMaker/QnAWithLUIS)",
            "source": "Custom Editorial",
            "questions": [
                "How can I integrate LUIS with QnA Maker?"
            ],
            "metadata": [
                {
                    "name": "category",
                    "value": "api"
                }
            ]
        }
    ]
}

JSON sebelumnya merespons dengan jawaban dengan skor 38,5%.

Mencocokkan pertanyaan saja, menurut teks

Secara default, QnA Maker menelusuri pertanyaan dan jawaban. Jika Anda ingin menelusuri hanya melalui pertanyaan, untuk menghasilkan jawaban, gunakan RankerType=QuestionOnly di badan POST permintaan GenerateAnswer.

Anda dapat mencari melalui kb yang diterbitkan, menggunakan isTest=false, atau dalam kb pengujian menggunakan isTest=true.

{
  "question": "Hi",
  "top": 30,
  "isTest": true,
  "RankerType":"QuestionOnly"
}

Gunakan QnA Maker dengan bot di C#

Kerangka kerja bot menyediakan akses ke properti QnA Maker dengan API GETAnswer:

using Microsoft.Bot.Builder.AI.QnA;
var metadata = new Microsoft.Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();

metadata.Name = Constants.MetadataName.Intent;
metadata.Value = topIntent;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.Top = Constants.DefaultTop;
qnaOptions.ScoreThreshold = 0.3F;
var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext, qnaOptions);

JSON sebelumnya hanya meminta jawaban yang berada di angka 30% atau di atas skor ambang batas.

Gunakan QnA Maker dengan bot di Node.js

Kerangka kerja bot menyediakan akses ke properti QnA Maker dengan API getAnswer:

const { QnAMaker } = require('botbuilder-ai');
this.qnaMaker = new QnAMaker(endpoint);

// Default QnAMakerOptions
var qnaMakerOptions = {
    ScoreThreshold: 0.30,
    Top: 3
};
var qnaResults = await this.qnaMaker.getAnswers(stepContext.context, qnaMakerOptions);

JSON sebelumnya hanya meminta jawaban yang berada di angka 30% atau di atas skor ambang batas.

Dapatkan jawaban yang tepat dengan API GenerateAnswer

Kami menawarkan fitur jawaban yang tepat hanya dengan versi terkelola QnA Maker.

Kesalahan HTTP umum

Kode Penjelasan
2xx Berhasil
400 Parameter permintaan salah berarti parameter yang diperlukan hilang, cacat, atau terlalu besar
400 Badan permintaan salah berarti JSON hilang, cacat, atau terlalu besar
401 Kunci tidak valid
403 Terlarang - Anda tidak memiliki izin yang benar
404 KB Tidak ada
410 API ini tidak digunakan lagi dan tidak lagi tersedia

Langkah berikutnya

Halaman Terbitkan juga menyediakan informasi untuk menghasilkan jawaban dengan Postman atau cURL.