You can call the GetVectors operation using the Python SDK V2 to retrieve vector data for specified keys. You can retrieve both the vector data and its metadata.
Permissions
Alibaba Cloud accounts have all permissions by default. By default, Resource Access Management (RAM) users or RAM roles under an Alibaba Cloud account do not have any permissions. The Alibaba Cloud account or an administrator must grant permissions for this operation using a RAM policy or a bucket policy.
|
API |
Action |
Description |
|
GetVectors |
|
Gets vector data. |
Method definition
get_vectors(request: GetVectorsRequest, **kwargs) → GetVectorsResult
Request parameters
|
Parameter |
Type |
Description |
|
request |
GetVectorsRequest |
Set the request parameters, such as the bucket name, index name, and a list of vector keys. For more information, see GetVectorsRequest. |
Return values
|
Type |
Description |
|
GetVectorsResult |
The return value, which contains the queried vector data. For more information, see GetVectorsResult. |
For the complete definition of the get_vectors method, see get_vectors.
Sample code
import argparse
import alibabacloud_oss_v2 as oss
import alibabacloud_oss_v2.vectors as oss_vectors
parser = argparse.ArgumentParser(description="vector get 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 OSS endpoint.')
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()
# Use 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 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)
keys = ['key1', 'key2']
result = vector_client.get_vectors(oss_vectors.models.GetVectorsRequest(
bucket=args.bucket,
index_name=args.index_name,
keys=keys,
return_data=True,
return_metadata=True
))
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
)
if result.vectors:
for vector in result.vectors:
print(f'vector id: {vector}')
if __name__ == "__main__":
main()
References
For the complete sample code for retrieving vector data, see get_vectors.py.