diff --git a/alibabacloud_oss_v2/signer/vectors_v4.py b/alibabacloud_oss_v2/signer/vectors_v4.py index 89484fe..728cc19 100644 --- a/alibabacloud_oss_v2/signer/vectors_v4.py +++ b/alibabacloud_oss_v2/signer/vectors_v4.py @@ -84,8 +84,8 @@ def _auth_header(self, signing_ctx: SigningContext) -> None: string_to_sign = self._calc_string_to_sign( datetime_now_iso8601, scope, canonical_request) - print('\ncanonical_request:{}\n'.format(canonical_request)) - print('string_to_sign:{}\n'.format(string_to_sign)) + # print('\ncanonical_request:{}\n'.format(canonical_request)) + # print('string_to_sign:{}\n'.format(string_to_sign)) # signature signature = self._calc_signature( @@ -196,8 +196,8 @@ def _auth_query(self, signing_ctx: SigningContext) -> None: request.url = request.url + f'&x-oss-signature={quote(signature, safe="")}' - print('\ncanonical_request:{}\n'.format(canonical_request)) - print('string_to_sign:{}\n'.format(string_to_sign)) + # print('\ncanonical_request:{}\n'.format(canonical_request)) + # print('string_to_sign:{}\n'.format(string_to_sign)) signing_ctx.string_to_sign = string_to_sign signing_ctx.signing_time = datetime_now signing_ctx.expiration_time = expiration_time diff --git a/alibabacloud_oss_v2/vectors/client.py b/alibabacloud_oss_v2/vectors/client.py index f999503..af20e7d 100644 --- a/alibabacloud_oss_v2/vectors/client.py +++ b/alibabacloud_oss_v2/vectors/client.py @@ -13,7 +13,7 @@ from . import endpoints from .paginator import ( ListVectorBucketsPaginator, - ListVectorIndexPaginator, + ListVectorIndexesPaginator, ListVectorsPaginator ) @@ -199,17 +199,17 @@ def get_vector_index(self, request: models.GetVectorIndexRequest, **kwargs) -> m """ return operations.get_vector_index(self._client, request, **kwargs) - def list_vector_index(self, request: models.ListVectorsIndexRequest, **kwargs) -> models.ListVectorsIndexResult: + def list_vector_indexes(self, request: models.ListVectorIndexesRequest, **kwargs) -> models.ListVectorIndexesResult: """ List vector indexes in a bucket. Args: - request (ListVectorsIndexRequest): The request for the ListVectorIndex operation. + request (ListVectorIndexesRequest): The request for the ListVectorIndexes operation. Returns: - ListVectorsIndexResult: The result for the ListVectorIndex operation. + ListVectorIndexesResult: The result for the ListVectorIndexes operation. """ - return operations.list_vector_index(self._client, request, **kwargs) + return operations.list_vector_indexes(self._client, request, **kwargs) def delete_vector_index(self, request: models.DeleteVectorIndexRequest, **kwargs) -> models.DeleteVectorIndexResult: """ @@ -333,13 +333,13 @@ def list_vector_buckets_paginator(self, **kwargs) -> ListVectorBucketsPaginator: """ return ListVectorBucketsPaginator(self, **kwargs) - def list_vector_index_paginator(self, **kwargs) -> ListVectorIndexPaginator: + def list_vector_indexes_paginator(self, **kwargs) -> ListVectorIndexesPaginator: """Creates a paginator for ListVectorIndex Returns: - ListVectorIndexPaginator: a paginator for ListVectorIndex + ListVectorIndexesPaginator: a paginator for ListVectorIndex """ - return ListVectorIndexPaginator(self, **kwargs) + return ListVectorIndexesPaginator(self, **kwargs) def list_vectors_paginator(self, **kwargs) -> ListVectorsPaginator: """Creates a paginator for ListVectors diff --git a/alibabacloud_oss_v2/vectors/models/index_basic.py b/alibabacloud_oss_v2/vectors/models/index_basic.py index 062caf7..9833aae 100644 --- a/alibabacloud_oss_v2/vectors/models/index_basic.py +++ b/alibabacloud_oss_v2/vectors/models/index_basic.py @@ -110,9 +110,9 @@ def __init__( # List -class ListVectorsIndexRequest(serde.RequestModel): +class ListVectorIndexesRequest(serde.RequestModel): """ - The request for the ListVectorsIndex operation. + The request for the ListVectorIndexes operation. """ _attribute_map = { @@ -144,9 +144,9 @@ def __init__( self.prefix = prefix -class ListVectorsIndexResult(serde.ResultModel): +class ListVectorIndexesResult(serde.ResultModel): """ - The result for the ListVectorsIndex operation. + The result for the ListVectorIndexes operation. """ _attribute_map = { diff --git a/alibabacloud_oss_v2/vectors/operations/index_basic.py b/alibabacloud_oss_v2/vectors/operations/index_basic.py index db2bfd9..ce27e9d 100644 --- a/alibabacloud_oss_v2/vectors/operations/index_basic.py +++ b/alibabacloud_oss_v2/vectors/operations/index_basic.py @@ -64,7 +64,7 @@ def get_vector_index(client: _SyncClientImpl, request: models.GetVectorIndexRequ request=request, op_input=OperationInput( op_name='GetVectorIndex', - method='GET', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), @@ -89,23 +89,23 @@ def get_vector_index(client: _SyncClientImpl, request: models.GetVectorIndexRequ ) -def list_vector_index(client: _SyncClientImpl, request: models.ListVectorsIndexRequest, **kwargs) -> models.ListVectorsIndexResult: +def list_vector_indexes(client: _SyncClientImpl, request: models.ListVectorIndexesRequest, **kwargs) -> models.ListVectorIndexesResult: """ list_vector_index synchronously Args: client (_SyncClientImpl): A agent that sends the request. - request (ListVectorsIndexRequest): The request for the ListVectorIndex operation. + request (ListVectorIndexesRequest): The request for the ListVectorIndexes operation. Returns: - ListVectorsIndexResult: The result for the ListVectorIndex operation. + ListVectorIndexesResult: The result for the ListVectorIndexes operation. """ op_input = serialize_input_vector_json_model( request=request, op_input=OperationInput( - op_name='ListVectorIndex', - method='GET', + op_name='ListVectorIndexes', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), @@ -122,7 +122,7 @@ def list_vector_index(client: _SyncClientImpl, request: models.ListVectorsIndexR op_output = client.invoke_operation(op_input, **kwargs) return serde.deserialize_output( - result=models.ListVectorsIndexResult(), + result=models.ListVectorIndexesResult(), op_output=op_output, custom_deserializer=[ deserialize_output_vector_json_model @@ -146,7 +146,7 @@ def delete_vector_index(client: _SyncClientImpl, request: models.DeleteVectorInd request=request, op_input=OperationInput( op_name='DeleteVectorIndex', - method='DELETE', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), diff --git a/alibabacloud_oss_v2/vectors/operations/vector_basic.py b/alibabacloud_oss_v2/vectors/operations/vector_basic.py index 510d45e..0192b9a 100644 --- a/alibabacloud_oss_v2/vectors/operations/vector_basic.py +++ b/alibabacloud_oss_v2/vectors/operations/vector_basic.py @@ -23,7 +23,7 @@ def put_vectors(client: _SyncClientImpl, request: models.PutVectorsRequest, **kw request=request, op_input=OperationInput( op_name='PutVectors', - method='PUT', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), @@ -64,7 +64,7 @@ def get_vectors(client: _SyncClientImpl, request: models.GetVectorsRequest, **kw request=request, op_input=OperationInput( op_name='GetVectors', - method='GET', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), @@ -105,7 +105,7 @@ def list_vectors(client: _SyncClientImpl, request: models.ListVectorsRequest, ** request=request, op_input=OperationInput( op_name='ListVectors', - method='GET', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), @@ -146,7 +146,7 @@ def delete_vectors(client: _SyncClientImpl, request: models.DeleteVectorsRequest request=request, op_input=OperationInput( op_name='DeleteVectors', - method='DELETE', + method='POST', headers=CaseInsensitiveDict({ 'Content-Type': 'application/json', }), diff --git a/alibabacloud_oss_v2/vectors/paginator.py b/alibabacloud_oss_v2/vectors/paginator.py index 48ba784..bd0ca25 100644 --- a/alibabacloud_oss_v2/vectors/paginator.py +++ b/alibabacloud_oss_v2/vectors/paginator.py @@ -58,38 +58,38 @@ def __repr__(self) -> str: return "" -class ListVectorIndexAPIClient(abc.ABC): - """Abstract base class for list_vector_index client.""" +class ListVectorIndexesAPIClient(abc.ABC): + """Abstract base class for list_vector_indexes client.""" @abc.abstractmethod - def list_vector_index(self, request: models.ListVectorsIndexRequest, **kwargs) -> models.ListVectorsIndexResult: + def list_vector_indexes(self, request: models.ListVectorIndexesRequest, **kwargs) -> models.ListVectorIndexesResult: """Lists vector indexes in a bucket.""" -class ListVectorIndexPaginator: - """A paginator for ListVectorIndex""" +class ListVectorIndexesPaginator: + """A paginator for ListVectorIndexes""" def __init__( self, - client: ListVectorIndexAPIClient, + client: ListVectorIndexesAPIClient, **kwargs: Any ) -> None: """ - client (ListVectorIndexAPIClient): A agent that sends the request. + client (ListVectorIndexesAPIClient): A agent that sends the request. limit (int, optional): The maximum number of items in the response. """ self._client = client self._limit = kwargs.get('limit', None) - def iter_page(self, request: models.ListVectorsIndexRequest, **kwargs: Any) -> Iterator[models.ListVectorsIndexResult]: + def iter_page(self, request: models.ListVectorIndexesRequest, **kwargs: Any) -> Iterator[models.ListVectorIndexesResult]: """Iterates over the vector indexes. Args: - request (models.ListVectorsIndexRequest): The request for the ListVectorIndex operation. + request (models.ListVectorIndexesRequest): The request for the ListVectorIndexes operation. limit (int, optional): The maximum number of items in the response. Yields: - Iterator[models.ListVectorsIndexResult]: An iterator of ListVectorsIndexResult from the response + Iterator[models.ListVectorIndexesResult]: An iterator of ListVectorIndexes from the response """ limit = kwargs.get('limit', self._limit) req = copy.copy(request) @@ -100,7 +100,7 @@ def iter_page(self, request: models.ListVectorsIndexRequest, **kwargs: Any) -> I is_truncated = False while first_page or is_truncated: - result = self._client.list_vector_index(req) + result = self._client.list_vector_indexes(req) yield result first_page = False @@ -109,7 +109,7 @@ def iter_page(self, request: models.ListVectorsIndexRequest, **kwargs: Any) -> I is_truncated = bool(next_token) def __repr__(self) -> str: - return "" + return "" diff --git a/sample/vector/vector_get_vectors.py b/sample/vector/vector_get_vectors.py index 5773122..afd26a9 100644 --- a/sample/vector/vector_get_vectors.py +++ b/sample/vector/vector_get_vectors.py @@ -32,7 +32,7 @@ def main(): index_name=args.index_name, keys=keys, return_data=True, - return_metadata=False + return_metadata=True )) print(f'status code: {result.status_code},' diff --git a/sample/vector/vector_list_vector_index.py b/sample/vector/vector_list_vector_index.py index b15be62..84abdd1 100644 --- a/sample/vector/vector_list_vector_index.py +++ b/sample/vector/vector_list_vector_index.py @@ -27,10 +27,10 @@ def main(): client = oss_vectors.Client(cfg) # Create the Paginator for the ListVectorIndex operation - paginator = client.list_vector_index_paginator() + paginator = client.list_vector_indexes_paginator() # Iterate through the vector index pages - for page in paginator.iter_page(oss_vectors.models.ListVectorsIndexRequest( + for page in paginator.iter_page(oss_vectors.models.ListVectorIndexesRequest( bucket=args.bucket ) ): diff --git a/sample/vector/vector_list_vectors.py b/sample/vector/vector_list_vectors.py index a3c8067..af60786 100644 --- a/sample/vector/vector_list_vectors.py +++ b/sample/vector/vector_list_vectors.py @@ -39,7 +39,7 @@ def main(): # Iterate through the vectors pages for page in paginator.iter_page(request): for o in page.vectors: - print(f'Vector Key: {o.get("key")}') + print(f'Vector: {o}') if __name__ == "__main__": main() diff --git a/sample/vector/vector_put_bucket_logging.py b/sample/vector/vector_put_bucket_logging.py index ae1cfdc..1e7c038 100644 --- a/sample/vector/vector_put_bucket_logging.py +++ b/sample/vector/vector_put_bucket_logging.py @@ -7,6 +7,7 @@ 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('--account_id', help='The account id.', required=True) +parser.add_argument('--target_bucket', help='The name of the target bucket.', required=True) def main(): args = parser.parse_args() @@ -26,10 +27,13 @@ def main(): result = vector_client.put_bucket_logging(oss_vectors.models.PutBucketLoggingRequest( bucket=args.bucket, - logging_enabled=oss_vectors.models.LoggingEnabled( - target_bucket='target-bucket-name', - target_prefix='log-prefix', - ), + bucket_logging_status=oss_vectors.models.BucketLoggingStatus( + logging_enabled=oss_vectors.models.LoggingEnabled( + target_bucket=args.target_bucket, + target_prefix='log-prefix', + logging_role='AliyunOSSLoggingDefaultRole' + ) + ) )) print(f'status code: {result.status_code},' diff --git a/sample/vector/vector_put_vector_index.py b/sample/vector/vector_put_vector_index.py index 68a0b2a..1dc7fb3 100644 --- a/sample/vector/vector_put_vector_index.py +++ b/sample/vector/vector_put_vector_index.py @@ -29,8 +29,8 @@ def main(): bucket=args.bucket, index_name=args.index_name, dimension=128, - data_type='HNSW', - distance_metric='EUCLIDEAN', + data_type='float32', + distance_metric='cosine', metadata={"nonFilterableMetadataKeys": ["key1", "key2"]} )) diff --git a/sample/vector/vector_put_vectors.py b/sample/vector/vector_put_vectors.py index 312911e..6e8cbad 100644 --- a/sample/vector/vector_put_vectors.py +++ b/sample/vector/vector_put_vectors.py @@ -27,14 +27,14 @@ def main(): vectors = [ { - "data": {"float32": [0.1, 0.2, 0.3]}, - "key": "vector-key-1", - "metadata": {"key1": "value1", "key2": "value2"} + "data": {"float32": [0.1] * 128}, + "key": "key1", + "metadata": {"metadata1": "value1", "metadata2": "value2"} }, { - "data": {"float32": [0.1, 0.3, 0.4]}, - "key": "vector-key-2", - "metadata": {"key3": "value3", "key4": "value4"} + "data": {"float32": [0.2] * 128}, + "key": "key2", + "metadata": {"metadata3": "value3", "metadata4": "value4"} } ] diff --git a/sample/vector/vector_query_vectors.py b/sample/vector/vector_query_vectors.py index a09aa5d..99c765b 100644 --- a/sample/vector/vector_query_vectors.py +++ b/sample/vector/vector_query_vectors.py @@ -28,16 +28,12 @@ def main(): query_filter = { "$and": [{ "type": { - "$in": ["comedy", "documentary"] - } - }, { - "year": { - "$gte": 2020 + "$nin": ["comedy", "documentary"] } }] } - query_vector = {"float32": [0.1, 0.2, 0.3]} + query_vector = {"float32": [0.1] * 128} result = vector_client.query_vectors(oss_vectors.models.QueryVectorsRequest( bucket=args.bucket, @@ -45,7 +41,7 @@ def main(): filter=query_filter, query_vector=query_vector, return_distance=True, - return_metadata=False, + return_metadata=True, top_k=10 )) diff --git a/tests/integration/vector/test_paginator.py b/tests/integration/vector/test_paginator.py index a94014c..3690ae6 100644 --- a/tests/integration/vector/test_paginator.py +++ b/tests/integration/vector/test_paginator.py @@ -91,8 +91,8 @@ def test_list_vector_index_paginator(self): )) # Test paginator with limit parameter set during initialization - paginator = self.vector_client.list_vector_index_paginator(limit=1) - request = oss_vectors.models.ListVectorsIndexRequest( + paginator = self.vector_client.list_vector_indexes_paginator(limit=1) + request = oss_vectors.models.ListVectorIndexesRequest( bucket=bucket_name ) iterator = paginator.iter_page(request) @@ -103,7 +103,7 @@ def test_list_vector_index_paginator(self): self.assertEqual(3, len(pages)) # Test paginator with custom limit parameter - paginator = self.vector_client.list_vector_index_paginator(limit=2) + paginator = self.vector_client.list_vector_indexes_paginator(limit=2) iterator = paginator.iter_page(request, limit=3) pages = [] for p in iterator: @@ -115,7 +115,7 @@ def test_list_vector_index_paginator(self): self.assertGreater(len(pages), 0) # Test default paginator without limit - paginator = self.vector_client.list_vector_index_paginator() + paginator = self.vector_client.list_vector_indexes_paginator() iterator = paginator.iter_page(request) total_indexes = 0 for p in iterator: diff --git a/tests/integration/vector/test_vector_basic_client.py b/tests/integration/vector/test_vector_basic_client.py index f695086..156127c 100644 --- a/tests/integration/vector/test_vector_basic_client.py +++ b/tests/integration/vector/test_vector_basic_client.py @@ -143,7 +143,7 @@ def test_vector_basic(self): self.assertEqual(index_name, get_index_result.index.index_name) # 9. List indexes - list_index_result = self.vector_client.list_vector_index(oss_vectors.models.ListVectorsIndexRequest( + list_index_result = self.vector_client.list_vector_indexes(oss_vectors.models.ListVectorIndexesRequest( bucket=bucket_name )) self.assertEqual(200, list_index_result.status_code) diff --git a/tests/integration/vector/test_vector_index_client.py b/tests/integration/vector/test_vector_index_client.py index d14dbed..78f7f9f 100644 --- a/tests/integration/vector/test_vector_index_client.py +++ b/tests/integration/vector/test_vector_index_client.py @@ -74,11 +74,11 @@ def test_vector_index_lifecycle(self): self.assertEqual(distance_metric, get_result.index.distance_metric) # 4. List vector indexes and verify our index is included - list_indexes_request = oss_vectors.models.ListVectorsIndexRequest( + list_indexes_request = oss_vectors.models.ListVectorIndexesRequest( bucket=bucket_name ) - list_result = self.vector_client.list_vector_index(list_indexes_request) + list_result = self.vector_client.list_vector_indexes(list_indexes_request) # Assert successful listing self.assertEqual(200, list_result.status_code) diff --git a/tests/unit/vectors/models/test_index_basic.py b/tests/unit/vectors/models/test_index_basic.py index 21741a8..ec30b57 100644 --- a/tests/unit/vectors/models/test_index_basic.py +++ b/tests/unit/vectors/models/test_index_basic.py @@ -237,7 +237,7 @@ def test_deserialize_result(self): class TestListVectorsIndex(unittest.TestCase): def test_constructor_request(self): - request = model.ListVectorsIndexRequest() + request = model.ListVectorIndexesRequest() self.assertIsNone(request.bucket) self.assertIsNone(request.max_results) self.assertIsNone(request.next_token) @@ -245,7 +245,7 @@ def test_constructor_request(self): self.assertIsInstance(request, serde.RequestModel) def test_constructor_request_with_parameters(self): - request = model.ListVectorsIndexRequest( + request = model.ListVectorIndexesRequest( bucket='test-bucket', max_results=100, next_token='test-token', @@ -258,7 +258,7 @@ def test_constructor_request_with_parameters(self): self.assertIsInstance(request, serde.RequestModel) def test_serialize_request(self): - request = model.ListVectorsIndexRequest( + request = model.ListVectorIndexesRequest( bucket='test-bucket', max_results=100, next_token='test-token', @@ -283,7 +283,7 @@ def test_serialize_request(self): self.assertEqual(json_str, op_input.body.decode()) def test_constructor_result(self): - result = model.ListVectorsIndexResult() + result = model.ListVectorIndexesResult() self.assertIsInstance(result, serde.ResultModel) def test_deserialize_result(self): @@ -315,7 +315,7 @@ def test_deserialize_result(self): ) ) - result = model.ListVectorsIndexResult() + result = model.ListVectorIndexesResult() deserializer = [_serde.deserialize_output_vector_json_model] serde.deserialize_output(result, op_output, custom_deserializer=deserializer)