Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
Important
Эти возможности и функции обеспечивают подключение к другим службам Microsoft и сторонним службам. Использование этих служб регулируется соответствующими условиями и может привести к обработке или хранению данных за пределами периметра соответствия требованиям Azure, а также к передаче данных в периметр соответствия требованиям Azure.
Вы несете ответственность за управление тем, будут ли данные передаваться за пределы соответствия вашей организации и географических границ и любых связанных последствий, а также предоставлять соответствующие разрешения, границы и утверждения.
Вы несете ответственность за тщательное изучение и тестирование приложений, которые вы создаете в контексте конкретных вариантов использования и принятия всех соответствующих решений и настроек. Это включает в себя реализацию собственных ответственных мер по устранению рисков искусственного интеллекта, таких как метаподсказки, фильтры содержимого или другие системы безопасности, а также обеспечение соответствия приложений соответствующим стандартам качества, надежности, безопасности и доверия. Дополнительные сведения см. в примечании о прозрачности Поиск с использованием ИИ Azure.
В этой статье вы узнаете, как создавать подписи с помощью обогащения ИИ и набора навыков. Изображения часто содержат полезные сведения, относящиеся к сценариям поиска. Вы можете векторизировать изображения для представления визуального содержимого в индексе поиска. Кроме того, можно использовать обогащение ИИ и наборы навыков для создания и извлечения текста, доступного для поиска, из изображений.
Навык создания подсказок GenAI может создать описание каждого изображения в источнике данных, а индексатор отправляет это описание в поисковый индекс. Чтобы просмотреть описания, выполните запрос, содержащий их в ответе.
Необходимые условия
Чтобы работать с изображениями в наборе навыков, вам потребуется:
- Поддерживаемый источник данных. Рекомендуется служба хранилища Azure.
- Файлы или объекты-блоб, содержащие изображения.
- Доступ на чтение к поддерживаемому источнику данных. В этой статье используется проверка подлинности на основе ключей, но индексаторы также могут подключаться с помощью удостоверения службы поиска и проверки подлинности Microsoft Entra ID. Для управления доступом на основе ролей назначьте роли в источнике данных, чтобы разрешить доступ на чтение с помощью удостоверения службы. Если вы тестируете на локальном компьютере разработки, убедитесь, что у вас также есть доступ на чтение в поддерживаемом источнике данных.
- Индексатор поиска, настроенный для действий с изображением.
- Набор навыков с GenAI Prompt.
- Индекс поиска с полями для приёма сгенерированных текстовых выходных данных, а также сопоставления выходных полей в индексаторе, устанавливающие связи.
При необходимости можно определить проекции для приема выходных данных, проанализированных с помощью изображения, в хранилище знаний для сценариев интеллектуального анализа данных.
Настройка индексаторов для обработки изображений
После настройки исходных файлов включите нормализацию образа, задав imageAction параметр в конфигурации индексатора. Нормализация изображений помогает сделать изображения более универсальными для последующей обработки. Нормализация изображений включает следующие операции:
- Большие изображения изменяются до максимальной высоты и ширины, чтобы сделать их универсальными.
- Для изображений с метаданными, указывающими ориентацию, поворот изображения настраивается для вертикальной загрузки.
Обратите внимание, что включение imageAction (если этот параметр отличается от none) приведет к дополнительной плате за извлечение изображений в соответствии с тарифами Поиск с использованием ИИ Azure.
Создайте или обновите индексатор , чтобы задать свойства конфигурации:
{ "parameters": { "configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "default", "imageAction": "generateNormalizedImages" } } }Установите
dataToExtractнаcontentAndMetadata(обязательно).Убедитесь, что
parsingModeзадано значение по умолчанию (обязательно).Этот параметр определяет степень детализации документов поиска, созданных в индексе. Режим по умолчанию настраивает однозначное соответствие, так что один blob соответствует одному документу поиска. Если документы большие или если навыки требуют меньших фрагментов текста, можно добавить навык разделения текста, который подразделяет документ на страницы для целей обработки. Но для сценариев поиска требуется один BLOB для каждого документа, если обогащение включает в себя обработку изображений.
Установите
imageAction, чтобы включить узелnormalized_imagesв дереве обогащения (требуется):generateNormalizedImagesдля создания массива нормализованных изображений в рамках взлома документов.generateNormalizedImagePerPage(применяется только к PDF-файлу) для создания массива нормализованных изображений, где каждая страница в PDF-файле отображается на одном выходном изображении. Для файлов, отличных от PDF, поведение этого параметра похоже на то, как если бы вы установилиgenerateNormalizedImages. Однако параметрgenerateNormalizedImagePerPageможет сделать операцию индексирования менее производительной путем проектирования (особенно для больших документов), так как необходимо создать несколько образов.
При необходимости настройте ширину или высоту созданных нормализованных изображений:
normalizedImageMaxWidth измеряется в пикселях. Значение по умолчанию — 2000. Максимальное значение — 10 000.
normalizedImageMaxHeight измеряется в пикселях. Значение по умолчанию — 2000. Максимальное значение — 10 000.
Сведения о нормализованных изображениях
Если imageAction задано значение, отличное от ни одного, новое normalized_images поле содержит массив изображений. Каждое изображение представляет собой сложный тип, имеющий следующие элементы:
| Элемент image | Описание |
|---|---|
| Данные | Строка нормализованного изображения в формате JPEG, закодированная в BASE64. |
| Ширина | Ширина нормализованного изображения в пикселях. |
| Высота | Высота нормализованного изображения в пикселях. |
| originalWidth | Исходная ширина изображения перед нормализацией. |
| исходнаяВысота | Исходная высота изображения перед нормализацией. |
| вращениеОтОригинала | Вращение против часовой стрелки в градусах, которое произошло для получения нормализованного изображения. Значение от 0 до 360 градусов. Этот шаг считывает метаданные из изображения, созданного камерой или сканером. Обычно это кратно 90 градусам. |
| СмещениеКонтента | Смещение символов в поле содержимого, из которого извлекается изображение. Это поле применимо только для файлов с внедренными изображениями. Для contentOffset изображений, извлеченных из PDF-документов, всегда находится в конце текста той страницы, из которой они были извлечены. Это означает, что изображения отображаются после всего текста на этой странице независимо от исходного расположения изображения на странице. |
| номер страницы | Если изображение было извлечено или отрисовано из PDF-файла, это поле содержит номер страницы в PDF, с которой оно было извлечено или отрисовано, начиная с 1. Если изображение не из PDF-файла, это поле равно 0. |
Пример значения normalized_images:
[
{
"data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
"width": 500,
"height": 300,
"originalWidth": 5000,
"originalHeight": 3000,
"rotationFromOriginal": 90,
"contentOffset": 500,
"pageNumber": 2
}
]
Определение наборов навыков для обработки изображений
Этот раздел дополняет справочные статьи о навыках , предоставляя контекст для работы с входными данными навыка, выходными данными и шаблонами, так как они относятся к обработке изображений.
- Создайте или обновите набор навыков для добавления навыков.
После создания базового набора навыков и настройки средств Foundry вы можете сосредоточиться на каждом навыке изображения, определении входных данных и контексте источника и сопоставлении выходных данных с полями в индексе или хранилище знаний.
Примечание
Пример компетенции, объединяющей обработку изображений с последующей обработкой естественного языка, можно найти в руководстве REST Tutorial: использование REST и AI для создания доступного для поиска контента из Azure blobs. В нем показано, как использовать результаты обработки навыков в распознавании сущностей и извлечении ключевых фраз.
Примеры входных данных для обработки изображений
Как отмечалось, изображения извлекаются во время взлома документов, а затем нормализуются как предварительный шаг. Нормализованные изображения являются входными данными для любого навыка обработки изображений и всегда представлены в обогащенном дереве документов одним из двух способов:
-
/document/normalized_images/*предназначен для документов, которые обрабатываются целиком.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/normalized_images/*",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*/data"
},
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='Describe what you see in this image in 20 words or less in Spanish.'"
}
],
"outputs": [
{
"name": "response",
"targetName": "captionedImage"
}
]
}
Пример использования ответов схемы JSON с текстовыми входными данными
В этом примере показано, как использовать структурированные выходные данные для языковых моделей. Эта возможность в настоящее время поддерживается в основном языковыми моделями OpenAI, хотя это может измениться в будущем.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/content",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='How many languages are there in the world and what are they?'"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "structured_output",
"strict": true,
"schema": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"total",
"languages"
],
"additionalProperties": false
}
}
},
"outputs": [
{
"name": "response",
"targetName": "responseJsonForLanguages"
}
]
}
Сопоставить выходные данные с полями поиска
Выходной текст представлен как узлы во внутреннем обогащенном дереве документов, и каждый узел должен быть сопоставлен с полями в индексе поиска или проекциями в хранилище знаний, чтобы сделать содержимое доступным в приложении.
Во-первых, используйте команду Create or Update — Index , чтобы добавить поля, чтобы принять выходные данные навыка.
В следующем примере коллекции полей:
-
content— это содержимое BLOB-объектов. -
metadata_storage_nameсодержит имя файла (установитеretrievableв true). -
metadata_storage_path— это уникальный путь BLOB и ключ документа по умолчанию. -
merged_contentвыводится из Text Merge (полезно при встроенных изображениях). -
captioned_image— это результат навыка и должен быть строковым полем для записи всех выходных данных языковой модели в индексе поиска.
"fields": [
{
"name": "content",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_name",
"type": "Edm.String",
"filterable": true,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_path",
"type": "Edm.String",
"filterable": false,
"key": true,
"retrievable": true,
"searchable": false,
"sortable": false
},
{
"name": "captioned_image",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
}
]
Затем используйте Обновление - Индексатор для сопоставления выходных данных Skillset (узлов в дереве обогащения) с полями индекса.
Документы с расширенными данными являются внутренними. Чтобы экспортировать узлы в обогащенном дереве документов, настройте сопоставление полей вывода, которое указывает, какое поле индекса получает содержимое узла. Ваше приложение получает доступ к обогащенным данным через индексное поле. В следующем примере показан текстовый узел (выходные данные OCR) в обогащенном документе, сопоставленном с текстовым полем в индексе поиска.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/captionedImage",
"targetFieldName": "captioned_image"
}
]
Запустите индексатор для вызова извлечения исходного документа, обработки изображений с помощью заголовков языковой модели и индексирования.
Проверка результатов
Выполните запрос к индексу, чтобы проверить результаты обработки изображений. Используйте обозреватель поиска в качестве клиента поиска или любого средства, отправляющего HTTP-запросы. Следующий запрос выбирает поля, содержащие выходные данные обработки изображений.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "A cat in a picture",
"select": "metadata_storage_name, captioned_image"
}