|
6 | 6 | from functools import wraps |
7 | 7 | from typing import NamedTuple, Optional, Dict, Iterable |
8 | 8 |
|
9 | | -import grpc |
10 | 9 | import certifi |
| 10 | +import grpc |
11 | 11 | from google.protobuf import json_format |
12 | | - |
| 12 | +from grpc._channel import _InactiveRpcError, _MultiThreadedRendezvous |
| 13 | +from pinecone import FetchResponse, QueryResponse, ScoredVector, SingleQueryResults, UpsertResponse, \ |
| 14 | + DescribeIndexStatsResponse |
13 | 15 | from pinecone.config import Config |
14 | | -from pinecone.core.grpc.protos.vector_column_service_pb2_grpc import VectorColumnServiceStub |
15 | | -from pinecone.core.grpc.protos import vector_service_pb2, vector_column_service_pb2 |
16 | | -from pinecone.core.utils import _generate_request_id, dict_to_proto_struct, fix_tuple_length, proto_struct_to_dict |
17 | | -from pinecone.core.utils.sentry import sentry_decorator as sentry |
18 | | -from pinecone.core.grpc.protos.vector_service_pb2_grpc import VectorServiceStub |
19 | | -from pinecone.core.grpc.retry import RetryOnRpcErrorClientInterceptor, RetryConfig |
20 | | -from pinecone.core.utils.constants import MAX_MSG_SIZE, REQUEST_ID, CLIENT_VERSION |
| 16 | +from pinecone.core.client.model.namespace_summary import NamespaceSummary |
| 17 | +from pinecone.core.client.model.vector import Vector as _Vector |
21 | 18 | from pinecone.core.grpc.protos.vector_service_pb2 import Vector as GRPCVector, QueryVector as GRPCQueryVector, \ |
22 | 19 | UpsertRequest, DeleteRequest, \ |
23 | 20 | QueryRequest, FetchRequest, DescribeIndexStatsRequest |
24 | | -from pinecone.core.client.model.vector import Vector as _Vector |
25 | | -from pinecone.core.client.model.namespace_summary import NamespaceSummary |
26 | | -from pinecone import FetchResponse, QueryResponse, ScoredVector, SingleQueryResults, UpsertResponse, \ |
27 | | - DescribeIndexStatsResponse |
28 | | -from grpc._channel import _InactiveRpcError, _MultiThreadedRendezvous |
29 | | -from pinecone.exceptions import PineconeProtocolError, PineconeException |
| 21 | +from pinecone.core.grpc.protos.vector_service_pb2_grpc import VectorServiceStub |
| 22 | +from pinecone.core.grpc.retry import RetryOnRpcErrorClientInterceptor, RetryConfig |
| 23 | +from pinecone.core.utils import _generate_request_id, dict_to_proto_struct, fix_tuple_length |
| 24 | +from pinecone.core.utils.constants import MAX_MSG_SIZE, REQUEST_ID, CLIENT_VERSION |
| 25 | +from pinecone.core.utils.sentry import sentry_decorator as sentry |
| 26 | +from pinecone.exceptions import PineconeException |
30 | 27 |
|
31 | 28 | __all__ = ["GRPCIndex", "GRPCVector", "GRPCQueryVector"] |
32 | 29 |
|
@@ -198,13 +195,15 @@ def parse_upsert_response(response): |
198 | 195 |
|
199 | 196 |
|
200 | 197 | def parse_stats_response(response: dict): |
| 198 | + fullness = response.get('index_fullness', 0.0) |
201 | 199 | dimension = response.get('dimension', 0) |
202 | 200 | summaries = response.get('namespaces', {}) |
203 | 201 | namespace_summaries = {} |
204 | 202 | for key in summaries: |
205 | 203 | vc = summaries[key].get('vectorCount', 0) |
206 | 204 | namespace_summaries[key] = NamespaceSummary(vector_count=vc) |
207 | | - return DescribeIndexStatsResponse(namespaces=namespace_summaries, dimension=dimension, _check_type=False) |
| 205 | + return DescribeIndexStatsResponse(namespaces=namespace_summaries, dimension=dimension, index_fullness=fullness, |
| 206 | + _check_type=False) |
208 | 207 |
|
209 | 208 |
|
210 | 209 | class PineconeGrpcFuture: |
@@ -232,12 +231,13 @@ def result(self, timeout=None): |
232 | 231 | except _MultiThreadedRendezvous as e: |
233 | 232 | raise PineconeException(e._state.debug_error_string) from e |
234 | 233 |
|
235 | | - def exception(self,timeout=None): |
| 234 | + def exception(self, timeout=None): |
236 | 235 | return self._delegate.exception(timeout=timeout) |
237 | 236 |
|
238 | | - def traceback(self,timeout=None): |
| 237 | + def traceback(self, timeout=None): |
239 | 238 | return self._delegate.traceback(timeout=timeout) |
240 | 239 |
|
| 240 | + |
241 | 241 | class GRPCIndex(GRPCIndexBase): |
242 | 242 |
|
243 | 243 | @property |
@@ -311,40 +311,3 @@ def describe_index_stats(self, **kwargs): |
311 | 311 | response = self._wrap_grpc_call(self.stub.DescribeIndexStats, request, timeout=timeout) |
312 | 312 | json_response = json_format.MessageToDict(response) |
313 | 313 | return parse_stats_response(json_response) |
314 | | - |
315 | | - |
316 | | -class CIndex(GRPCIndex): |
317 | | - |
318 | | - @property |
319 | | - def stub_class(self): |
320 | | - return VectorColumnServiceStub |
321 | | - |
322 | | - def upsert(self, |
323 | | - request: 'vector_column_service_pb2.UpsertRequest', |
324 | | - timeout: int = None, |
325 | | - metadata: Dict[str, str] = None): |
326 | | - return self._wrap_grpc_call(self.stub.Upsert, request, timeout=timeout, metadata=metadata) |
327 | | - |
328 | | - def delete(self, |
329 | | - request: 'vector_column_service_pb2.DeleteRequest', |
330 | | - timeout: int = None, |
331 | | - metadata: Dict[str, str] = None): |
332 | | - return self._wrap_grpc_call(self.stub.Delete, request, timeout=timeout, metadata=metadata) |
333 | | - |
334 | | - def fetch(self, |
335 | | - request: 'vector_column_service_pb2.FetchRequest', |
336 | | - timeout: int = None, |
337 | | - metadata: Dict[str, str] = None): |
338 | | - return self._wrap_grpc_call(self.stub.Fetch, request, timeout=timeout, metadata=metadata) |
339 | | - |
340 | | - def query(self, |
341 | | - request: 'vector_column_service_pb2.QueryRequest', |
342 | | - timeout: int = None, |
343 | | - metadata: Dict[str, str] = None): |
344 | | - return self._wrap_grpc_call(self.stub.Query, request, timeout=timeout, metadata=metadata) |
345 | | - |
346 | | - def describe_index_stats(self, |
347 | | - request: 'vector_column_service_pb2.DescribeIndexStatsRequest', |
348 | | - timeout: int = None, |
349 | | - metadata: Dict[str, str] = None): |
350 | | - return self._wrap_grpc_call(self.stub.DescribeIndexStats, request, timeout=timeout, metadata=metadata) |
0 commit comments