Отображение встроенных в документ изображений в агентном поиске (предварительная версия)

Note

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

Important

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

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

Когда вы включаете выдачу изображений, Поиск с использованием ИИ Azure:

  • Во время индексирования извлекает изображения из поддерживаемых документов и сохраняет их в предоставленном клиентом хранилище BLOB-объектов Azure.

  • Во время запроса извлекает эти изображения во время действия извлечения, base64-кодирует их и внедряет их в виде мультимодального содержимого в запрос LLM, который создает синтезированный ответ.

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

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

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

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

Ограничения и рекомендации

  • Обслуживание изображений доступно только через API retrieve при агентическом извлечении. Классические /docs/search запросы не передают изображения, встроенные в документы, для последующего синтеза ответов без специального решения или настройки.

  • Служба изображений выполняется только в режиме вывода синтеза ответа . Режим вывода extractiveData пропускает отдачу изображений.

  • Отображение изображений применяется только к индексированным источникам знаний на основе файлов, для которых настроен параметр assetStore и имеются проиндексированные фрагменты с заполненными значениями image_path.

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

  • Обслуживание изображений не поддерживается для источников знаний, использующих ingestionPermissionOptions для получения разрешений уровня документа, включая списки управления доступом (ACL), области действия RBAC или метки конфиденциальности Microsoft Purview. Хранилище ресурсов создает базовое хранилище знаний, а хранилища знаний не поддерживают наследование разрешений.

  • Схема получения ответа не определяет поля для отдельных путей образа хранилища активов или байтов изображений, отправленных в модель. Отчеты о действиях imageServing содержат сводные статистические данные об изображениях, полученных и отправленных в модель.

  • Доступ к изображениям контролируется на уровне учетной записи хранения независимо от доступа к индексированного содержимого. Любой субъект с правами на чтение учетной записи хранилища ресурсов может получить хранящиеся в ней образы.

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

  • Служба изображений может увеличить задержку синтеза ответа из-за загрузки изображений и обработки многомодальных маркеров. Запустите репрезентативные запросы с включенным и отключенным изображением и сравните задержку отклика с сообщаемой imageServing активностью.

  • Анализ содержимого может давать разные результаты обработки изображений для файлов PDF и DOCX. Если требуется стабильное извлечение встроенных изображений и их текстовое описание, преобразуйте исходные документы в PDF или протестируйте каждый исходный формат на типичном содержимом.

Как работает обслуживание изображений

Обслуживание изображений включает два этапа:

  • Индексирование: Когда вы настраиваете стандартное извлечение содержимого и хранилище ресурсов для источника знаний, созданный навык Content Understanding семантически разбивает документ на фрагменты, сохраняет таблицы в формате Markdown и использует настроенную LLM-модель для описания встроенных иллюстраций. Описания изображений становятся частью обогащенного Markdown, который векторизуется навыком внедрения. Навык также извлекает изображения в хранилище BLOB-ресурсов и добавляет ссылки image_path к перекрывающимся фрагментам.

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

  • Извлечения: Когда действие извлечения выполняется с включенным обслуживанием изображений, служба поиска извлекает соответствующие изображения из хранилища активов, base64-кодирует их и включает их в качестве мультимодального содержимого в запросе синтеза ответа.

Настройка хранилища ресурсов и доступа к приложениям

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

Доступ службы поиска к хранилищу ресурсов

  • Используйте Microsoft Entra ID и управляемое удостоверение для службы поиска. Назначьте удостоверение роли участника данных BLOB-объектов хранилища в области учетной записи хранения, так как индексатор записывает артефакты изображений, а действие извлечения считывает их. Если контейнеры исходных данных и ресурсов используют одну и ту же учетную запись, эта роль также предоставляет доступ на чтение исходного BLOB-объекта.

  • Не включите анонимный общедоступный доступ в контейнере хранилища активов.

Доступ приложения к ссылкам на изображения

Созданный индекс сохраняет image_pathссылки на изображения в хранилище активов. Схема получения ответа не определяет выделенные поля для отдельных путей образа хранилища активов или байтов изображений, отправленных в модель. sourceData — необязательные структурированные справочные данные, и image_path в них не требуется.

