Todos los productos
Search
Centro de documentos

Object Storage Service:Consulta de vectores con OSS SDK for Python 2.0

Última actualización: Sep 22, 2026

Este tema describe cómo usar OSS SDK for Python 2.0 para llamar a la operación QueryVectors y ejecutar una búsqueda por similitud en un índice vectorial.

Permisos

De forma predeterminada, una cuenta de Alibaba Cloud tiene todos los permisos, mientras que un usuario o rol de RAM no tiene ninguno. El propietario de la cuenta de Alibaba Cloud o un administrador debe otorgar los permisos mediante una RAM policy o un bucket policy.

API

Acción

Descripción

QueryVectors

oss:QueryVectors

Consulta datos vectoriales.

Definición del método

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

Parámetros de solicitud

Parámetro

Tipo

Descripción

request

QueryVectorsRequest

Establezca los parámetros de la solicitud, como el vector de consulta, la condición de filtro y la cantidad de resultados que se devolverán. Para obtener más información, consulte QueryVectorsRequest.

Valores devueltos

Tipo

Descripción

QueryVectorsResult

Valor de retorno que contiene una lista de los vectores obtenidos. Para obtener más información, consulte QueryVectorsResult.

Para consultar la definición completa del método, vea query_vectors.

Código de ejemplo

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()

Referencia

Para ver el código de ejemplo completo sobre la consulta de vectores, consulte query_vectors.py.