Configure el esfuerzo de razonamiento de recuperación (versión preliminar)

Nota

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.

En la recuperación agéntica, puede especificar el nivel de procesamiento del modelo de lenguaje de gran tamaño (LLM) para la planificación de consultas y la formulación de respuestas. Utilice el esfuerzo de razonamiento de recuperación (versión preliminar) para establecer los niveles de procesamiento de LLM que afectan a los costes y la latencia. El procesamiento de LLM adicional mejora la relevancia, pero también tarda más tiempo y usa recursos LLM facturables.

Puede establecer esta propiedad en una base de conocimiento o en una solicitud de recuperación. La configuración de la base de conocimiento establece el valor predeterminado para todas las consultas, mientras que la configuración de solicitud de recuperación invalida el valor predeterminado en una consulta por consulta. Si ninguno de los valores está presente, el servicio usa low.

Soporte para el uso

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

Requisitos previos

  • Una base de conocimiento existente con al menos un origen de conocimiento y una configuración de modelo.

  • Permiso para actualizar y consultar bases de conocimiento. Configure la autenticación sin clave con los roles Colaborador del servicio de búsqueda y Lector de datos de índice de búsqueda asignados a su cuenta de usuario (recomendado) o use una clave de API de administrador.

  • El paquete de versión preliminar Azure.Search.Documents más reciente: dotnet add package Azure.Search.Documents --prerelease

  • Para la autenticación sin claves, el Azure.Identity paquete: dotnet add package Azure.Identity

  • El paquete de versión preliminar azure-search-documents más reciente: pip install --pre azure-search-documents

  • Para la autenticación sin claves, el azure-identity paquete: pip install azure-identity

Elegir un esfuerzo de razonamiento

Elija un esfuerzo de razonamiento basado en el equilibrio que desee entre la latencia, el costo y la profundidad de recuperación.

Niveles de esfuerzo de razonamiento

Nivel Descripción Recomendación Límites
minimal Deshabilita la planificación de consultas basada en LLM para ofrecer el costo y la latencia más bajos para la recuperación agéntica. Emite búsquedas directas de texto y vectores en los orígenes de conocimiento enumerados en la base de conocimiento y devuelve los pasajes que coinciden mejor. Dado que siempre se buscan todos los orígenes de conocimiento de la base de conocimiento y no se realiza ninguna expansión de consultas, el comportamiento es predecible y fácil de controlar. También significa que se omite la propiedad alwaysQueryKnowledgeSource de una solicitud de recuperación. Use minimal para migraciones desde Search API o cuando quiera administrar el planeamiento de consultas usted mismo.
low El modo predeterminado de recuperación agéntica, que ejecuta un único paso de planificación de consultas basadas en LLM y selección de fuentes de conocimiento. El motor de recuperación agencial genera subconsultas y las distribuye entre las fuentes de conocimiento seleccionadas, luego combina los resultados. Puede habilitar la síntesis de respuestas (versión preliminar) para generar una respuesta basada en lenguaje natural con citas insertadas. Use low cuando desee un equilibrio entre una latencia mínima y un procesamiento más profundo.
  • 5000 tokens de respuesta.
  • Máximo de 50 documentos para la clasificación semántica y 10 documentos si el clasificador semántico usa la clasificación L3.
medium Agrega una búsqueda más profunda y una pila de recuperación mejorada a la recuperación de agentes para maximizar la completitud. Después de la primera búsqueda, un clasificador semántico de alta precisión evalúa los documentos recuperados. Si los resultados iniciales no son lo suficientemente relevantes, el servicio realiza una iteración de seguimiento mediante un plan de consulta revisado. Utiliza medium para maximizar la utilidad de la recuperación de conocimientos asistida por LLM.
  • 10 000 tokens de respuesta.
  • Máximo de 50 documentos para la clasificación semántica y 20 documentos si el clasificador semántico usa la clasificación L3.
  • Disponible en regiones seleccionadas.
auto Comienza con un pase de recuperación ligero. Si el primer paso proporciona suficiente conexión a tierra, el servicio devuelve el resultado. De lo contrario, continúa con la planificación de consultas basada en LLM, hasta un nivel de esfuerzo medio. Use auto cuando desee que el servicio equilibre la profundidad y la latencia de recuperación para cada solicitud.

Búsqueda iterativa para la recuperación de datos de nivel medio

Un esfuerzo de razonamiento de recuperación medio proporciona una búsqueda iterativa si los resultados iniciales no son lo suficientemente relevantes. Se llama a un modelo de clasificador semántico adicional para determinar si es necesaria una segunda iteración.

Clasificador semántico:

  • Reconoce cuándo hay suficiente contexto para responder a la pregunta.

  • Vuelve a intentar en casos de resultados insuficientes, utilizando la información existente como contexto. Las nuevas consultas podrían explorar en profundidad para obtener más detalles centrados o ampliar la búsqueda. El registro de actividad de la respuesta muestra las consultas generadas que se usan para una respuesta más completa.

  • Vuelve a puntuar mediante la clasificación L3. El rango es idéntico a la clasificación L2, un intervalo absoluto de cero a 4,0.

Solo hay un reintento. Cada iteración agrega latencia y costo, por lo que el sistema restringe el reintento a un paso. Una segunda iteración añade tokens de entrada a la canalización de consulta, lo que incrementa el recuento general de tokens de entrada facturables.

La iteración puede reutilizar los orígenes de conocimiento existentes o elegir orígenes diferentes. El segundo pase selecciona el origen de conocimiento más prometedor para proporcionar la información que falta.

Compatibilidad regional para recuperación media de datos

Puede establecer un esfuerzo de razonamiento de recuperación medio si el servicio de búsqueda está en una de las siguientes regiones:

  • Este de EE. UU. 2
  • Este de EE. UU.
  • Centro-sur de EE. UU.
  • Oeste de EE. UU. 3
  • Oeste de EE. UU. 2
  • Oeste de EE. UU.
  • Centro-oeste de Alemania
  • Norte de Europa
  • Norte de Suiza
  • Centro de Suecia
  • Centro de España
  • Sur de Reino Unido
  • Centro de Corea del Sur
  • Este de Japón
  • Sudeste asiático

Establecer el esfuerzo de razonamiento en una base de conocimiento

Establezca retrievalReasoningEffort en una definición de base de conocimiento para establecer el valor predeterminado para sus consultas. El auto esfuerzo de razonamiento requiere una configuración del modelo. En el ejemplo siguiente, se conserva la configuración existente de models y knowledgeSources, se establece el esfuerzo de razonamiento en auto y se actualiza la base de conocimiento.

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 otro nivel, reemplace por KnowledgeRetrievalAutoReasoningEffortKnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEfforto 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 otro nivel, reemplace por KnowledgeRetrievalAutoReasoningEffortKnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEfforto 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"
  }
}

Reference:Knowledge Bases: Crear o actualizar

Para usar otro nivel, establezca retrievalReasoningEffort.kind en minimal, low o medium.

Configurar el esfuerzo de razonamiento en una solicitud de recuperación

Establezca retrievalReasoningEffort en una solicitud de recuperación para invalidar el valor predeterminado de la base de conocimiento para esa solicitud. En el ejemplo siguiente se envía un mensaje, se usa low para invalidar el auto valor predeterminado de la sección anterior y se habilita la síntesis de respuestas (versión preliminar).

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

Referencia:Recuperación de Conocimiento - Recuperar

La solicitud de recuperación devuelve una respuesta basada en los orígenes de conocimiento configurados en la base de conocimiento.