Utilisez l'opération PutVectorIndex du SDK Python V2 pour créer un index vectoriel dans un bucket vectoriel.
Permissions
Par défaut, les comptes Alibaba Cloud disposent de toutes les autorisations, tandis que les utilisateurs et les rôles RAM n'en ont aucune. Le compte Alibaba Cloud ou un administrateur doit accorder les autorisations via une politique RAM ou une politique de bucket.
|
API |
Action |
Description |
|
PutVectorIndex |
|
Crée un index vectoriel. |
Définition de la méthode
put_vector_index(request: PutVectorIndexRequest, **kwargs) → PutVectorIndexResult
Paramètres de requête
|
Paramètre |
Type |
Description |
|
request |
PutVectorIndexRequest |
Définit les paramètres de la requête, tels que le nom du bucket vectoriel. Pour plus d'informations, consultez PutVectorIndexRequest. |
Valeurs de retour
|
Type |
Description |
|
PutVectorIndexResult |
Valeur de retour. Pour plus d'informations, consultez PutVectorIndexResult. |
Pour la définition complète de la méthode, consultez put_vector_index.
Exemple de code
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()
Références
Pour l'exemple de code complet, consultez put_vector_index.py.