Gunakan sintesis jawaban untuk respons yang didukung kutipan di Pencarian Azure AI (pratinjau)

Catatan

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Penting

Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.

Secara default, pangkalan pengetahuan di Pencarian Azure AI melakukan ekstraksi data, yang mengembalikan potongan grounding mentah dari sumber pengetahuan Anda. Ekstraksi data berguna untuk mengambil informasi tertentu tetapi tidak memiliki konteks dan penalaran yang diperlukan untuk kueri yang kompleks.

Anda dapat mengaktifkan sintesis jawaban (pratinjau), yang menggunakan LLM yang ditentukan dalam pangkalan pengetahuan Anda untuk menjawab kueri dalam bahasa alami. Setiap jawaban mencakup kutipan ke sumber yang diambil dan mengikuti instruksi apa pun yang Anda berikan, seperti menggunakan daftar berpoin.

Anda dapat mengatur properti ini dalam pangkalan pengetahuan atau permintaan pengambilan. Setelan basis pengetahuan menetapkan setelan bawaan untuk semua kueri, sedangkan setelan permintaan pengambilan mengesampingkan setelan bawaan untuk setiap kueri.

Dukungan penggunaan

Portal Azure Microsoft Foundry portal .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Prasyarat

  • Layanan Pencarian Azure AI dengan basis pengetahuan yang menentukan LLM.

  • Izin untuk memperbarui pangkalan pengetahuan. Konfigurasikan autentikasi tanpa kunci dengan peran Kontributor Layanan Pencarian yang ditetapkan ke akun pengguna Anda (disarankan) atau gunakan kunci API admin.

  • Untuk panggilan keluar ke LLM, layanan pencarian harus memiliki identitas terkelola dengan izin Pengguna Layanan Kognitif pada sumber daya Microsoft Foundry.

  • Paket pratinjau terbaru Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Untuk autentikasi tanpa kunci, Azure.Identity paket: dotnet add package Azure.Identity

Batasan dan pertimbangan

  • Upaya penalaran pengambilan minimal menonaktifkan pemrosesan LLM, sehingga tidak kompatibel dengan sintesis jawaban baik dalam definisi basis pengetahuan maupun permintaan pengambilan. Untuk informasi selengkapnya, lihat Mengatur upaya penalaran pengambilan.

  • Sintesis jawaban dikenakan biaya sesuai pemakaian dari Azure OpenAI, yang didasarkan pada jumlah token input dan output. Biaya muncul di bawah LLM yang ditetapkan ke basis pengetahuan. Untuk informasi selengkapnya, lihat Ketersediaan, batas, dan penagihan wilayah.

Mengaktifkan sintesis jawaban dalam pangkalan pengetahuan

Bagian ini menunjukkan cara mengaktifkan sintesis jawaban di pangkalan pengetahuan yang ada. Meskipun Anda dapat menggunakan konfigurasi ini untuk pangkalan pengetahuan baru, pembuatan pangkalan pengetahuan berada di luar cakupan artikel ini.

Atur OutputMode ke "answerSynthesis" pada KnowledgeBase definisi. Secara opsional, atur AnswerInstructions untuk menyesuaikan output jawaban. Contoh berikut memberi instruksi kepada basis pengetahuan untuk Use concise bulleted lists.

var aoaiParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri("<aoai-endpoint>"),
    DeploymentName = "<aoai-gpt-deployment>",
    ModelName = "<aoai-gpt-model>",
};

var knowledgeBase = new KnowledgeBase(
    name: "<knowledge-base-name>",
    knowledgeSources: new[] { new KnowledgeSourceReference("<knowledge-source-name>") })
{
    Models = { new KnowledgeBaseAzureOpenAIModel(aoaiParams) },
    OutputMode = "answerSynthesis",
    AnswerInstructions = "Use concise bulleted lists",
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Referensi:SearchIndexClient, KnowledgeBase

Atur output_mode ke "answerSynthesis" pada KnowledgeBase definisi. Secara opsional, atur answer_instructions untuk menyesuaikan output jawaban. Contoh berikut memberi instruksi kepada basis pengetahuan untuk Use concise bulleted lists.

from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    KnowledgeBase,
    KnowledgeBaseAzureOpenAIModel,
    KnowledgeSourceReference,
)

aoai_params = AzureOpenAIVectorizerParameters(
    resource_url="<aoai-endpoint>",
    deployment_name="<aoai-gpt-deployment>",
    model_name="<aoai-gpt-model>",
)