Чтобы отобразить индексированные изображения в приложении, выполните приведенные ниже действия.

  1. Назначьте удостоверению приложения роль Читатель данных BLOB-объектов хранилища в области действия учетной записи хранения ресурсов.

  2. Назначьте удостоверению приложения роль Search Index Data Reader, чтобы оно могло выполнять запросы к созданному индексу.

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

  4. Убедитесь, что ссылка указывает на ожидаемую учетную запись хранения и контейнер с ресурсами. Отклоняйте недоверенные пути перед поиском BLOB.

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

Это разделение позволяет контролировать, кто может просматривать исходные изображения независимо от того, кто может вызывать API извлечения.

Настройка хранилища ресурсов в источнике знаний

Настройте assetStore в ingestionParameters поддерживаемого индексированного источника знаний. Хранилище ресурсов — это контейнер BLOB-объектов, принадлежащий вам, в который служба поиска сохраняет артефакты изображений.

Инструкции для конкретного источника см. в следующей статье:

Минимальный источник знаний на основе BLOB с включённой выдачей изображений выглядит так:

PUT https://{service-name}.search.windows.net/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "my-blob-ks",
  "kind": "azureBlob",
  "azureBlobParameters": {
    "connectionString": "ResourceId=<storage-resource-id>",
    "containerName": "source-documents",
    "ingestionParameters": {
      "assetStore": {
        "connectionString": "ResourceId=<storage-resource-id>",
        "containerName": "image-assets"
      },
      "chatCompletionModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "https://{foundry-resource}.services.ai.azure.com",
          "deploymentId": "gpt-4o",
          "modelName": "gpt-4o"
        }
      },
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "https://{foundry-resource}.services.ai.azure.com",
          "deploymentId": "text-embedding-3-large",
          "modelName": "text-embedding-3-large"
        }
      },
      "contentExtractionMode": "standard",
      "aiServices": {
        "uri": "https://{foundry-resource}.services.ai.azure.com"
      }
    }
  }
}

Note

  • Замените <storage-resource-id> на идентификатор ресурса учетной записи хранения Azure. Формат подключения ResourceId=<storage-resource-id> указывает службе поиска использовать управляемое удостоверение для обоих контейнеров.

  • Учетная запись служба хранилища Azure, на котором размещено хранилище активов, должна оставаться доступной и доступной службе поиска в течение всего времени существования базы знаний. Если вы измените сетевые правила, смените ключи, замените удостоверения или переместите учетную запись хранения так, что служба поиска не сможет читать хранилище ресурсов, служба выдачи изображений не сможет передать эти изображения модели. Сравните imagesRetrieved и imagesSentToModel по операциям извлечения и тщательно планируйте и тестируйте изменения учетной записи хранения.

Результаты конфигурации

Сочетание assetStore, disableImageVerbalizationи chatCompletionModel определяет, что индексатор хранит и что модель видит во время запроса:

  • Хранилище ресурсов + вербализация (по умолчанию):assetStore задано, disableImageVerbalization оставлено как false, chatCompletionModel задано. Индексатор сохраняет изображения в хранилище активов и сохраняет текстовые описания в индексе. Операция извлечения может указывать verbalizationUsed как true.

  • Только для магазина ресурсов:assetStore задано, disableImageVerbalization задано как true, chatCompletionModel не требуется. Индексатор сохраняет изображения в хранилище активов, но не создает текстовые описания. Операция извлечения может указывать verbalizationUsed как false.

  • Хранилище активов отсутствует, набор моделей:assetStore не задано, chatCompletionModel задано. Только текстовые описания, без артефактов изображения. Доставка изображений не поддерживается.

  • Нет хранилища активов, нет модели: Нет обработки изображений.

Проверка конфигурации хранилища ресурсов

Дождитесь завершения приема, прежде чем продолжить:

  • Проверьте состояние индексатора в портале Azure или используйте Get Indexer Status (REST API).

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

  • Проверьте контейнер хранилища активов. Вы должны увидеть BLOB-объекты изображений, которые индексатор записал при загрузке.

