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

OpenSearch:カスタムモデル

最終更新日:Mar 19, 2025

OpenSearch Vector Search Edition では、カスタムモデルを呼び出すことができます。[カスタムモデル] タブでカスタムモデルを作成し、モデルの表示、編集、デバッグ、無効化、復元などの管理操作を実行できます。

モデルの作成

OpenSearch インスタンスの詳細ページの左側のナビゲーションウィンドウで、[モデル管理] > [モデル] を選択します。[カスタムモデル] タブの表示されたページで、[モデルの作成] をクリックします。[カスタムモデルの作成] パネルで、カスタムモデルのフォーマットに基づいてパラメーターを構成します。

image

カスタムモデルのフォーマット

{
  "modelName": "custom_model", // モデル名
  "modelType": "text_embedding", // モデルタイプ
  "dimension": 1536, // 次元数
  "url": "http://xxx/api/v2/services/embeddings", // モデルサービスのエンドポイント
  "method": "POST", // HTTPメソッド
  "request": { // リクエストメソッド
    "header": { // HTTPヘッダー
      "Authorization": "fj42091fjlgnlsvu023nva", // 認証情報
      "Content-Type": "application/json" // コンテンツタイプ
    },
    "urlParams": { // URLパラメーター
      "build": {}, // インデックス作成時に渡されるパラメーター
      "search": {} // クエリ時に渡されるパラメーター
    },
    "requestBody": "{\"input\": [\"%{input}\"],\"input_type\": \"${input_type}\"}", // リクエストボディのテンプレート文字列
    "parameters": { // リクエストボディのパラメーター
      "build": { // インデックス作成フェーズのパラメーター
        "input_type": "document" // 入力タイプ
      },
      "search": { // クエリフェーズのパラメーター
        "input_type": "query" // 入力タイプ
      }
    }
  },
  "response": { // 結果を解析するために使用されるフォーマット
    "embeddings": "$.result.embeddings[*].embedding" // JSONパス
  }
}

パラメーター

パラメーター

説明

modelName

モデルの名前。

modelType

モデルのタイプ。有効な値:

  • text_embedding: 密ベクトルテキストモデル

  • text_sparse_embedding: スパーステキストモデル

  • image_embedding: 画像ベクトルモデル

  • image_analyze: 画像コンテンツ分析モデル

dimension

モデルの次元数。 modelType パラメーターを text_embedding または image_embedding に設定する場合は、このパラメーターを設定する必要があります。

url

モデルサービスのエンドポイント。

method

モデルサービスへのアクセスに使用される HTTP メソッド。有効な値:PUT および POST。

request

リクエストメソッド。

request.header

モデルサービスへのアクセスに使用される HTTP ヘッダー。これは、処理なしでモデルサービスに渡されます。

request.urlParams

URL 内のパラメーター。一部のモデルサービスは、?abc=123 など、URL を介してパラメーターを渡す必要があります。

request.urlParams.build

インデックスの作成時に渡されるパラメーター。

request.urlParams.search

クエリ中に渡されるパラメーター。

request.requestBody

リクエストボディのテンプレート文字列。

  • テンプレート変数の形式:

    %{パラメーター名}。例:{ "input": "%{input}" }。

  • 組み込み変数:

    • %{input}: 入力テキスト。

    • %{modal}: モーダル。マルチモーダルモデルを使用する場合、クエリで使用するモーダルを指定できます。

request.parameters

リクエストボディのビルドフェーズのパラメーターと検索フェーズのパラメーターを区別する場合は、このパラメーターで定義できます。

  • build: インデックス作成フェーズのパラメーター。

  • search: クエリフェーズのパラメーター。

response

結果を解析するために使用されるフォーマット。JSON パスが使用されます。

JSON パスの説明

演算子

演算子

説明

$

ルート要素。パスは $ で始まる必要があります。

*

任意の値を示すワイルドカード。ワイルドカードを使用して、名前または数値を置き換えることができます。

.<name>

オブジェクトの属性にアクセスするために使用されます。

[<number>]

配列添字の要素にアクセスするために使用されます。

{
  "store": {
    "books": [
      {
        "title": "java", // 書籍のタイトル
        "price": 56 // 書籍の価格
      },
      {
        "title": "c++", // 書籍のタイトル
        "price": 99 // 書籍の価格
      }
    ]
  }
}
  • すべての本のタイトルを抽出する

    • JSON パス: $.store.books[*].title

    • 結果: ["java", "c++"]

  • 最初の本のタイトルを抽出する

    • JSON パス: $.store.books[0].title

    • 結果: ["java"]

モデルを管理する

  • モデルをデバッグする

    [カスタムモデル] タブの [モデル] ページで、管理するモデルを見つけ、[アクション] 列の [デバッグ] をクリックしてモデルの効果をテストします。

  • モデルを無効にする

    モデルが無効になると、モデルを呼び出すテーブルは、関連するデータとクエリを処理しなくなります。 注意して進めてください。

  • モデルを削除する

    無効化されたモデルのみ削除できます。

  • モデルを復元する

    無効化されたモデルを復元できます。

モデルを呼び出す

テーブルを構成する場合は、前処理するフィールドの [構成] をクリックします。表示されたモデルから、作成したカスタムモデルを選択できます。

image

image