次の方法で共有


Custom Web API ベクターライザー

Custom Web API ベクターライザーを使用すると、Web API エンドポイントを呼び出し、クエリ時に埋め込みを生成するよう検索クエリを構成できます。 指定されたエンドポイントに実装するために必要な JSON ペイロードの構造については、このドキュメントで詳しく説明します。 データは、モデルがデプロイされている geo で処理されます。

Vectorizer はクエリ時に使用されますが、インデックス定義で指定され、ベクター プロファイルを介してベクター フィールドで参照されます。 カスタム Web API ベクタライザーは、API で WebApiVectorizer 呼び出されます。

ベクタライザー パラメーター

パラメーターの大文字と小文字は区別されます。

パラメーター名 説明
uri JSON ペイロードが送信される Web API の URI。 https URI スキームのみが許可されます。
httpMethod ペイロードの送信時に使用されるメソッドです。 許可されるメソッドは PUT または POST です
httpHeaders キーと値のペアのコレクション。ここで、キーはヘッダー名を表し、値はペイロードと共に Web API に送信されるヘッダー値を表します。 次のヘッダーは、このコレクションに含めることはできません: AcceptAccept-CharsetAccept-EncodingContent-LengthContent-TypeCookieHostTEUpgradeVia
authResourceId (省略可能) 文字列が設定されている場合は、コードがホストされている関数またはアプリへの接続で、このベクタライザーがマネージド ID を使う必要があることを示します。 このプロパティは、Microsoft Entra ID でのアプリケーション (クライアント) ID またはアプリの登録を、api://<appId><appId>/.defaultapi://<appId>/.default のいずれかの形式で受け取ります。 この値は、インデクサーによって取得される認証トークンのスコープを設定するために使用され、カスタム Web API 要求と共に関数またはアプリに送信されます。 このプロパティを設定するには、検索サービスがマネージド ID 用に構成されており、かつ Azure 関数アプリが Microsoft Entra サインイン用に構成されている必要があります。
authIdentity (省略可能) コードをホストする関数またはアプリに接続するために検索サービスによって使用されるユーザーマネージド ID。 システムまたはユーザーのマネージド ID を使用できます。 システム マネージド ID を使用するには、authIdentity を空白のままにします。
timeout (省略可能) 指定した場合は、API 呼び出しを行う http クライアントのタイムアウト値を示します。 XSD "dayTimeDuration" 値 (ISO 8601 期間値の制限されたサブセット) として書式設定する必要があります。 たとえば、60 秒の場合は PT60S とします。 設定しなかった場合は、既定値の 30 秒が選択されます。 タイムアウトは、最大で 230 秒、最小で 1 秒に設定できます。

サポートされているベクター クエリの種類

Custom Web API ベクタライザーでは、textimageUrlimageBinary ベクター クエリがサポートされます。

定義例

"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 ペイロードの構造

Custom Web API ベクターライザーでエンドポイントを使用する場合に必要な JSON ペイロード構造は、Custom Web API スキルと同じです。これについては、スキルのドキュメントで詳しく説明します。

Custom Web API ベクターライザーで使用する Web API エンドポイントを実装する場合は、他にも次の考慮事項があります。

  • ベクターライザーは、エンドポイントに要求を行う場合、values 配列に一度に 1 つのレコードのみを送信します。

  • ベクターライザーは、要求ペイロードにおける data JSON オブジェクト内の特定のキーでベクター化されるデータを渡します。 そのキーは、textimageUrl、または imageBinary で、要求されたベクター クエリの種類に依存します。

  • ベクターライザーは、結果の埋め込みを応答ペイロードにおける data JSON オブジェクト内の vector キーの下に含めることを期待します。

  • エンドポイントによって返されたエラーまたは警告は、ベクターライザーによって無視されるため、クエリ時のデバッグ目的では取得できません。

  • imageBinary ベクター クエリが要求された場合、エンドポイントに送信される要求ペイロードは次のようになります。

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

関連項目