PutVectors 操作を呼び出して、ベクトルデータをインデックスに書き込むことができます。
注意事項
1 回の PutVectors リクエストでは最大 500 個のベクターを書き込めます。また、1 秒あたりのリクエスト数(QPS)は最大 5 です。
権限
Alibaba Cloud アカウント (root ユーザー) には、デフォルトですべての権限が付与されています。ただし、RAM ユーザーおよび RAM ロールには、デフォルトで権限が付与されていません。Alibaba Cloud アカウントの所有者または管理者が、RAM ポリシー または バケットポリシー を使用して、操作権限を明示的に付与する必要があります。
|
API |
Action |
説明 |
|
PutVectors |
|
ベクトルデータを書き込みます。 |
リクエスト構文
POST /?putVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Date: GMT 日付
Authorization: SignatureValue
Content-type: application/json
{
"indexName": "文字列",
"vectors": [
{
"data": {
"float32":[浮動小数点数]
},
"key": "文字列",
"metadata": {
"key1": ["value1", "value2"],
"key2": "value2"
}
}
]
}
リクエストヘッダー
この操作では、共通のリクエストヘッダーのみを使用します。詳細については、「共通の HTTP ヘッダー」をご参照ください。
リクエストパラメーター
|
名前 |
データ型 |
必須 |
例 |
説明 |
|
indexName |
String |
はい |
vectorindex1 |
インデックスの名前です。 |
|
vectors |
Container |
はい |
- |
書き込むベクトルの配列です。コンテナ内の要素数は 1~500 の範囲である必要があります。 |
|
key |
String |
はい |
doc-001 |
ベクトルを一意に識別するプライマリキーです。制約条件は以下のとおりです。
親ノード:vectors |
|
data |
Container |
はい |
- |
ベクトルの内容です。制約条件は以下のとおりです。
親ノード:vectors |
|
float32 |
数値の配列 |
はい |
[0.1, 0.2, 0.3] |
float32 型のベクトルデータです。ベクトル次元数は、インデックスで定義された次元数と一致している必要があります。また、余弦距離測定を使用する場合はゼロベクトルは許可されません。 親ノード:data |
|
metadata |
Container |
いいえ |
- |
メタデータです。制約条件は以下のとおりです。
親ノード:vectors |
レスポンスヘッダー
この操作では、共通のレスポンスヘッダーのみを使用します。詳細については、「共通の HTTP ヘッダー」をご参照ください。
例
リクエストの例
POST /?putVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Date: Thu, 17 Apr 2025 01:33:47 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218
Content-type: application/json
{
"indexName": "vectorindex1",
"vectors": [
{
"key": "doc-001",
"data": {
"float32": [0.1, 0.2, 0.3, 0.4, 0.5]
},
"metadata": {
"category": ["technology", "ai"],
"title": "Introduction to Vector Search"
}
},
{
"key": "doc-002",
"data": {
"float32": [0.6, 0.7, 0.8, 0.9, 1.0]
},
"metadata": {
"category": ["technology", "database"],
"title": "Advanced Database Indexing"
}
}
]
}
レスポンスの例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Connection: keep-alive
Server: AliyunOSS
SDK
以下の SDK で PutVectors 操作がサポートされています。
ossutil コマンドラインインターフェイス
PutVectors 操作に対応する ossutil コマンドの詳細については、「put-vectors」をご参照ください。
エラーコード
|
エラーコード |
HTTP ステータスコード |
説明 |
|
VectorIndexParameterInvalid |
400 |
リクエストで指定されたベクトルインデックスのパラメーターが無効であるか、単一のベクトルインデックステーブルに格納されているベクトルデータの行数が 5,000 万行を超えています。 |
|
MalformedJson |
400 |
リクエストボディ内の JSON 形式が無効です。 |
|
AccessDenied |
403 |
このエラーが発生する可能性のある原因は以下のとおりです。
|
|
NoSuchVectorIndex |
404 |
指定されたベクトルインデックスが存在しません。 |
|
QpsLimitExceeded |
503 |
1 秒あたりのクエリ数(QPS)が制限を超えています。HTTP ステータスコードが 5xx の場合、同一バッチ内の一部のデータのみが正常に書き込まれる可能性があります。書き込み操作は原子性を保証しません。 |