Включить показ изображений в базе знаний

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

Определение базы знаний также указывает LLM, используемый для синтеза ответов во время запроса. Этот параметр не зависит от любых chatCompletionModel, которые вы задали в ingestionParameters источника знаний и которые управляют вербализацией изображений при индексировании.

Если ваша база знаний ссылается на несколько источников знаний, задайте enableImageServing только для поддерживаемых индексируемых типов на основе файлов, для которых настроен assetStore. Неподдерживаемые виды (например, индекс поиска, удалённые сайты SharePoint или веб-источники) по-прежнему участвуют в текстовой привязке, но не предоставляют встроенные в документы изображения для последующего синтеза ответов.

PUT https://{service-name}.search.windows.net/knowledgebases/my-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "my-kb",
  "knowledgeSources": [
    {
      "name": "my-blob-ks",
      "enableImageServing": true
    }
  ],
  "outputMode": "answerSynthesis",
  "models": [
    {
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://{foundry-resource}.services.ai.azure.com",
        "deploymentId": "gpt-4o",
        "modelName": "gpt-4o"
      }
    }
  ]
}

Проверьте, включена ли выдача изображений

Отправьте запрос GET к конечной точке базы знаний и убедитесь, что ссылка на источник знаний содержит "enableImageServing": true.

Получение с помощью службы изображений

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

POST https://{service-name}.search.windows.net/knowledgebases/my-kb/retrieve?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "retrievalReasoningEffort": { "kind": "medium" },
  "outputMode": "answerSynthesis",
  "includeActivity": true,
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "What's the wiring configuration shown in the installation guide?" }
      ]
    }
  ],
  "knowledgeSourceParams": [
    {
      "knowledgeSourceName": "my-blob-ks",
      "kind": "azureBlob",
      "enableImageServing": true
    }
  ]
}

Note

Обслуживание изображений выполняется только тогда, когда outputMode имеет значение answerSynthesis. Запросы, использующие extractiveData, пропускают отправку изображений, даже если задано значение enableImageServing.

Что происходит на этапе извлечения

Для ссылок на изображения, связанных с совпадающим содержимым, служба поиска загружает соответствующие изображения из хранилища активов, кодирует их в Base64 и передает в виде мультимодального контента в последующую модель синтеза ответов. Просмотрите сводную статистику по выдаче образов в activity.imageServing. Сведения о точной фигуре ответа см. в справочной документации по получению знаний — извлечению (REST API).

Проверьте поведение при извлечении

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

  • Когда includeActivity имеет значение true, массив activity отражает активность imageServing для источника знаний, когда служба регистрирует операции по выдаче образов.

  • Значение imagesSentToModel, большее, чем 0, означает, что служба сообщает о передаче изображений в нисходящую модель синтеза ответов.

Правила приоритета

Если определение базы знаний и запрос на получение указывают enableImageServing, значение в запросе на получение имеет приоритет. Полный приоритет:

  1. Значение в knowledgeSourceParams[].enableImageServing в запросе на извлечение (если оно задано).
  2. Значение соответствующего источника знаний в определении базы знаний (если задано).
  3. false (значение по умолчанию).

В следующей таблице перечислены девять сочетаний.

Определение базы знаний (enableImageServing) Получение запроса (enableImageServing) Включена служба изображений?
true true Да
true false Нет
true Не установлено Да
false true Да
false false Нет
false Не установлено Нет
Не установлено true Да
Не установлено false Нет
Не установлено Не установлено Нет

Проверка статистики обслуживания изображений

При выполнении выдачи изображений ответ на запрос извлечения содержит раздел imageServing для каждого источника знаний внутри массива activity. Используйте этот раздел, чтобы сравнить изображения, полученные из хранилища активов, с изображениями, отправленными в модель.

"activity": [
  {
    "type": "azureBlob",
    "knowledgeSourceName": "my-blob-ks",
    "imageServing": {
      "verbalizationUsed": true,
      "imagesRetrieved": 5,
      "imagesSentToModel": 4,
      "totalImageSizeBytes": 248361
    }
  }
]

