Definir o esforço de raciocínio para recuperação (versão prévia)

Nota

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Importante

Recursos, funcionalidades ou propriedades marcados como (versão prévia) não são cobertos por um contrato de nível de serviço (SLA), não são recomendados para cargas de trabalho de produção e podem mudar ou ser restringidos antes da disponibilidade geral. Os termos de visualização do Pesquisa de IA do Azure  se aplicam a toda funcionalidade em visualização, seja autônoma ou parte de um recurso de disponibilidade geral.

Na recuperação por meio de agentes, você pode especificar o nível de processamento de grandes modelos de linguagem (LLM) para planejamento de consultas e formulação de respostas. Use o nível de esforço do raciocínio de recuperação (versão prévia) para definir níveis de processamento do LLM que afetam custos e latência. O processamento adicional do LLM melhora a relevância, mas também demora mais e usa recursos faturáveis do LLM.

Você pode definir essa propriedade em uma base de dados de conhecimento ou em uma solicitação de recuperação. A configuração da base de conhecimento define o padrão para todas as consultas, enquanto a configuração da solicitação de recuperação substitui esse padrão consulta por consulta. Se nenhuma das configurações estiver presente, o serviço usará low.

Suporte de uso

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

Pré-requisitos

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

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

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

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

Escolher um esforço de raciocínio

Escolha um esforço de raciocínio com base na compensação desejada entre latência, custo e profundidade de recuperação.

Níveis de esforço de raciocínio

Nível Descrição Recomendação Limites
minimal Desabilita o planejamento de consultas baseado em LLM para oferecer o menor custo e latência para recuperação por meio de agentes. Ele emite pesquisas diretas de texto e de vetores entre as fontes de conhecimento listadas na base de conhecimento e retorna as passagens de melhor correspondência. Como todas as fontes de conhecimento na base de dados de conhecimento são sempre pesquisadas e nenhuma expansão de consulta é executada, o comportamento é previsível e fácil de controlar. Isso também significa que a alwaysQueryKnowledgeSource propriedade em uma solicitação de recuperação é ignorada. Use minimal para migrações da API de Pesquisa ou quando quiser gerenciar o planejamento de consultas por conta própria.
low O modo padrão de recuperação por meio de agentes, executando uma única passagem de planejamento de consulta baseado em LLM e seleção de fonte de conhecimento. O mecanismo de recuperação baseado em agentes gera subconsultas e as direciona para as fontes de conhecimento selecionadas e, em seguida, mescla os resultados. Você pode habilitar a síntese de respostas (versão prévia) para produzir uma resposta em linguagem natural fundamentada com citações embutidas. Use low quando quiser um equilíbrio entre latência mínima e processamento mais profundo.
  • 5.000 tokens de resposta.
  • Máximo de 50 documentos para classificação semântica e 10 documentos se o classificador semântico usar a classificação L3.
medium Adiciona pesquisa mais profunda e uma pilha de recuperação avançada à recuperação por meio de agentes para maximizar a integridade. Após a primeira pesquisa, um classificador semântico de alta precisão avalia os documentos recuperados. Se os resultados iniciais não forem suficientemente relevantes, o serviço executará uma iteração de acompanhamento usando um plano de consulta revisado. Use medium para maximizar a utilidade da recuperação de conhecimento assistida por LLM.
  • 10.000 tokens de resposta.
  • Máximo de 50 documentos para classificação semântica e 20 documentos se o classificador semântico usar a classificação L3.
  • Disponível em regiões selecionadas.
auto Começa com um passe de recuperação leve. Se a primeira passagem fornecer aterramento suficiente, o serviço retornará o resultado. Caso contrário, continuará com o planejamento de consultas com base em LLM, com esforço de até nível médio. Use auto quando quiser que o serviço balancee a profundidade e a latência de recuperação para cada solicitação.

Pesquisa iterativa para recuperação de meio

Um esforço de raciocínio médio de recuperação permitirá uma busca iterativa se os resultados iniciais não forem suficientemente relevantes. Um modelo de classificador semântico extra é chamado para determinar se uma segunda iteração é necessária.

O classificador semântico:

  • Reconhece quando há contexto suficiente para responder à pergunta.

  • É feita uma nova tentativa devido a resultados insuficientes, usando informações existentes como contexto. Novas consultas podem aprofundar para obter detalhes mais precisos ou ampliar o escopo da pesquisa. O log de atividades na resposta mostra as consultas geradas usadas para uma resposta mais abrangente.

  • Recalcula usando a classificação L3. O intervalo é idêntico à classificação L2, um intervalo absoluto de zero a 4,0.

Só há uma repetição. Cada iteração adiciona latência e custo, de modo que o sistema restringe a repetição a uma passagem. Uma segunda iteração adiciona tokens de entrada ao pipeline de consulta, o que aumenta a contagem total de tokens de entrada faturáveis.

A iteração pode reutilizar fontes de conhecimento existentes ou escolher fontes diferentes. A segunda passagem seleciona a fonte de conhecimento mais promissora para fornecer as informações ausentes.

Suporte de região para recuperação de mídia

