Todos os produtos
Search
Central de documentação

Object Storage Service:Como consultar vetores com o SDK do OSS para Python 2.0

Última atualização: Sep 22, 2026

Este tópico explica como utilizar o SDK do OSS para Python 2.0 para chamar a operação QueryVectors e realizar uma pesquisa de similaridade em um índice de vetores.

Permissões

Por padrão, uma conta do Alibaba Cloud possui permissões totais, enquanto um usuário ou uma função do RAM não possui nenhuma. O proprietário da conta do Alibaba Cloud ou um administrador deve conceder as permissões por meio de uma RAM policy ou de uma bucket policy.

API

Ação

Descrição

QueryVectors

oss:QueryVectors

Consulta dados de vetores.

Definição do método

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

Parâmetros do request

Parâmetro

Tipo

Descrição

request

QueryVectorsRequest

Defina os parâmetros do request, incluindo o vetor de consulta, a condição de filtro e a quantidade de resultados a retornar. Para mais informações, consulte QueryVectorsRequest.

Valores de retorno

Tipo

Descrição

QueryVectorsResult

Valor de retorno que contém uma lista de vetores obtidos. Para mais informações, consulte QueryVectorsResult.

Para acessar a definição completa do método, consulte query_vectors.

Código de exemplo

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

Referências

Para conferir o código de exemplo completo de consulta de vetores, consulte query_vectors.py.