Mendapatkan jawaban dari basis pengetahuan QNA Maker

Catatan

Azure Open AI On Your Data menggunakan model bahasa besar (LLM) untuk menghasilkan hasil yang serupa dengan QnA Maker. Jika Anda ingin memigrasikan proyek QnA Maker Anda ke Azure Open AI On Your Data, silakan lihat panduan kami.

Catatan

Layanan QnA Maker akan dihentikan pada 31 Maret 2025. Versi kemampuan pertanyaan dan jawaban yang lebih baru 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 ke jawaban atas pertanyaan, lihat panduan migrasi.

Catatan

Dokumentasi ini tidak berlaku untuk rilis terbaru. Untuk mempelajari tentang menggunakan API penjawab pertanyaan terbaru, lihat panduan penulisan jawaban atas pertanyaan.

Mulai cepat berbasis cURL ini memandu Anda untuk mendapatkan jawaban dari basis pengetahuan Anda.

Prasyarat

  • Anda harus memiliki
    • cURL terbaru.
    • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
  • Sumber daya QnA Maker yang dibuat di portal Microsoft Azure. Ingat ID Microsoft Entra, Langganan, nama sumber daya QnA yang Anda pilih saat membuat sumber daya.
  • Pangkalan pengetahuan yang terlatih dan diterbitkan dengan pertanyaan dan jawaban, dari mulai cepat sebelumnya, yang dikonfigurasi dengan metadata dan Chit chat.

Catatan

Saat siap untuk membuat jawaban atas pertanyaan dari pangkalan pengetahuan Anda, Anda harus melatih dan menerbitkan pangkalan pengetahuan Anda. Saat pangkalan pengetahuan Anda diterbitkan, halaman Terbitkan menampilkan pengaturan permintaan HTTP untuk membuat jawaban. Tab cURL menunjukkan pengaturan yang diperlukan untuk menghasilkan jawaban dari alat baris perintah.

Menggunakan metadata untuk memfilter jawaban

Menggunakan basis pengetahuan dari kueri cepat sebelumnya untuk jawaban berdasarkan metadata.

  1. Dari halaman Pengaturan basis pengetahuan, pilih tab CURL untuk melihat contoh perintah cURL yang digunakan untuk menghasilkan jawaban dari basis pengetahuan.

  2. Salin perintah ke lingkungan yang dapat diedit (seperti file teks) sehingga Anda bisa mengedit perintah. Edit nilai pertanyaan sebagai berikut sehingga metadata service:qna_maker digunakan sebagai filter untuk pasangan QnA.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'top':30, 'question':'size','strictFilters': [{'name':'service','value':'qna_maker'}]}"
    

    Pertanyaannya hanyalah satu kata, size, yang dapat mengembalikan salah satu dari dua pasangan QnA. Array strictFilters ini memberi tahu respons untuk mengurangi hanya qna_maker jawaban.

  3. Respons hanya menyertakan jawaban yang memenuhi kriteria filter. Respons cURL berikut telah diformat untuk keterbacaan:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Jika ada pasangan tanya jawab yang tidak memenuhi istilah pencarian tetapi memenuhi filter, itu tidak akan dikembalikan. Sebaliknya, jawaban umum No good match found in KB. ditampilkan.

Menggunakan properti kueri debug

Catatan

Kami tidak menyarankan untuk menggunakan properti Debug untuk dependensi apa pun. Properti ini telah ditambahkan untuk membantu tim produk dalam memecahkan masalah.

Informasi debug membantu Anda memahami bagaimana jawaban yang ditampilkan ditentukan. Meskipun sangat membantu, ini tidak perlu. Untuk membuat jawaban dengan informasi debug, tambahkan properti debug:

Debug: {Enable:true}
  1. Edit perintah cURL untuk menyertakan properti debug untuk melihat informasi selengkapnya.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'Debug':{'Enable':true}}"
    
  2. Respons mencakup informasi yang relevan tentang jawabannya. Dalam output JSON berikut, beberapa detail debug telah diganti dengan elipsis untuk brevity.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Menggunakan pangkalan pengetahuan

Jika Anda ingin mendapatkan jawaban dari uji basis pengetahuan, gunakan properti tubuh isTest.

Properti adalah nilai boolean.

isTest:true

Perintah cURL terlihat seperti:

curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'IsTest':true}"

Respons JSON menggunakan skema yang sama dengan kueri pangkalan pengetahuan yang diterbitkan.

Catatan

Jika basis pengetahuan tes dan yang diterbitkan persis sama, mungkin masih ada sedikit variasi karena indeks pengujian dibagikan di antara semua basis pengetahuan di sumber daya.

