Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Этот навык находится в общедоступной предварительной версии в разделе "Дополнительные условия использования". REST API 2024-05-01-Preview и более новые api предварительной версии поддерживают эту функцию.
Навык многомодального внедрения Azure Vision использует API многомодальных внедрения из Azure Vision в средства Foundry для создания внедренных данных для ввода текста или изображения.
Для транзакций, превышающих 20 документов на индексатор в день, этот навык требует подключения оплачиваемого ресурса Microsoft Foundry к набору навыков. Выполнение встроенных навыков взимается по существующей цене средств Foundry Standard. Извлечение изображений также взимается с помощью службы "Поиск ИИ Azure".
Ресурс Microsoft Foundry используется только для выставления счетов. Обработка содержимого выполняется в отдельных ресурсах, управляемых и поддерживаемых поиском ИИ Azure. Данные обрабатываются в географическом расположении, где развернут ресурс.
Поддерживаемые регионы
Поддерживаемые регионы зависят от модальности и способа подключения навыка к API многомодального внедрения Azure Vision.
| Подход | Требование |
|---|---|
| Мастер импорта данных |
|
| Программное решение, использующее подключение, основанное на ключах, для выставления счетов |
|
| Программное использование безключевого подключения для выставления счетов | Нет требования к нахождению в одном регионе. Создайте службу поиска ИИ Azure и ресурс Microsoft Foundry в любом регионе, где доступна каждая служба. |
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Ограничения данных
Ограничения входных данных для навыка можно найти в документации по Azure Vision для изображений и текста. Рекомендуется использовать навык разделения текста, если требуется фрагментирование данных для текстовых входных данных.
Применимые входные данные:
- Размер входного файла изображения должен быть меньше 20 мегабайт (МБ). Размер изображения должен быть больше 10 x 10 пикселей и меньше 16 000 x 16 000 пикселей.
- Строка ввода текста должна находиться между одним словом (включительно) и 70 словами.
Параметры навыков
Параметры чувствительны к регистру.
| Входные данные | Описание |
|---|---|
modelVersion |
(обязательно) Версия модели (2023-04-15) передается в API многомодальных внедрения Azure Vision для создания внедрения. Векторные внедрения можно сравнить только и сопоставить, если они совпадают с тем же типом модели. Изображения, векторизированные одной моделью, нельзя будет найти, используя другую модель. Последняя версия API анализа изображений предлагает две модели:
|
Входные данные навыков
Входные данные определения навыка включают имя, источник и входные данные. В следующей таблице приведены допустимые значения для имени входных данных. Вы также можете указать рекурсивные входные данные. Дополнительные сведения см. в справочнике по REST API и создании набора навыков.
| Входные данные | Описание |
|---|---|
text |
Векторизованный текст. Если вы используете блоки данных, источник может быть /document/pages/*. |
image |
Сложный тип. В настоящее время используется только поле "/document/normalized_images", созданное индексатором BLOB-объектов Azure, если imageAction задано значение, отличное от noneзначения. |
url |
URL-адрес для скачивания векторного изображения. |
queryString |
Строка запроса URL-адреса для скачивания векторного изображения. Полезно при хранении URL-адреса и маркера SAS в отдельных путях. |
Только один из textних image или url/queryString может быть настроен для одного экземпляра навыка. Если вы хотите векторизировать изображения и текст в одном наборе навыков, включите два экземпляра этого навыка в определение набора навыков, по одному для каждого типа ввода, который вы хотите использовать.
Выходные данные навыка
| Выходные данные | Описание |
|---|---|
vector |
Выходной массив с плавающей запятой для входного текста или изображения. |
Пример определения
Для ввода текста рассмотрим большой двоичный объект, имеющий следующее содержимое:
{
"content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square kilometers of South America."
}
Для текстовых входных данных определение навыка может выглядеть следующим образом:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "vector",
"targetName": "text_vector"
}
]
}
Для ввода изображения второе определение навыка в том же наборе навыков может выглядеть следующим образом:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document/normalized_images/*",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "vector",
"targetName": "image_vector"
}
]
}
Если вы хотите векторизировать изображения непосредственно из источника данных хранилища BLOB-объектов, а не извлекать изображения во время индексирования, определение навыка должно указать URL-адрес и, возможно, маркер SAS в зависимости от безопасности хранилища. Для этого сценария определение навыка может выглядеть следующим образом:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "url",
"source": "/document/metadata_storage_path"
},
{
"name": "queryString",
"source": "/document/metadata_storage_sas_token"
}
],
"outputs": [
{
"name": "vector",
"targetName": "image_vector"
}
]
}
Пример полученных результатов
Для заданных входных данных создается векторизованный результат внедрения. Выходные данные — 1024 измерения, которые являются количеством измерений, поддерживаемых многомодальным API Azure Vision.
{
"text_vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Выходные данные находятся в памяти. Чтобы отправить эти выходные данные в поле в индексе поиска, необходимо определить outputFieldMapping , который сопоставляет векторизованные выходные данные внедрения (массив) с полем вектора. Если выходные данные навыка находятся на узле вектора документа, а content_vector — это поле в индексе поиска, выходные данныеFieldMapping в индексаторе должны выглядеть следующим образом:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Для сопоставления внедренных изображений в индекс используются проекции индекса. Полезные данные indexProjections могут выглядеть примерно так, как показано в следующем примере. image_content_vector — это поле в индексе, и оно заполняется содержимым, найденным в векторе массива normalized_images .
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "image_content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}