knowledge_base = KnowledgeBase(
    name="<knowledge-base-name>",
    models=[KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters=aoai_params)],
    knowledge_sources=[KnowledgeSourceReference(name="<knowledge-source-name>")],
    output_mode="answerSynthesis",
    answer_instructions="Use concise bulleted lists",
)

index_client = SearchIndexClient(endpoint=search_endpoint, credential=credential)
index_client.create_or_update_knowledge_base(knowledge_base)

Referensi:SearchIndexClient, KnowledgeBase

Atur outputMode ke "answerSynthesis" pada definisi pangkalan pengetahuan. Secara opsional, atur answerInstructions untuk menyesuaikan output jawaban. Contoh berikut memberi instruksi kepada basis pengetahuan untuk Use concise bulleted lists.

### Enable answer synthesis in a knowledge base
PUT {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
    "name": "{{knowledge-base-name}}",
    "knowledgeSources": [ ... // OMITTED FOR BREVITY ],
    "models": [ ... // OMITTED FOR BREVITY ],
    "outputMode": "answerSynthesis",
    "answerInstructions": "Use concise bulleted lists"
}

Referensi:Pangkalan Pengetahuan - Buat atau Perbarui

Mengaktifkan sintesis jawaban dalam permintaan pengambilan

Untuk kontrol per kueri atas format respons, Anda dapat mengaktifkan sintesis jawaban pada waktu kueri. Pendekatan ini mengambil alih mode output default yang ditentukan dalam pangkalan pengetahuan.

Atur OutputMode ke "answerSynthesis" pada KnowledgeBaseRetrievalRequest.

var client = new KnowledgeBaseRetrievalClient(
    endpoint: new Uri(searchEndpoint),
    knowledgeBaseName: knowledgeBaseName,
    credential: credential);

var request = new KnowledgeBaseRetrievalRequest();
request.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[]
        {
            new KnowledgeBaseMessageTextContent("What is healthcare?")
        }) { Role = "user" });
request.OutputMode = "answerSynthesis";

var result = await client.RetrieveAsync(request);

Referensi:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Atur output_mode ke "answerSynthesis" pada KnowledgeBaseRetrievalRequest.

from azure.search.documents.knowledgebases import KnowledgeBaseRetrievalClient
from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
)

agent_client = KnowledgeBaseRetrievalClient(
    endpoint=search_endpoint,
    credential=credential,
    knowledge_base_name=knowledge_base_name,
)

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[KnowledgeBaseMessageTextContent(text="What is healthcare?")],
        )
    ],
    output_mode="answerSynthesis",
)

result = agent_client.retrieve(retrieval_request=request)

Referensi:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Atur outputMode ke "answerSynthesis" pada permintaan pengambilan.

### Enable answer synthesis in a retrieve request
POST {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What is healthcare?"
                }
            ]
        }
    ],
    "outputMode": "answerSynthesis"
}

Referensi:Pengambilan Pengetahuan - Pencarian

Dapatkan jawaban yang disintesis

Ketika sintesis jawaban diaktifkan, pangkalan pengetahuan mengembalikan jawaban bahasa alami berdasarkan instruksi yang Anda tentukan secara opsional di pangkalan pengetahuan. Kutipan untuk sumber pengetahuan Anda diformat sebagai [ref_id:<number>].

Misalnya, jika instruksi Anda adalah Use concise bulleted lists dan kueri Anda adalah What is healthcare?, responsnya harus mirip dengan contoh berikut.

{
  "response": [
    {
      "content": [
        {
          "type": "text",
          "text": "- Healthcare encompasses various services provided to patients and the general population ..."
        }
      ]
    }
  ]
}

Output lengkapnya text adalah sebagai berikut:

"- Healthcare encompasses various services provided to patients and the general population, including primary health services, hospital care, dental care, mental health services, and alternative health services [ref_id:1].\n- It involves the delivery of safe, effective, patient-centered care through different modalities, such as in-person encounters, shared medical appointments, and group education sessions [ref_id:0].\n- Behavioral health is a significant aspect of healthcare, focusing on the connection between behavior and overall health, including mental health and substance use [ref_id:2].\n- The healthcare system aims to ensure quality of care, access to providers, and accountability for positive outcomes while managing costs effectively [ref_id:2].\n- The global health system is evolving to address complex health needs, emphasizing the importance of cross-sectoral collaboration and addressing social determinants of health [ref_id:4]."

Bergantung pada konfigurasi pangkalan pengetahuan Anda, respons mungkin menyertakan informasi lain, seperti log aktivitas dan array referensi. Untuk informasi selengkapnya, lihat Membuat pangkalan pengetahuan.