Отчет полей:

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

  • imagesRetrieved: количество изображений, полученных из хранилища ресурсов.

  • imagesSentToModel: Количество изображений, отправляемых в нижестоящую модель.

  • totalImageSizeBytes: общий размер в байтах изображений, отправленных в модель.

Если imagesRetrieved больше imagesSentToModel, не все извлечённые изображения были отправлены в модель.

Проверяйте verbalizationUsed и imagesSentToModel по отдельности. Ответ может содержать информацию как о true в виде verbalizationUsed, так и об одном или нескольких изображениях, отправленных в модель.

Сквозная проверка доставки изображения

Чтобы проверить полную настройку, используйте один из следующих примеров:

Примеры создают источник знаний для BLOB-объектов и базу знаний, сравнивают запросы на извлечение при отключённой и включённой выдаче изображений, а также анализируют статистику выдачи изображений. Они также используют запрос к независимому индексу с подстановочными знаками, чтобы выбрать image_path и загрузить этот ресурс. В примерах выбирается одна ссылка, разделённая точкой с запятой, удаляется префикс проекции, например 11.7:, из относительного пути, либо декодируется URL абсолютного пути и удаляется его начальный сегмент контейнера ресурсов. Эти преобразования — лишь пример поведения, а не гарантии API retrieve. Выбранный ресурс не служит доказательством того, что то же изображение использовалось при формировании конкретного ответа операции retrieve.

Типичный контрольный список сравнения A/B:

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

  • Выполните запрос на извлечение с помощью enableImageServing: false и сохраните ответ.

  • Выполните тот же запрос на извлечение с enableImageServing: true и сравните ответы, задержку и отображаемую активность.

  • Рассматривайте различия ответов как наблюдения сигналов A/B, а не доказательства того, что изображения вызвали различия. Значение imagesSentToModel больше, чем 0 означает, что служба сообщает, что она предоставила изображения модели.

Очистите ресурсы

Перед удалением источника знаний удалите базу знаний. Удаление этих ресурсов Поиск с использованием ИИ Azure не приводит к удалению исходных документов или проецируемых BLOB-объектов изображений в служба хранилища Azure. Удаляйте эти BLOB-объекты отдельно только в том случае, если они больше не нужны ни одному сохраненному конвейеру приема или извлечения данных.

Troubleshooting

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

Симптом Чеки
imagesRetrieved подходит 0 для документов с большим количеством изображений Проверьте состояние индексатора и предупреждения, значения image_path, заполненные в соответствующих индексированных фрагментах, и двоичные объекты изображений в контейнере ресурсов. Убедитесь, что исходные документы содержат изображения, доступные для извлечения, и что удостоверению службы поиска назначена роль Storage Blob Data Contributor на уровне учетной записи хранения.
Ответ Retrieve не содержит блока imageServing Убедитесь, что в запросе для includeActivity задано значение true. Проверьте эффективное enableImageServing значение после применения запроса, базы знаний и приоритета по умолчанию. Убедитесь, что outputMode имеет статус answerSynthesis, и проверьте ошибки и предупреждения в исходном действии.
verbalizationUsed отличается от того, что вы ожидаете Проверьте disableImageVerbalization, chatCompletionModelи последнее состояние индексатора. Проверьте verbalizationUsed независимо от imagesSentToModel. Ответ может содержать текстовое описание и изображения, отправленные вместе.
Сбой при синтезе ответов или превышение времени ожидания после включения показа изображений Сравнивайте репрезентативные запросы с включенным и отключенным обслуживанием изображений. Проверьте ошибки и предупреждения действий, состояние развертывания модели синтеза ответов, разрешения удостоверения службы поиска для модели и учетной записи хранения, а также доступность хранилища ресурсов.
Приложение не может отрисовать image_path, запрашиваемый независимо. Убедитесь, что независимый запрос к индексу возвращает пригодный для использования image_path, что указанный BLOB-объект существует и что приложение может получить доступ к BLOB-объекту независимо от операции retrieve. Убедитесь, что удостоверению приложения назначена роль Search Index Data Reader для запросов к индексу и роль Storage Blob Data Reader в области действия учетной записи хранения ресурсов.