@@ -183,10 +183,11 @@ def parse_query_response(response: dict):
183
183
for match in response ['results' ]:
184
184
namespace = match .get ('namespace' , '' )
185
185
m = []
186
- for item in match ['matches' ]:
187
- sc = ScoredVector (id = item ['id' ], score = item .get ('score' , 0.0 ), values = item .get ('values' , []),
188
- metadata = item .get ('metadata' , {}))
189
- m .append (sc )
186
+ if 'matches' in match :
187
+ for item in match ['matches' ]:
188
+ sc = ScoredVector (id = item ['id' ], score = item .get ('score' , 0.0 ), values = item .get ('values' , []),
189
+ metadata = item .get ('metadata' , {}))
190
+ m .append (sc )
190
191
res .append (SingleQueryResults (matches = m , namespace = namespace ))
191
192
return QueryResponse (results = res , _check_type = False )
192
193
@@ -213,7 +214,7 @@ def stub_class(self):
213
214
return VectorServiceStub
214
215
215
216
@sentry
216
- def upsert (self , vectors , ** kwargs ):
217
+ def upsert (self , vectors , async_req = False , ** kwargs ):
217
218
def _vector_transform (item ):
218
219
if isinstance (item , GRPCVector ):
219
220
return item
@@ -224,16 +225,19 @@ def _vector_transform(item):
224
225
225
226
request = UpsertRequest (vectors = list (map (_vector_transform , vectors )), ** kwargs )
226
227
timeout = kwargs .pop ('timeout' , None )
227
-
228
- response = self ._wrap_grpc_call (self .stub .Upsert , request , timeout = timeout )
229
- return parse_upsert_response (response )
228
+ if async_req :
229
+ return self ._wrap_grpc_call (self .stub .Upsert .future , request , timeout = timeout )
230
+ else :
231
+ return self ._wrap_grpc_call (self .stub .Upsert , request , timeout = timeout )
230
232
231
233
@sentry
232
- def delete (self , * args , ** kwargs ):
234
+ def delete (self , * args , async_req = False , ** kwargs ):
233
235
request = DeleteRequest (* args , ** kwargs )
234
236
timeout = kwargs .pop ('timeout' , None )
235
- response = self ._wrap_grpc_call (self .stub .Delete , request , timeout = timeout )
236
- return response
237
+ if async_req :
238
+ return self ._wrap_grpc_call (self .stub .Delete .future , request , timeout = timeout )
239
+ else :
240
+ return self ._wrap_grpc_call (self .stub .Delete , request , timeout = timeout )
237
241
238
242
@sentry
239
243
def fetch (self , * args , ** kwargs ):
0 commit comments