Menggunakan cURL untuk mengajukan kueri Chit-chat

  1. Di terminal yang mendukung cURL, gunakan pernyataan akhir percakapan bot dari pengguna, misalnya Thank you sebagai pertanyaan. Tidak ada properti lain untuk diatur.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'thank you'}"
    
  2. Jalankan perintah cURL dan terima respons JSON, termasuk skor dan jawaban.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Karena pertanyaan Thank you sama persis dengan pertanyaan Chit-chat, QnA Maker benar-benar yakin dengan skor 100. QnA Maker juga menampilkan semua pertanyaan terkait, serta properti metadata yang mengandung informasi tag metadata obrolan.

Menggunakan ambang dan jawaban default

Anda dapat meminta ambang minimum untuk jawabannya. Jika ambang batas tidak terpenuhi, jawaban default akan dikembalikan.

  1. Tambahkan properti threshold untuk meminta jawaban untuk size dengan ambang batas 80% atau lebih baik. Basis pengetahuan tidak akan menemukan jawaban itu karena skor pertanyaannya adalah 71%. Hasilnya mengembalikan jawaban default yang Anda berikan saat Anda membuat basis pengetahuan.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':80.00}"
    
  2. Jalankan perintah cURL dan terima respons JSON.

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker menampilkan skor 0, yang berarti tidak yakin. Ini juga menampilkan jawaban default.

  3. Ubah nilai ambang batas menjadi 60% dan minta kueri lagi:

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':60.00}"
    

    JSON yang ditampilkan menemukan jawabannya.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Menggunakan sumber data yang tidak terstruktur

Kami sekarang mendukung kemampuan untuk menambahkan dokumen tidak terstruktur yang tidak dapat digunakan untuk mengekstrak QnA. Pengguna dapat memilih untuk menyertakan atau mengecualikan kumpulan data yang tidak terstruktur dalam API GenerateAnswer saat mengambil respons pada kueri. Kami tidak mendukung kumpulan data yang tidak terstruktur dalam layanan GA, ini hanya termasuk dalam penjawab pertanyaan khusus.

Mulai cepat berbasis Postman ini memandu Anda untuk mendapatkan jawaban dari pangkalan pengetahuan Anda.

Prasyarat

  • Anda harus memiliki
    • Postman terbaru.
    • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
  • Sumber daya QnA Maker yang dibuat di portal Microsoft Azure. Ingat ID Microsoft Entra, Langganan, nama sumber daya QnA yang Anda pilih saat membuat sumber daya.
  • Pangkalan pengetahuan yang terlatih dan diterbitkan dengan pertanyaan dan jawaban, dari mulai cepat sebelumnya, yang dikonfigurasi dengan metadata dan Chit chat.

Catatan

Saat siap untuk membuat jawaban atas pertanyaan dari pangkalan pengetahuan Anda, Anda harus melatih dan menerbitkan pangkalan pengetahuan Anda. Saat pangkalan pengetahuan Anda diterbitkan, halaman Terbitkan menampilkan pengaturan permintaan HTTP untuk membuat jawaban. Tab Postman menunjukkan pengaturan yang diperlukan untuk membuat jawaban.

Menyiapkan Postman untuk permintaan

Mulai cepat ini menggunakan pengaturan yang sama untuk permintaan POST Postman, kemudian mengonfigurasi ke POST body JSON yang dikirim ke layanan berdasarkan apa yang Anda coba kuerikan.

Gunakan prosedur ini untuk mengonfigurasi Postman, lalu baca setiap bagian berikutnya untuk mengonfigurasi POST body JSON.

  1. Dari halaman Pengaturan pangkalan pengetahuan, pilih tab Postman untuk melihat konfigurasi yang digunakan untuk membuat jawaban dari pangkalan pengetahuan. Salin informasi berikut untuk digunakan di Postman.

    Nama Pengaturan Tujuan dan nilai
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Ini adalah metode HTTP dan rute untuk URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Ini adalah host URL. Gabungkan nilai Host dan Post untuk mendapatkan URL generateAnswer lengkap.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Nilai header untuk mengotorisasi permintaan Anda pada Azure.
    Content-type application/json Nilai header untuk konten Anda.
    {"question":"<Your question>"} Isi permintaan POST sebagai objek JSON. Nilai ini akan berubah di setiap bagian berikut bergantung pada apa yang dimaksudkan untuk dilakukan kueri.

    Penting

    Jangan lupa menghapus kunci dari kode setelah Anda selesai, dan jangan pernah mempostingnya secara publik. Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Lihat artikel keamanan layanan Azure AI untuk informasi selengkapnya.

  2. Buka Postman dan buat permintaan POST dasar baru dengan pengaturan pangkalan pengetahuan Anda yang diterbitkan. Di bagian berikut, ubah POST body JSON untuk mengubah kueri ke pangkalan pengetahuan Anda.

