Настройка параметра логических выводов (предварительная версия)

Примечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Important

Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.

В агентическом извлечении можно указать уровень обработки крупной языковой модели (LLM) для планирования запросов и формулировки ответов. Используйте усилия по извлечению причин (предварительная версия) для задания уровней обработки LLM, влияющих на затраты и задержку. Дополнительная обработка LLM повышает релевантность, но также занимает больше времени и использует оплачиваемые ресурсы LLM.

Это свойство можно задать в базе знаний или запросе на получение. Настройка базы знаний задаёт значение по умолчанию для всех запросов, а настройка запроса retrieve переопределяет это значение для каждого запроса отдельно. Если параметр отсутствует, служба использует low.

Поддержка использования

Портал Azure Портал Microsoft Foundry Пакет SDK для .NET Пакет SDK для Python SDK для Java Пакет SDK для JavaScript REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Необходимые условия

  • Существующая база знаний с по крайней мере одним источником знаний и конфигурацией модели.

  • Разрешение на обновление и запрос баз знаний. Настройте проверку подлинности без ключа с помощью ролей участника службы поиска и средства чтения данных индекса поиска , назначенных учетной записи пользователя (рекомендуется) или используйте ключ API администратора.

  • Последний пакет предварительной версии Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Для аутентификации без использования ключа пакет Azure.Identity: dotnet add package Azure.Identity

  • Последний пакет предварительной версии azure-search-documents: pip install --pre azure-search-documents

  • Для аутентификации без использования ключа пакет azure-identity: pip install azure-identity

  • 2026-08-01-preview — версия REST API службы поиска.

  • Для проверки подлинности без ключа добавьте маркер Microsoft Entra ID в Authorization заголовок каждого HTTP-запроса.

Выберите усилие на рассуждение

Выберите аргументы, основанные на компромиссе между задержкой, стоимостью и глубиной извлечения.

Уровни усилий в рассуждениях

Уровень Описание Рекомендации Ограничения
minimal Отключает планирование запросов на основе моделей машинного обучения (ММО), чтобы обеспечить минимальную стоимость и задержку при выборе агентных данных. Он выдает прямой поиск текста и вектора по источникам знаний, перечисленным в базе знаний, и возвращает наиболее подходящие фрагменты. Поскольку все источники знаний в базе знаний всегда просматриваются и не выполняется никакое расширение запросов, поведение предсказуемо и легко контролируемо. Это также означает, что свойство alwaysQueryKnowledgeSource игнорируется в запросе на получение. Используйте minimal для миграции из API поиска или при необходимости самостоятельного управления планированием запросов.
low Режим извлечения по умолчанию для агентных действий, выполняющий единичный проход планирования запросов на основе больших языковых моделей (LLM) и выбора источника знаний. Агентный движок извлечения создает подзапросы и распределяет их по выбранным источникам знаний, затем объединяет результаты. Вы можете включить синтез ответов (предварительная версия) для создания заземленного ответа естественного языка с встроенными цитатами. Используйте low, если нужен баланс между минимальной задержкой и более глубокой обработкой.
  • 5 000 токенов ответа.
  • Не более 50 документов для семантического ранжирования и 10 документов, если семантика ранжатора использует классификацию L3.
medium Добавляет более глубокий поиск и расширенный стек извлечения в агентное извлечение для обеспечения максимальной полноты. После первого поиска классификатор семантики высокой точности оценивает извлеченные документы. Если первоначальные результаты недостаточно релевантны, служба выполняет одну итерацию, используя измененный план запроса. Используйте medium, чтобы максимально эффективно использовать поиск знаний с помощью LLM.
  • 10 000 токенов ответа.
  • Не более 50 документов для семантического ранжирования и 20 документов, если семантический ранджер использует классификацию L3.
  • Доступно в избранных регионах.
auto Начинается с легковесного этапа извлечения. Если первый проход обеспечивает достаточное заземление, служба возвращает результат. В противном случае процесс продолжается планированием запросов на основе LLM вплоть до среднего уровня усилий. Используйте auto, если вы хотите, чтобы служба балансировала глубину поиска и задержку для каждого запроса.

Итеративный поиск носителя извлечения

Средняя попытка получения причин обеспечивает итеративный поиск, если первоначальные результаты недостаточно релевантны. Для определения необходимости второй итерации вызывается дополнительная модель семантического классификатора .

Классификатор семантики:

  • Распознает, когда достаточно контекста для ответа на вопрос.

  • Повторные попытки при недостаточности результатов, используя имеющуюся информацию в качестве контекста. Новые запросы могут детализировать более подробные сведения или расширить поиск. В журнале действий в ответе показаны созданные запросы, используемые для более полного ответа.

  • Пересчеты с классификацией L3. Диапазон идентичен рейтингу L2, абсолютный диапазон от нуля до 4,0.

Существует только одна повторная попытка. Каждая итерация добавляет задержку и затраты, поэтому система ограничивает повторную попытку на один проход. Вторая итерация добавляет входные маркеры в поток обработки запросов, что увеличивает общее число оплачиваемых входных маркеров.

Итерация может повторно использовать существующие источники знаний или выбрать различные источники. Второй проход выбирает наиболее перспективный источник знаний, чтобы получить недостающую информацию.

Поддержка региона для получения среднего уровня

Если ваша служба поиска находится в одном из следующих регионов, можно задать средний уровень логической обработки поиска.

  • Восточная часть США 2
  • Восточная часть США
  • Южная часть США
  • Западная часть США 3
  • Западная часть США 2
  • Западная часть США
  • Центрально-западная Германия
  • Северная Европа
  • Северная Швейцария
  • Центральная Швеция
  • Центральная Испания
  • Южная Часть Великобритании
  • Центральная Корея
  • Восточная Япония
  • Юго-Восточная Азия

Настройка усилий по обоснованием в базе знаний

Задайте retrievalReasoningEffort в определении базы знаний значение по умолчанию для запросов. Параметр auto уровня рассуждений требует настройки модели. В следующем примере сохраняются существующие конфигурации knowledgeSources и models, параметр reasoning effort устанавливается в значение auto, и обновляется база знаний.

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);

Справочник:KnowledgeBase

Чтобы использовать другой уровень, замените KnowledgeRetrievalAutoReasoningEffort на KnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEffortили 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)

Справочник:KnowledgeBase

Чтобы использовать другой уровень, замените KnowledgeRetrievalAutoReasoningEffort на KnowledgeRetrievalMinimalReasoningEffort, KnowledgeRetrievalLowReasoningEffortили 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"
  }
}

Справочник:Базы знаний — создание или обновление

Чтобы использовать другой уровень, задайте retrievalReasoningEffort.kind значение minimal, low или medium.

Установите уровень усилий для обработки запроса на получение данных.

Задайте retrievalReasoningEffort в запросе на извлечение, чтобы переопределить значение базы знаний по умолчанию для этого запроса. В следующем примере отправляется сообщение, используется low, чтобы переопределить значение auto по умолчанию из предыдущего раздела, и включается синтез ответов (предварительная версия).

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

Reference:Knowledge Retrieval — восстановление

Запрос на извлечение возвращает обоснованный ответ на основе источников знаний, настроенных в базе знаний.