OpenSearch Vector Search Edition では、カスタムモデルを呼び出すことができます。[カスタムモデル] タブでカスタムモデルを作成し、モデルの表示、編集、デバッグ、無効化、復元などの管理操作を実行できます。
モデルの作成
OpenSearch インスタンスの詳細ページの左側のナビゲーションウィンドウで、[モデル管理] > [モデル] を選択します。[カスタムモデル] タブの表示されたページで、[モデルの作成] をクリックします。[カスタムモデルの作成] パネルで、カスタムモデルのフォーマットに基づいてパラメーターを構成します。
カスタムモデルのフォーマット
{
"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 | モデルのタイプ。有効な値:
|
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 | リクエストボディのテンプレート文字列。
|
request.parameters | リクエストボディのビルドフェーズのパラメーターと検索フェーズのパラメーターを区別する場合は、このパラメーターで定義できます。
|
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"]
モデルを管理する
モデルをデバッグする
[カスタムモデル] タブの [モデル] ページで、管理するモデルを見つけ、[アクション] 列の [デバッグ] をクリックしてモデルの効果をテストします。
モデルを無効にする
モデルが無効になると、モデルを呼び出すテーブルは、関連するデータとクエリを処理しなくなります。 注意して進めてください。
モデルを削除する
無効化されたモデルのみ削除できます。
モデルを復元する
無効化されたモデルを復元できます。
モデルを呼び出す
テーブルを構成する場合は、前処理するフィールドの [構成] をクリックします。表示されたモデルから、作成したカスタムモデルを選択できます。