Menggunakan metadata untuk memfilter jawaban

Dalam mulai cepat sebelumnya, metadata ditambahkan ke dua pasangan TJ untuk membedakan antara dua pertanyaan yang berbeda. Tambahkan metadata ke kueri untuk membatasi filter hanya ke pasangan TJ yang relevan.

  1. Di Postman, ubah hanya JSON kueri dengan menambahkan properti strictFilters dengan pasangan nama/nilai service:qna_maker. JSON isi harus berupa:

    {
        'question':'size',
        'strictFilters': [
            {
                'name':'service','value':'qna_maker'
            }
        ]
    }
    

    Pertanyaannya hanyalah satu kata, size, yang dapat menampilkan salah satu dari dua pasangan TJ. Array strictFilters ini memberi tahu respons untuk mengurangi hanya qna_maker jawaban.

  2. Respons hanya menyertakan jawaban yang memenuhi kriteria filter.

    Respons berikut telah diformat untuk keterbacaan:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Jika ada pasangan tanya jawab yang tidak memenuhi istilah pencarian tetapi memenuhi filter, itu tidak akan dikembalikan. Sebaliknya, jawaban umum No good match found in KB. ditampilkan.

Menggunakan properti kueri debug

Catatan

Kami tidak menyarankan untuk menggunakan properti Debug untuk dependensi apa pun. Properti ini telah ditambahkan untuk membantu tim produk dalam memecahkan masalah.

Informasi debug membantu Anda memahami bagaimana jawaban yang ditampilkan ditentukan. Meskipun sangat membantu, ini tidak perlu. Untuk membuat jawaban dengan informasi debug, tambahkan properti debug:

  1. Di Postman, ganti hanya JSON isi dengan menambahkan properti debug. JSON harus berupa:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. Respons mencakup informasi yang relevan tentang jawabannya. Dalam output JSON berikut, beberapa detail debug telah diganti dengan elipsis.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Menggunakan pangkalan pengetahuan

Jika Anda ingin mendapatkan jawaban dari uji basis pengetahuan, gunakan properti tubuh isTest.

Di Postman, ganti hanya JSON isi dengan menambahkan properti isTest. JSON harus berupa:

{
    'question':'size',
    'isTest': true
}

Respons JSON menggunakan skema yang sama dengan kueri pangkalan pengetahuan yang diterbitkan.

Catatan

Jika basis pengetahuan tes dan yang diterbitkan persis sama, mungkin masih ada sedikit variasi karena indeks pengujian dibagikan di antara semua basis pengetahuan di sumber daya.

Kueri untuk jawaban Chit-chat

  1. Di Postman, ubah hanya JSON isi menjadi pernyataan akhir percakapan dari pengguna. JSON harus berupa:

    {
        'question':'thank you'
    }
    
  2. Respon termasuk skor dan jawaban.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Karena pertanyaan Thank you sama persis dengan pertanyaan Chit-chat, QnA Maker benar-benar yakin dengan skor 100. QnA Maker juga menampilkan semua pertanyaan terkait, serta properti metadata yang mengandung informasi tag metadata obrolan.

Menggunakan ambang dan jawaban default

Anda dapat meminta ambang minimum untuk jawabannya. Jika ambang batas tidak terpenuhi, jawaban default akan dikembalikan.

  1. Di Postman, ubah hanya JSON isi menjadi pernyataan akhir percakapan dari pengguna. JSON harus berupa:

    {
        'question':'size',
        'scoreThreshold':80.00
    }
    

    Pangkalan pengetahuan tidak boleh menemukan jawaban tersebut karena skor pertanyaan adalah 71%, dan sebaliknya menampilkan jawaban default yang Anda berikan saat Anda membuat pangkalan pengetahuan.

    Respons JSON yang ditampilkan, termasuk skor dan jawabannya adalah:

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker menampilkan skor 0, yang berarti tidak yakin. Ini juga menampilkan jawaban default.

  2. Ubah nilai ambang batas menjadi 60% dan minta kueri lagi:

    {
        'question':'size',
        'scoreThreshold':60.00
    }
    

    JSON yang ditampilkan menemukan jawabannya.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Gunakan sumber data yang tidak terstruktur.

Kami sekarang mendukung kemampuan untuk menambahkan dokumen tidak terstruktur yang tidak dapat digunakan untuk mengekstrak QnA. Pengguna dapat memilih untuk menyertakan atau mengecualikan kumpulan data yang tidak terstruktur dalam API GenerateAnswer saat mengambil respons pada kueri. Kami tidak mendukung himpunan data yang tidak terstruktur di layanan GA. Hal ini hanya didukung di dalam menjawab pertanyaan kustom.

Langkah berikutnya

Pelajari selengkapnya tentang metadata: