Llame a la operación PutVectorIndex mediante el Python SDK V2 para crear un índice vectorial en un bucket de vectores.
Permisos
De forma predeterminada, las cuentas de Alibaba Cloud tienen todos los permisos. En cambio, los usuarios y roles de Resource Access Management (RAM) no tienen ninguno. La cuenta de Alibaba Cloud o un administrador debe otorgar los permisos correspondientes mediante una RAM policy o un bucket policy.
|
API |
Acción |
Descripción |
|
PutVectorIndex |
|
Crea un índice vectorial. |
Definición del método
put_vector_index(request: PutVectorIndexRequest, **kwargs) → PutVectorIndexResult
Parámetros de solicitud
|
Parámetro |
Tipo |
Descripción |
|
request |
PutVectorIndexRequest |
Establezca los parámetros de la solicitud, como el nombre del bucket de vectores. Para obtener más información, consulte PutVectorIndexRequest. |
Valores devueltos
|
Tipo |
Descripción |
|
PutVectorIndexResult |
El valor devuelto. Para obtener más información, consulte PutVectorIndexResult. |
Para consultar la definición completa del método, vea put_vector_index.
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 put vector index 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 name 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()
# Load credentials from 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 parameter to False or remove this line.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
vector_client = oss_vectors.Client(cfg)
result = vector_client.put_vector_index(oss_vectors.models.PutVectorIndexRequest(
bucket=args.bucket,
index_name=args.index_name,
dimension=512,
data_type='float32',
distance_metric='euclidean',
metadata={"nonFilterableMetadataKeys": ["key1", "key2"]}
))
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
)
if __name__ == "__main__":
main()
Referencias
Para consultar el código de ejemplo completo, vea put_vector_index.py.