すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:カスタムモデル

最終更新日:Apr 02, 2026

カスタムモデルを使用すると、外部 HTTP 埋め込みサービスを OpenSearch Vector Search Edition に接続できます。これにより、プラットフォームはインデックス作成時にデータを自動的にベクトル化し、検索時にクエリを変換します。登録されると、カスタムモデルは組み込みモデルと同じように機能します。テーブルフィールドに割り当てると、OpenSearch がユーザーに代わってそれを呼び出します。

次の4つのモデルタイプがサポートされています。

モデルタイプの値説明
text_embedding高密度テキスト埋め込みモデル。 dimension が必要です。
text_sparse_embeddingスパーステキスト埋め込みモデル。
image_embeddingイメージベクターモデル。 dimension が必要です。
image_analyzeイメージコンテンツ解析モデル。

前提条件

開始する前に、以下を準備してください。

  • OpenSearch Vector Search Edition インスタンス

  • HTTP または HTTPS (PUT または POST) 経由でアクセス可能な外部埋め込みサービス

  • サービスのエンドポイント URL、HTTP メソッド、および認証情報

カスタムモデルの作成

  1. OpenSearch インスタンスの詳細ページの左側のナビゲーションウィンドウで、[モデル管理] > [モデル] を選択します。

  2. [カスタムモデル] タブで、[モデルの作成] をクリックします。

  3. [カスタムモデルの作成]」パネルで、モデル構成を JSON オブジェクトとして入力します。

モデル構成の形式

次の例は、密テキスト埋め込みモデルの完全な構成を示しています。各フィールドについては、以下の「パラメーター」セクションで説明しています。

{
  "modelName": "custom_model",
  "modelType": "text_embedding",
  "dimension": 1536,
  "url": "http://xxx/api/v2/services/embeddings",
  "method": "POST",
  "request": {
    "header": {
      "Authorization": "fj42091fjlgnlsvu023nva",
      "Content-Type": "application/json"
    },
    "urlParams": {
      "build": {},
      "search": {}
    },
    "requestBody": "{\"input\": [\"%{input}\"],\"input_type\": \"${input_type}\"}",
    "parameters": {
      "build": {
        "input_type": "document"
      },
      "search": {
        "input_type": "query"
      }
    }
  },
  "response": {
    "embeddings": "$.result.embeddings[*].embedding"
  }
}

パラメーター

パラメーター説明
modelNameモデルの名前。
modelTypeモデルのタイプ。有効な値: text_embeddingtext_sparse_embeddingimage_embeddingimage_analyze。説明については、このページ上部の表をご参照ください。
dimensionディメンション数。modelTypetext_embedding または image_embedding の場合に必須です。
urlモデルサービスのエンドポイント。
methodモデルサービスにアクセスするための HTTP メソッド。有効な値: PUT および POST
requestリクエスト構成。
request.headerモデルサービスに修正なしで渡される HTTP リクエストヘッダー。認証ヘッダーと Content-Type ヘッダーをここに含めます。
request.urlParamsリクエスト URL に追加される URL クエリパラメーター (例: ?abc=123)。
request.urlParams.buildインデックス作成時に使用される URL パラメーター。
request.urlParams.searchクエリ時に使用される URL パラメーター。
request.requestBodyテンプレート文字列としてのリクエストボディ。%{parameter_name} を使用して変数を挿入します。組み込み変数: %{input} (入力テキスト) および %{modal} (マルチモーダルモデルのモダリティ)。
request.parametersリクエストボディテンプレートに挿入されるフェーズ固有のパラメーター。埋め込みサービスがドキュメントのインデックス作成とクエリのエンコーディングで異なるパラメーターを必要とする場合 (例: インデックス作成時に input_type: document を使用し、検索時に input_type: query を使用する非対称埋め込みモデル) に使用します。
request.parameters.buildインデックス作成時のリクエストボディで使用されるパラメーター。
request.parameters.searchクエリ時のリクエストボディで使用されるパラメーター。
responseモデル応答から埋め込みベクトルを抽出する JSON パス式。

JSON パスリファレンス

OpenSearch は、モデルの応答から埋め込みベクトルを抽出するために JSON パス式を使用します。すべてのパスは $ (ルート要素) で始まる必要があります。

オペレーター

オペレーター説明
$ルート要素。すべてのパスは $ で始まる必要があります。
*ワイルドカード。名前または配列インデックスの代わりに任意の値に一致します。
.<name>オブジェクト属性にアクセスします。
[<number>]インデックスで配列要素にアクセスします。

次の応答が与えられた場合:

{
  "store": {
    "books": [
      { "title": "java", "price": 56 },
      { "title": "c++", "price": 99 }
    ]
  }
}
目的JSON パス結果
すべての書籍のタイトルを抽出$.store.books[*].title["java", "c++"]
最初の書籍のタイトルを抽出$.store.books[0].title["java"]

モデルの管理

モデルを検索するには、[カスタムモデル] タブをクリックし、[モデル] ページの [操作] 列を使用して、以下のいずれかの操作を実行できます。

操作説明
デバッグサンプル入力を送信して応答を検査し、モデルをテストします。返された埋め込みが期待どおりのディメンション数 (dimension 設定と一致) を持ち、その値が有効であることを確認してください。
編集モデル構成を更新します。
無効化モデルがデータとクエリを処理するのを停止します。このモデルを使用するテーブルは、新しいデータをベクトル化したり、関連するクエリを処理したりしなくなります。注意して進めてください。
復元無効化されたモデルを再度有効にします。
削除モデルを完全に削除します。無効化されたモデルのみ削除できます。

テーブルでのカスタムモデルの使用

カスタムモデルをテーブルフィールドに適用するには:

  1. テーブル構成を開きます。

  2. 前処理するフィールドの[設定]をクリックします。

  3. 利用可能なモデルのリストからカスタムモデルを選択します。

imageimage

構成を保存すると、OpenSearch はインデックス作成時に(build パラメーターを使用)およびクエリ実行時に(search パラメーターを使用)自動的にモデルを呼び出します。