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


Векторизатор пользовательского веб-API

Настраиваемый векторизатор веб-API позволяет настроить поисковые запросы для вызова конечной точки веб-API для создания внедрения во время запроса. Структура полезных данных JSON, необходимых для реализации в предоставленной конечной точке, описана далее в этом документе. Данные обрабатываются в географическом расположении, где развернута модель.

Векторизаторы используются во время запроса, но указываются в определениях индекса и ссылаются на поля векторов через профиль вектора. Настраиваемый векторизатор веб-API вызывается WebApiVectorizer в API.

Параметры векторизатора

Параметры зависят от регистра.

Наименование параметра Description
uri Универсальный код ресурса (URI) веб-API, в который отправляется полезные данные JSON. Допускается только схема URI HTTPS.
httpMethod Метод, используемый при отправке полезных данных. Допустимые методы: PUT или POST.
httpHeaders Коллекция пар "ключ-значение", в которых ключи представляют имена заголовков и значения, представляют значения заголовков, отправляемые веб-API вместе с полезными данными. Следующие заголовки запрещены в этой коллекции: Accept, Content-TypeHostCookieTEAccept-EncodingContent-LengthAccept-Charset, . UpgradeVia
authResourceId (Необязательно) Строка, которая если задана, указывает, что этот векторизатор должен использовать управляемое удостоверение для подключения к функции или приложению, в котором размещен код. Это свойство принимает идентификатор приложения (клиента) или регистрацию приложения в идентификаторе Microsoft Entra в любом из следующих форматов: api://<appId>, , <appId>/.defaultapi://<appId>/.default. Это значение используется для области маркера проверки подлинности, полученного индексатором, и отправляется вместе с пользовательским запросом веб-API в функцию или приложение. Установка этого свойства требует, чтобы служба поиска была настроена для управляемого удостоверения, а приложение-функция Azure настроено для входа в Microsoft Entra.
authIdentity (Необязательно) Управляемое пользователем удостоверение, используемое службой поиска для подключения к функции или приложению, в котором размещен код. Вы можете использовать системное или пользовательское управляемое удостоверение. Чтобы использовать системное удостоверение, оставьте authIdentity пустым.
timeout (Необязательно.) Если указано, означает время ожидания вызова API HTTP-клиента. Значение должно быть отформатировано как значение dayTimeDuration XSD (ограниченное подмножество значения продолжительности ISO 8601 ). Например, PT60S для 60 секунд. Если не задано, выбирается значение по умолчанию — 30 секунд. Время ожидания можно задать в диапазоне от 1 до 230 секунд.

Поддерживаемые типы векторных запросов

Векторизатор пользовательского веб-API поддерживает textи imageBinary imageUrlвекторные запросы.

Пример определения

"vectorizers": [
    {
        "name": "my-custom-web-api-vectorizer",
        "kind": "customWebApi",
        "customWebApiParameters": {
            "uri": "https://contoso.embeddings.com",
            "httpMethod": "POST",
            "httpHeaders": {
                "api-key": "0000000000000000000000000000000000000"
            },
            "timeout": "PT60S",
            "authResourceId": null,
            "authIdentity": null
        },
    }
]

Структура полезных данных JSON

Требуемая структура полезных данных JSON, которая ожидается для конечной точки при использовании с пользовательским векторизатором веб-API, аналогична структуре пользовательских навыков веб-API, которая подробно рассматривается в документации по навыку.

При реализации конечной точки веб-API, используемой с пользовательским векторизатором веб-API, следует учитывать следующие рекомендации.

  • Векторизатор отправляет только одну запись в values массиве при выполнении запроса к конечной точке.

  • Векторизатор передает векторные данные, векторизованные в определенный ключ в объекте JSON в data полезных данных запроса. Этот ключ имеет textзначение , imageUrlили imageBinaryв зависимости от типа запроса вектора.

  • Векторизатор ожидает, что результирующее внедрение будет находиться под ключом vector в data объекте JSON в полезных данных ответа.

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

  • Если запрос вектора был запрошен, полезные imageBinary данные запроса, отправленные в конечную точку, приведены ниже.

    {
        "values": [
            {
                "recordId": "0",
                "data":
                {
                    "imageBinary": {
                        "data": "<base 64 encoded image binary data>"
                    }
                }
            }
        ]
    }
    

См. также