Använda generering av svar med källhänvisning i Azure AI-sökning (förhandsversion)

Observera

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Viktigt

Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.

Som standard utför en kunskapsbas i Azure AI-sökning dataextraktion, vilket returnerar råa underlagssegment från dina kunskapskällor. Dataextrahering är användbart för att hämta specifik information men saknar den kontext och det resonemang som krävs för komplexa frågor.

Du kan i stället aktivera svarssyntes (förhandsversion), som använder den LLM som anges i kunskapsbasen för att besvara frågor på naturligt språk. Varje svar innehåller citat till de hämtade källorna och följer alla instruktioner som du anger, till exempel att använda punktlistor.

Du kan ange den här egenskapen i en kunskapsbas eller en hämtningsbegäran. Inställningen för kunskapsbasen etablerar standardvärdet för alla frågor, medan inställningen hämta begäran åsidosätter standardinställningen från fråga till fråga.

Användningsstöd

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

Förutsättningar

  • En Azure AI-sökning-tjänst med en knowledge-bas som anger en LLM.

  • Behörighet att uppdatera kunskapsbaser. Konfigurera nyckellös autentisering med rollen Search Service-deltagare tilldelad till ditt användarkonto (rekommenderas) eller använd en administratörs-API-nyckel.

  • För utgående anrop till LLM måste söktjänsten ha en hanterad identitet med Cognitive Services-användare behörigheter på Microsoft Foundry-resursen.

  • Det senaste Azure.Search.Documents förhandsversionspaketet: dotnet add package Azure.Search.Documents --prerelease

  • För nyckellös autentisering, paketet Azure.Identity: dotnet add package Azure.Identity

  • Det senaste azure-search-documents förhandsversionspaketet: pip install --pre azure-search-documents

  • För nyckellös autentisering, paketet azure-identity: pip install azure-identity

Begränsningar och överväganden

  • minimal-resonemangsinsatsen för hämtning inaktiverar bearbetning med LLM och är därför inte kompatibel med svarssyntes i vare sig kunskapsbasdefinitioner eller hämtningsbegäranden. Mer information finns i Ange hämtningsskäl.

  • Svarssyntes medför användningsbaserade avgifter från Azure OpenAI, som baseras på antalet indata- och utdatatoken. Avgifter visas under den LLM som tilldelats kunskapsbasen. Mer information finns i Regiontillgänglighet, gränser och fakturering.

Aktivera svarssyntes i en kunskapsbas

Det här avsnittet visar hur du aktiverar svarssyntes i en befintlig kunskapsbas. Även om du kan använda den här konfigurationen för nya kunskapsbaser ligger skapandet av kunskapsbasen utanför omfånget för den här artikeln.

Ange OutputMode till "answerSynthesis" för KnowledgeBase definitionen. Du kan också ange AnswerInstructions för att anpassa svarsutdata. I följande exemplet instrueras kunskapsbasen att 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);

Referens:SearchIndexClient, KnowledgeBase

Ange output_mode till "answerSynthesis" för KnowledgeBase definitionen. Du kan också ange answer_instructions för att anpassa svarsutdata. I följande exemplet instrueras kunskapsbasen att 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)

Referens:SearchIndexClient, KnowledgeBase

Ange outputMode till "answerSynthesis" för kunskapsbasdefinitionen. Du kan också ange answerInstructions för att anpassa svarsutdata. I följande exemplet instrueras kunskapsbasen att 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"
}

Referens:Kunskapsbas – Skapa eller uppdatera

Aktivera svarssyntes i en hämtningsbegäran

För kontroll per fråga över svarsformatet kan du aktivera svarssyntes vid frågetillfället. Den här metoden åsidosätter standardutdataläget som anges i kunskapsbasen.

Ange OutputMode till "answerSynthesis" på en 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);

Referens:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Ange output_mode till "answerSynthesis" på en 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)

Referens:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Ange outputMode till "answerSynthesis" på en hämtningsbegäran.

### 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"
}

Referens:Kunskapshämtning – Hämta

Hämta ett syntetiserat svar

När svarssyntesen är aktiverad returnerar kunskapsbasen ett naturligt språksvar baserat på de instruktioner som du har angett i kunskapsbasen. Citat till dina kunskapskällor formateras som [ref_id:<number>].

Om dina instruktioner till exempel är Use concise bulleted lists och frågan är What is healthcare?bör svaret likna följande exempel.

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

De fullständiga text utdata är följande:

"- 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]."

Beroende på kunskapsbasens konfiguration kan svaret innehålla annan information, till exempel aktivitetsloggar och referensmatriser. Mer information finns i Skapa en kunskapsbas.