Поделиться через


Навыки многомодального внедрения в 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"
                }
            ]
        }
    ]
}

См. также