Навыки многомодального внедрения в azure AI Vision
Внимание
Этот навык находится в общедоступной предварительной версии в разделе "Дополнительные условия использования". REST API 2024-05-01-Preview поддерживает эту функцию.
Навык многомодального внедрения в azure AI Vision использует API многомодальных внедрения azure AI Vision для создания внедрения изображений или текста.
Навык поддерживается только в службах поиска, расположенных в регионе, который поддерживает API многомодальных внедрения azure AI Vision. Просмотрите доступность регионов для многомодальных внедрения. Данные обрабатываются в географическом расположении, где развернута модель.
Примечание.
Этот навык привязан к службам ИИ Azure и требует оплачиваемого ресурса для транзакций, превышающих 20 документов на индексатор в день. За выполнение встроенных навыков взимается плата за существующие службы ИИ Azure по мере использования.
Кроме того, извлечение изображений взимается с помощью службы "Поиск ИИ Azure".
@odata.type
Microsoft.Skills.Vision.VectorizeSkill
Ограничения данных
Ограничения ввода для навыка можно найти в документации по Распознаванию искусственного интеллекта Azure для изображений и текста соответственно. Рекомендуется использовать навык разделения текста, если требуется фрагментирование данных для текстовых входных данных.
Параметры навыков
Параметры зависят от регистра.
Входные данные | Description |
---|---|
modelVersion |
(обязательно) Версия модели, передаваемая в API многомодальных внедрения azure AI Vision для создания внедрения. Важно, чтобы все внедрения, хранящиеся в заданном поле индекса, создаются с помощью одного и того же modelVersion . Сведения о поддержке версий для этой модели см. в многомодальных внедрениях. |
Входные данные навыков
Входные данные | Description |
---|---|
text |
Векторизованный текст. Если вы используете блоки данных, источник может быть /document/pages/* . |
image |
Сложный тип. В настоящее время используется только поле "/document/normalized_images", созданное индексатором BLOB-объектов Azure, если imageAction задано значение, отличное от none значения. |
url |
URL-адрес для скачивания векторного изображения. |
queryString |
Строка запроса URL-адреса для скачивания векторного изображения. Полезно при хранении URL-адреса и маркера SAS в отдельных путях. |
Только один из text
них image
или url
/queryString
может быть настроен для одного экземпляра навыка. Если вы хотите векторизировать изображения и текст в одном наборе навыков, включите два экземпляра этого навыка в определение набора навыков, по одному для каждого типа ввода, который вы хотите использовать.
Выходные данные навыка
Выходные данные | Description |
---|---|
vector |
Выходной массив с плавающей запятой для входного текста или изображения. |
Пример определения
Для ввода текста рассмотрим запись со следующими полями:
{
"content": "Microsoft released Windows 10."
}
Затем определение навыка может выглядеть следующим образом:
{
"@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
"context": "/document",
"modelVersion": "2023-04-15",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "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"
}
]
}
Если вы хотите векторизировать изображения непосредственно из источника данных хранилища BLOB-объектов, определение навыка может выглядеть следующим образом:
{
"@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"
}
]
}
Пример полученных результатов
Для заданного входного текста создается векторизованный результат внедрения.
{
"vector": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
Выходные данные находятся в памяти. Чтобы отправить эти выходные данные в поле в индексе поиска, необходимо определить outputFieldMapping , который сопоставляет векторизованные выходные данные внедрения (массив) с полем вектора. Если выходные данные навыка находятся на узле вектора документа, и content_vector является полем в индексе поиска, выходные данные OutputFieldMapping в индексаторе должны выглядеть следующим образом:
"outputFieldMappings": [
{
"sourceFieldName": "/document/vector/*",
"targetFieldName": "content_vector"
}
]
Для сопоставления внедренных изображений в индекс необходимо использовать функцию проекций индекса. Полезные данные могут indexProjections
выглядеть примерно так:
"indexProjections": {
"selectors": [
{
"targetIndexName": "myTargetIndex",
"parentKeyFieldName": "ParentKey",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "content_vector",
"source": "/document/normalized_images/*/vector"
}
]
}
]
}