Você pode definir um esforço médio de raciocínio de recuperação se o serviço de pesquisa estiver em uma das seguintes regiões:

  • Leste dos EUA 2
  • Leste dos EUA
  • Centro-Sul dos EUA
  • Oeste dos EUA 3
  • Oeste dos EUA 2
  • Oeste dos EUA
  • Centro-oeste da Alemanha
  • Europa Setentrional
  • Norte da Suíça
  • Suécia Central
  • Espanha Central
  • Sul do Reino Unido
  • Coreia Central
  • Leste do Japão
  • Sudeste Asiático

Definir o esforço de raciocínio em uma base de dados de conhecimento

Defina retrievalReasoningEffort em uma definição de base de dados de conhecimento para estabelecer o padrão para suas consultas. O auto esforço de raciocínio requer uma configuração do modelo. O exemplo a seguir preserva a configuração existente de knowledgeSources e models, define o esforço de raciocínio como auto e atualiza a base de conhecimento.

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;

var endpoint = new Uri("<search-endpoint>");
var credential = new DefaultAzureCredential();
var knowledgeBaseName = "<knowledge-base-name>";

var indexClient = new SearchIndexClient(endpoint, credential);
var knowledgeBase = (
    await indexClient.GetKnowledgeBaseAsync(knowledgeBaseName)).Value;
knowledgeBase.RetrievalReasoningEffort =
    new KnowledgeRetrievalAutoReasoningEffort();
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Reference:KnowledgeBase

Para usar outro nível, substitua KnowledgeRetrievalAutoReasoningEffort por KnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEffortou KnowledgeRetrievalMediumReasoningEffort.

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.knowledgebases.models import (
    KnowledgeRetrievalAutoReasoningEffort,
)

endpoint = "<search-endpoint>"
credential = DefaultAzureCredential()
knowledge_base_name = "<knowledge-base-name>"

index_client = SearchIndexClient(endpoint, credential)
knowledge_base = index_client.get_knowledge_base(knowledge_base_name)
knowledge_base.retrieval_reasoning_effort = (
    KnowledgeRetrievalAutoReasoningEffort()
)
index_client.create_or_update_knowledge_base(knowledge_base)

Reference:KnowledgeBase

Para usar outro nível, substitua KnowledgeRetrievalAutoReasoningEffort por KnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEffortou KnowledgeRetrievalMediumReasoningEffort.

@api-version = 2026-08-01-preview
@knowledge-base-url = {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}

PUT {{knowledge-base-url}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "{{knowledge-base-name}}",
  "knowledgeSources": [
    {
      "name": "{{knowledge-source-name}}"
    }
  ],
  "models": [
    {
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "{{aoai-endpoint}}",
        "authIdentity": null,
        "deploymentId": "{{model-deployment-name}}",
        "modelName": "{{model-name}}"
      }
    }
  ],
  "retrievalReasoningEffort": {
    "kind": "auto"
  }
}

Referência:Bases de Dados de Conhecimento – Criar ou Atualizar

Para usar outro nível, defina retrievalReasoningEffort.kind como minimal, lowou medium.

Definir o esforço de raciocínio numa requisição de recuperação

Defina retrievalReasoningEffort em uma solicitação de recuperação para substituir o valor padrão da base de conhecimento nessa solicitação. O exemplo a seguir envia uma mensagem, usa low para substituir o auto padrão da seção anterior e habilita a síntese de resposta (versão prévia).

using Azure.Identity;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;

var endpoint = new Uri("<search-endpoint>");
var credential = new DefaultAzureCredential();
var knowledgeBaseName = "<knowledge-base-name>";

var kbClient = new KnowledgeBaseRetrievalClient(
    endpoint, knowledgeBaseName, credential);
var request = new KnowledgeBaseRetrievalRequest
{
    RetrievalReasoningEffort =
        new KnowledgeRetrievalLowReasoningEffort(),
    OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis
};

request.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[] {
            new KnowledgeBaseMessageTextContent("What is the return policy?")
        }
    ) { Role = "user" }
);

var result = await kbClient.RetrieveAsync(request);

Reference:KnowledgeBaseRetrievalRequest

from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import KnowledgeBaseRetrievalClient
from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
    KnowledgeRetrievalOutputMode,
    KnowledgeRetrievalLowReasoningEffort,
)

endpoint = "<search-endpoint>"
credential = DefaultAzureCredential()
knowledge_base_name = "<knowledge-base-name>"

kb_client = KnowledgeBaseRetrievalClient(
    endpoint,
    credential,
    knowledge_base_name=knowledge_base_name,
)
request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="What is the return policy?"
                )
            ],
        )
    ],
    retrieval_reasoning_effort=KnowledgeRetrievalLowReasoningEffort(),
    output_mode=KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
)

result = kb_client.retrieve(request)

Reference:KnowledgeBaseRetrievalRequest

@api-version = 2026-08-01-preview
@retrieve-url = {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve

POST {{retrieve-url}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What is the return policy?"
        }
      ]
    }
  ],
  "retrievalReasoningEffort": {
    "kind": "low"
  },
  "outputMode": "answerSynthesis"
}

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

A solicitação de recuperação retorna uma resposta fundamentada com base nas fontes de conhecimento configuradas na base de conhecimento.