Vector Search 1.0 からの移行を効率化するため、ImportDataObjects API に新しい機能が導入されました。
移行プロセスには、次の 3 つの主要なステップがあります。
一致するスキーマを使用してコレクションを作成する。インポートする前に、コレクションを作成する必要があります。変換された Vector Search 1.0 データを格納するように、データスキーマを構造化する必要があります。
インポート プロセスを開始する。
ImportDataObjectsAPI を呼び出し、Vector Search 1.0 データの Cloud Storage の場所を指定して、変換フラグdetect_and_convert_vs1_jsonを有効にします。データ変換について理解する。Vector Search 1.0 のデータ フィールドが新しいデータ オブジェクト構造にどのようにマッピングされるかを確認します。
コレクションを作成する
まず、Vector Search 1.0 データの構造を反映したデータスキーマを使用してコレクションを作成します。
curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections?collection_id=movies' \
-H 'Bearer $(gcloud auth print-access-token)' \
-H 'Content-Type: application/json' \
-d '{ \
"data_schema": { \
"$schema": "http://json-schema.org/draft-07/schema#", \
"type": "object", \
"properties": { \
"restricts": { \
"type": "object", \
"properties": { \
"genres": { \
"type": "array", \
"items": { \
"type": "string" \
} \
}, \
"director": { \
"type": "array", \
"items": { \
"type": "string" \
} \
} \
} \
}, \
"restricts_deny": { \
"type": "object", \
"properties": { \
"genres": { \
"type": "array", \
"items": { \
"type": "string" \
} \
} \
} \
}, \
"numeric_restricts": { \
"type": "object", \
"properties": { \
"year": { \
"type": "integer" \
}, \
"imdb_rating": { \
"type": "number", \
"format": "float" \
} \
} \
}, \
"embedding_metadata": { \
"type": "object", \
"properties": { \
"plot": { \
"type": "string" \
}, \
"customers_review_summary": { \
"type": "string" \
}, \
"critics_review_summary": { \
"type": "string" \
} \
}, \
} \
} \
}, \
"vector_schema": { \
"embedding": { \
"dense_vector": { \
"dimensions": 768 \
} \
}, \
"sparse_embedding": { \
"sparse_vector": {} \
} \
} \
}'
Vector Search 1.0 データをインポートする
次に、新しく作成したコレクションで ImportDataObjects API を使用します。Vector Search 1.0 データを含む Cloud Storage バケットを指定します。
curl -X POST \
"https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:importDataObjects" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{ \
"gcs_import": { \
"contents_uri": "gs://your-bucket/path/to/your-data.jsonl", \
"error_uri": "gs://your-bucket/path/to/import-errors/" \
} \
}'
データ変換
インポート プロセス中に、Vector Search 1.0 データは Vector Search 2.0 データ オブジェクトに変換されます。次の例は、フィールドのマッピング方法を示しています。
Vector Search 1.0 の Cloud Storage ファイル形式
{
"id": "movie-789",
"embedding": [-0.23, 0.88, 0.11, ...],
"sparse_embedding": {"values": [0.1, 0.2], "dimensions": [1, 4]},
"restricts": [
{"namespace": "genres", "allow": ["science-fiction", "action"], "deny": ["horror"]},
{"namespace": "director", "allow": ["Christopher Nolan"]}
],
"numeric_restricts": [
{"namespace": "year", "value_int": 2010},
{"namespace": "imdb_rating", "value_float": 8.8}
],
"embedding_metadata": {
"plot": "...",
"customers_review_summary": "...",
"critics_review_summary": "..."
}
}
変換された Vector Search 2.0 データ オブジェクト
DataObject(
name="/.../movie-789",
data={
"restricts": {
"genres": ["science-fiction", "action"],
"director": ["Christopher Nolan"],
},
"restricts_deny": {
"genres": ["horror"]
},
"numeric_restricts": {
"year": 2010,
"imdb_rating": 8.8,
},
"embedding_metadata": {
"plot": "...",
"customers_review_summary": "...",
"critics_review_summary": "...",
}
},
vectors={
"embedding": {"dense_vector": {"values": [-0.23, 0.88, 0.11, ...]}},
"sparse_embedding": {"sparse_vector": {"values": [0.1, 0.2], "indices": [1, 4]}},
}
)