Use a síntese de respostas para respostas baseadas em citações no Pesquisa de IA do Azure (pré-visualização)

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Importante

Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.

Por predefinição, uma base de conhecimento no Pesquisa de IA do Azure efetua extração de dados, que devolve segmentos brutos de fundamentação das suas fontes de conhecimento. A extração de dados é útil para recuperar informação específica, mas carece do contexto e raciocínio necessários para consultas complexas.

Pode, em vez disso, ativar a síntese de respostas (pré-visualização), que utiliza o LLM especificado na sua base de conhecimento para responder a consultas em linguagem natural. Cada resposta inclui citações das fontes recuperadas e segue quaisquer instruções que forneça, como o uso de listas com marcadores.

Podes definir esta propriedade numa base de conhecimento ou num pedido de recuperação. A configuração da base de conhecimento define a predefinição para todas as consultas, enquanto a configuração do pedido de recuperação substitui essa predefinição para cada consulta.

Suporte de utilização

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

Pré-requisitos

  • Um serviço Pesquisa de IA do Azure com uma base de conhecimento que especifica um LLM.

  • Permissão para atualizar bases de conhecimento. Configure a autenticação sem chave com o papel de Contribuidor do Serviço de Pesquisa atribuído à sua conta de utilizador (recomendado) ou utilize uma chave API de administrador.

  • Para chamadas de saída para o LLM, o serviço de pesquisa deve ter uma Managed Identity com permissões de Cognitive Services User no recurso Microsoft Foundry.

  • O pacote de pré-visualização mais recente Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Para autenticação sem chave, o Azure.Identity pacote: dotnet add package Azure.Identity

  • O pacote de pré-visualização mais recente azure-search-documents: pip install --pre azure-search-documents

  • Para autenticação sem chave, o azure-identity pacote: pip install azure-identity

Limitações e considerações

  • O minimal esforço de raciocínio de recuperação desativa o processamento de LLM, por isso é incompatível com a síntese de respostas tanto nas definições da base de conhecimento como nos pedidos de recuperação. Para mais informações, veja Definir o esforço de raciocínio de recuperação.

  • A síntese de respostas gera custos no Azure OpenAI, em regime de pagamento conforme a utilização, com base no número de tokens de entrada e de saída. As cobranças aparecem sob o LLM atribuído à base de conhecimento. Para mais informações, consulte Disponibilidade de Região, limites e faturação.

Permitir a síntese de respostas numa base de conhecimento

Esta secção demonstra como permitir a síntese de respostas numa base de conhecimento existente. Embora possa usar esta configuração para novas bases de conhecimento, a criação de bases de conhecimento está fora do âmbito deste artigo.

Defina OutputMode para "answerSynthesis" na KnowledgeBase definição. Opcionalmente, defina AnswerInstructions para personalizar a saída da resposta. O exemplo seguinte instrui a base de conhecimento a 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);

Referência:SearchIndexClient, KnowledgeBase

Defina output_mode para "answerSynthesis" na KnowledgeBase definição. Opcionalmente, defina answer_instructions para personalizar a saída da resposta. O exemplo seguinte instrui a base de conhecimento a 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)

Referência:SearchIndexClient, KnowledgeBase

Defina outputMode como "answerSynthesis" na definição da base de conhecimento. Opcionalmente, defina answerInstructions para personalizar a saída da resposta. O exemplo seguinte instrui a base de conhecimento a 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"
}

Referência:Base de Conhecimento - Criar ou Atualizar

Ativar a síntese de respostas num pedido de recuperação

Para controlo por consulta sobre o formato de resposta, pode ativar a síntese de respostas no momento da consulta. Esta abordagem sobrepõe-se ao modo de saída padrão especificado na base de conhecimento.

Definir OutputMode para "answerSynthesis" em um 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);

Referência:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Definir output_mode para "answerSynthesis" em um 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)

Referência:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Defina outputMode como "answerSynthesis" num pedido de obtenção.

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

Referência:Recuperação de Conhecimento - Recuperar

Obtenha uma resposta sintetizada

Quando a síntese de respostas está ativada, a base de conhecimento devolve uma resposta em linguagem natural baseada nas instruções que opcionalmente especificou na base de conhecimento. As citações das suas fontes de conhecimento estão formatadas como [ref_id:<number>].

Por exemplo, se as suas instruções forem Use concise bulleted lists e a sua consulta for What is healthcare?, a resposta deve ser semelhante ao exemplo seguinte.

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

A saída completa text é a seguinte:

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

Dependendo da configuração da sua base de conhecimento, a resposta pode incluir outras informações, como registos de atividade e arrays de referência. Para mais informações, consulte Criar uma base de conhecimento.