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

Object Storage Service:ベクターの取得 (Python SDK V2)

最終更新日:Nov 09, 2025

このトピックでは、Python SDK V2 を使用して QueryVectors 操作を呼び出し、ベクターインデックスで類似検索を実行する方法について説明します。

権限

Alibaba Cloud アカウントは、デフォルトですべての権限を持っています。 Resource Access Management (RAM) ユーザーまたは RAM ロールは、デフォルトでは権限を持っていません。 Alibaba Cloud アカウントまたは管理者は、RAM ポリシーまたはバケットポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。

API

アクション

説明

QueryVectors

oss:QueryVectors

ベクトルデータをクエリします。

メソッド定義

query_vectors(request: QueryVectorsRequest, **kwargs) → QueryVectorsResult

リクエストパラメーター

パラメーター

タイプ

説明

request

QueryVectorsRequest

クエリベクター、フィルター条件、返す結果の数などのリクエストパラメーターを設定します。 詳細については、「QueryVectorsRequest」をご参照ください。

戻り値

タイプ

説明

QueryVectorsResult

結果のベクターのリストを含む戻り値。 詳細については、「QueryVectorsResult」をご参照ください。

メソッドの完全な定義については、「query_vectors」をご参照ください。

サンプルコード

import argparse
import alibabacloud_oss_v2 as oss
import alibabacloud_oss_v2.vectors as oss_vectors

parser = argparse.ArgumentParser(description="vector query vectors sample")
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
parser.add_argument('--bucket', help='バケットの名前。', required=True)
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')
parser.add_argument('--index_name', help='ベクターインデックスの名前。', required=True)
parser.add_argument('--account_id', help='アカウント ID。', required=True)

def main():
    args = parser.parse_args()

    # 環境変数から認証情報値を読み込みます
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用します
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region
    cfg.account_id = args.account_id
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    vector_client = oss_vectors.Client(cfg)

    query_filter = {
        "$and": [{
            "type": {
                "$nin": ["comedy", "documentary"]
            }
        }]
    }

    query_vector = {"float32": [0.1] * 128}

    result = vector_client.query_vectors(oss_vectors.models.QueryVectorsRequest(
        bucket=args.bucket,
        index_name=args.index_name,
        filter=query_filter,
        query_vector=query_vector,
        return_distance=True,
        return_metadata=True,
        top_k=10
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          )

    if result.vectors:
        for vector in result.vectors:
            print(f'vector: {vector}')


if __name__ == "__main__":
    main()

関連ドキュメント

ベクターをクエリするための完全なサンプルコードについては、「query_vectors.py」をご参照ください。