Tous les produits
Search
Centre de documentation

Object Storage Service:Interroger des vecteurs avec le SDK OSS pour Python 2.0

Dernière mise à jour :Sep 22, 2026

Cette rubrique explique comment utiliser le SDK OSS pour Python 2.0 afin d'appeler l'opération QueryVectors et d'effectuer une recherche par similarité dans un index vectoriel.

Autorisations

Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations, tandis qu'un utilisateur RAM ou un rôle RAM n'en possède aucune. Le propriétaire du compte Alibaba Cloud ou un administrateur doit accorder les autorisations via une politique RAM ou une politique de compartiment.

API

Action

Description

QueryVectors

oss:QueryVectors

Interroge les données vectorielles.

Définition de la méthode

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

Paramètres de requête

Paramètre

Type

Description

request

QueryVectorsRequest

Définit les paramètres de la requête, notamment le vecteur de requête, la condition de filtre et le nombre de résultats à renvoyer. Pour plus d'informations, consultez QueryVectorsRequest.

Valeurs de retour

Type

Description

QueryVectorsResult

Valeur de retour contenant la liste des vecteurs renvoyés. Pour plus d'informations, consultez QueryVectorsResult.

Pour la définition complète de la méthode, consultez query_vectors.

Exemple de code

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='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--index_name', help='The name of the vector index.', required=True)
parser.add_argument('--account_id', help='The account id.', required=True)

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

    # Loading credentials values from the environment variables
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Using the SDK's default configuration
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region
    cfg.account_id = args.account_id
    cfg.use_internal_endpoint = True  # To access the service over the public network, set this to False or remove this line.
    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()

Référence

Pour l'exemple de code complet relatif à l'interrogation de vecteurs, consultez query_vectors.py.