
    Ig                    ^   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlZd dlZd dlmZ d dlmZmZ d dlmZ d dlmZ d dlm Z  d d	l!m"Z" d d
l#m$Z$m%Z% d dl&m'Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:  G d de"      Z;y)    N)get_all_start_methods)Any	AwaitableCallableDictIterableListMappingOptionalSequenceTupleTypeUnionget_args)Compression)Url	parse_url)grpc)	construct)
BearerAuth)
QdrantBase)get_async_channelget_channel)common_types)get_args_subscribed)
GrpcToRest
RestToGrpc!grpc_payload_schema_to_field_type)	ApiClientSyncApismodels)ParallelWorkerPool)GrpcBatchUploader)RestBatchUploader)BaseUploaderc            )       H(    e Zd Z	 	 	 	 	 	 	 	 	 	 	 ddee   dee   dededee   dee   dee   d	ee   d
ee   deeeef      dee	e
g ef   e
g ee   f   f      def fdZedefd       Zddee   deddfdZededeee   eee   ee   f   fd       ZddZddZddZddZddZddZddZddZddZddZedej>                  fd       Z edejB                  fd       Z"edejF                  fd        Z$edejJ                  fd!       Z&edej>                  fd"       Z'edejB                  fd#       Z(edejF                  fd$       Z)edejJ                  fd%       Z*ede+e,   fd&       Z-ede+e,   fd'       Z.	 	 dd(ed)e/e0jb                     d*ee0jd                     d	ee   dede3e3e0jh                        fd+Z5	 	 	 	 	 	 	 	 	 	 	 dd(ed,e	e/e   eee3e   f   e0jl                  e0jn                  e0jp                  f   d-ee0jr                     d.ee0jt                     d/ed0ee   d1e	ee/e   e0jv                  f   d2e	ee/e   f   d3ee   d4ed*ee0jd                     d5ee0jx                     d	ee   dede3e0jh                     fd6Z=	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd(ed7ee0j|                     d8ee   d9e	e0j~                  e3e0j~                     df   d-ee0jr                     d.ee0jt                     d/ed0ee   d1e	ee/e   e0jv                  f   d2e	ee/e   f   d3ee   d:ee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede0j                  f"d;ZB	 	 dd(ed)e/e0j                     d*ee0jd                     d	ee   dede3e0j                     fd<ZD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd(ed=ed7e	e0j                  e3e   e3e3e      e0j                  e0j|                  e0jp                  e0j                  df   d8ee   d9e	e0j~                  e3e0j~                     df   d-ee0jr                     d.ee0jt                     d/ed>ed1e	ee/e   e0jv                  f   d2e	ee/e   f   d3ee   d?ee0j                     d:ee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede0j                  f&d@ZJ	 	 	 	 	 	 	 	 	 	 	 dd(ed,e	e/e   eee3e   f   e0jl                  e0jn                  e0jp                  f   d=ed-eeKjr                     d.eeKjt                     d/ed>ed1e	ee/e   eKjv                  f   d2e	ee/e   f   d3ee   d?ee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede0j                  f dAZL	 	 	 	 	 	 	 dd(ed-ee0jr                     d/edBed8ee   d*ee0jd                     d5ee0jx                     d	ee   dede0j                  fdCZN	 	 	 	 	 	 	 dd(ed-ee0jr                     d/edBed8ee   d*ee0jd                     d5ee0jx                     d	ee   dede0j                  fdDZP	 	 dd(ed)e/e0j                     d*ee0jd                     d	ee   dede3e3e0jh                        fdEZR	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd(edFee/e0j                        dGee/e0j                        d-ee0jr                     d.ee0jt                     d/ed0ed1e	ee3e   e0jv                  f   d2e	ee3e   f   d3ee   d8ee   d:ee0j                     dHee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede3e0jh                     f$dIZU	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd(ed=edFee/e	e0j                  e3e   f         dGee/e	e0j                  e3e   f         d-eeKjr                     d.eeKjt                     d/ed>ed3ee   d1e	ee/e   eKjv                  f   d2e	ee/e   f   d8ee   d:eeKj                     d?ee0j                     dHee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede0j                  f(dJZV	 	 	 	 	 	 	 	 	 	 	 	 	 dd(edKee0j                     dLee/e0j                        d-ee0jr                     d.ee0jt                     d/ed0ed1e	ee3e   e0jv                  f   d2e	ee3e   f   d8ee   d:ee0j                     d*ee0jd                     d5ee0jx                     d	ee   dede3e0jh                     f dMZY	 	 dd(ed)e/e0j                     d*ee0jd                     d	ee   dede3e3e0jh                        fdNZ[	 	 	 	 	 	 	 	 	 dd(edOee0jr                     d/edPee0j                     d0ee0j                     d1e	ee/e   e0jv                  f   d2e	ee/e   f   d*ee0jd                     d5ee0jx                     d	ee   dedee3e0j                     ee0j                     f   fdQZ^	 	 	 	 dd(edRee0jr                     dSed5ee0jx                     d	ee   dede0j                  fdTZ`	 	 	 	 	 	 dd(edUedVee0jr                     d/edSed	ee   d*ee0jd                     d5ee0jx                     dede0j                  fdWZb	 	 	 dd(edXe0j                  dYedZee0j                     d5ee0jx                     dede0j                  fd[Zf	 	 	 dd(edXe/e0j                     dYedZee0j                     d5ee0jx                     dede0j                  fd\Zh	 	 	 dd(ed]e/e   dXe0j                  dYedZee0j                     d5ee0jx                     dede0j                  fd^Zj	 	 	 	 	 dd(ed_e/e0j                     d1e	ee/e   e0jv                  f   d2e	ee/e   f   d*ee0jd                     d5ee0jx                     d	ee   dede3e0j                     fd`ZkeldXe0j                  deej                  eejx                     f   fda       ZmeldXe0j                  d5ee0jx                     deKj                  fdb       Zneldcej                  de3ej                     fdd       ZoeldXe0j                  deee3eKj                        eeKjr                     f   fde       Zq	 	 	 dd(edce0j                  dYedZee0j                     d5ee0jx                     dede0j                  fdfZr	 	 	 	 dd(edge0j                  dXe0j                  dUee   dYedZee0j                     d5ee0jx                     dede0j                  fdhZt	 	 	 dd(edge0j                  dXe0j                  dYedZee0j                     d5ee0jx                     dede0j                  fdiZu	 	 	 dd(edje/e   dXe0j                  dYedZee0j                     d5ee0jx                     dede0j                  fdkZv	 	 	 dd(edce0j                  dYedZee0j                     d5ee0jx                     dede0j                  fdlZw	 	 dd(edme/e0j                     dYedZee0j                     dede3e0j                     fdnZy	 ddoe/e0j                     d	ee   dedefdpZ{d(edede0j                  fdqZ}dede0j                  fdrZ~dede0j                  fdsZd(edede0j                  fdtZd(ededefduZ	 	 	 	 	 	 	 dd(edvee0j                     dwee0j
                     dxee0j                     dyee0j                     dzee0j                     d	ee   d{eeee0j                  f      dedefd|Z	 dd(ed	ee   dedefd}Z	 	 	 	 	 	 	 	 	 	 	 	 dd(edxe	e0j                  eee0j                  f   f   d~ee   dee   dee   dee   dyee0j                     dvee0j                     dee0j                     dzee0j                     dee0j                      d	ee   d{eeee0j                  f      dee0j"                     dedef dZ	 	 	 	 	 	 	 	 	 	 	 	 dd(edxe	e0j                  eee0j                  f   f   d~ee   dee   dee   dee   dyee0j                     dvee0j                     dee0j                     dzee0j                     dee0j                      d	ee   d{eeee0j                  f      dee0j"                     dedef dZedee   fd       Z	 	 	 	 dded(edededee   dYed5ee0jx                     ddfdZ	 	 	 	 	 	 dd(edee0j                     dededee   dedYed5ee0jx                     deddfdZ	 	 	 	 	 	 dd(edXee0j4                     dededee   dedYed5ee0jx                     deddfdZ	 	 	 	 	 	 	 	 dd(ed]e	eee0jp                  f   e0jp                  ee0j8                     f   dgeeeeef         d_eee0j                        dededee   dedYed5ee0jx                     deddfdZ	 	 	 	 dd(ededee0j<                     dee0j<                     dYedZee0j                     dede0j                  fdZ	 	 dd(ededYedZee0j                     dede0j                  fdZd(edede3e0jB                     fdZ	 dd(edYededee0jB                     fdZ	 dd(ededYededee   f
dZdede3e0jB                     fdZddYedede0jB                  fdZ	 ddedYededee   fdZ	 	 	 	 dd(ededee   dee   dee0jP                     dYededee   fdZd(ededede3e0jB                     fdZ	 dd(ededYededee0jB                     f
dZ	 dd(edededYededee   fdZ	 	 	 	 dd(edededee   dee   dee0jP                     dYededee   fdZdedede0j\                  fdZdede0j\                  fdZdede0j\                  fdZ	 	 	 	 dd(ede0jd                  dee   dee   dee3e      d	ee   dedefdZ	 dd(ede0jd                  d	ee   dedef
dZde0jj                  fdZ xZS )QdrantRemoteNurlport	grpc_portprefer_grpchttpsapi_keyprefixtimeouthostgrpc_optionsauth_token_providerkwargsc                 	   t        |   d#i | || _        || _        |
| _        ||n|d u| _        | j
                  rdnd| _        |xs d| _        t        | j                        dkD  r&| j                  d   dk7  rd| j                   | _        ||	t        d| d|	       |	-|	j                  d      s|	j                  d	      rt        d
      |r|j                  d      rd| }t        |      }|j                  |j                  c| _        | _        |j                   r%|j                   dk(  | _        |j                   | _        | j                  r| j                  n|| _        | j                  r'|j"                  rt        d| d|j"                         | j                  dvr*t        d| j                         |	xs d| _        || _        |t%        j&                  |      nd | _        || _        || _        |j/                  dd       }|%| j                  dv rt1        j2                  d d      }|j/                  dd      }g | _        |j/                  di       | _        |P| j                  dk(  rt9        j:                  d       || j6                  d<   | j4                  j=                  d|f       |j/                  dd       }|'t?        |t@              stC        dtE        |             |t@        jF                  k(  rt        d      || _$        | j                  | j                   d| j                   n| j                  }| j                   d| | j                   | _%        | j6                  |d|| _&        ||| jL                  d<   | j(                  | j(                  | jL                  d<   | j,                  H| j                  dk(  rt9        j:                  d        tO        | j,                        }|| jL                  d!<   tQ        d#d"| jJ                  i| jL                  | _)        d | _*        d | _+        d | _,        d | _-        d | _.        d | _/        d | _0        d | _1        d | _2        d | _3        d| _4        y )$Nr,   http r   /z+Only one of (url, host) can be set. url is z
, host is zhttp://zhttps://zk`host` param is not expected to contain protocol (http:// or https://). Try to use `url` parameter instead.	localhostz//z9Prefix can be set either in `url` or in `prefix`. url is z, prefix is )r5   r,   zUnknown scheme: limits)r8   z	127.0.0.1)max_connectionsmax_keepalive_connectionshttp2Fmetadataz,Api key is used with an insecure connection.zapi-keygrpc_compressionzLExpected 'grpc_compression' to be of type grpc.Compression or None, but got zfgrpc.Compression.Deflate is not supported. Try grpc.Compression.Gzip or grpc.Compression.NoCompression:z://)headersr<   r/   z8Auth token provider is used with an insecure connection.authr0    )5super__init___prefer_grpc
_grpc_port_grpc_options_https_scheme_prefixlen
ValueError
startswithr   r0   r)   _host_portschemepathmathceil_timeout_api_key_auth_token_providerpophttpxLimits_grpc_headers_rest_headerswarningswarnappend
isinstancer   	TypeErrortypeDeflate_grpc_compressionrest_uri
_rest_argsr   r    openapi_client_grpc_channel_grpc_points_client_grpc_collections_client_grpc_snapshots_client_grpc_root_client_aio_grpc_channel_aio_grpc_points_client_aio_grpc_collections_client_aio_grpc_snapshots_client_aio_grpc_root_client_closed)selfr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   
parsed_urlr9   r<   r>   addressbearer_auth	__class__s                      X/var/www/html/answerous/venv/lib/python3.12/site-packages/qdrant_client/qdrant_remote.pyrD   zQdrantRemote.__init__/   s]   " 	"6"'#)$0egT6I"&++w6|t||q T\\!_%;t||n-DL?t/J3%zZ^Y_`aa!;tz?Z6 
 ~~k* 3%j'nJ%/__joo"DJ
  (//7:)00'+zztDJ||
 !U,z.?A 
 ||#44 #3DLL>!BCC,DJDJ #*"5DIIg4 	  $7!Hd+>zz77 dVWX

7E*#ZZ
B7||v%LM -4Dy)%%y'&:; 39**=OQU2V'
;K[0Y559:J5K4LN  {222x  "226**2HTZZL$**.djj<<.G9T\\NC&*&8&85SFS(.DOOH%==$)-DOOI&$$0||v%XY$T%>%>?K&1DOOF#3; 4
4
oo4

 ">B HL%DH#<@!%BF$LP)HL'@D""    returnc                     | j                   S N)rq   rr   s    rw   closedzQdrantRemote.closed   s    ||rx   
grpc_gracec                 X   t        | d      r'| j                  	 | j                  j                          t        | d      rL| j                  @	 t        j                         }|j                  | j                  j                  |             	 | j                  j                          d| _        y # t        $ r t	        j
                  d       Y w xY w# t        $ r t	        j
                  d       Y gt        $ r Y qw xY w# t        $ r t	        j
                  d       Y d| _        y w xY w)Nrg   zKUnable to close grpc_channel. Connection was interrupted on the server siderl   )gracezOUnable to close aio_grpc_channel. Connection was interrupted on the server sidezNUnable to close http connection. Connection was interrupted on the server sideT)hasattrrg   closeAttributeErrorloggingwarningrl   asyncioget_running_loopcreate_taskRuntimeErrorrf   	Exceptionrq   )rr   r~   r3   loops       rw   r   zQdrantRemote.close   s   4)d.@.@.L""((* 4,-$2H2H2T//1  !7!7!=!=J!=!OP	%%' / " a " e   
  	OO` 	s;   B/ ?C D /CCC>3C>=C>D)(D)c                     t        |       }|j                  |j                  |j                  |j                  f\  }}}}||||fS r{   )r   rP   r0   r)   rQ   )r(   parse_resultrP   r0   r)   r.   s         rw   
_parse_urlzQdrantRemote._parse_url   sP    %cN	&
"dF tT6))rx   c           	         | j                   rt        d      | j                  ^t        | j                  | j
                  | j                  | j                  | j                  | j                  | j                        | _        y y Nz=Client was closed. Please create a new QdrantClient instance.)r0   r)   sslr=   optionscompressionr2   )rq   r   rg   r   rN   rF   rH   rZ   rG   rc   rV   r|   s    rw   _init_grpc_channelzQdrantRemote._init_grpc_channel   sn    <<^__%!,ZZ__KK++** 22 %)$=$=
"D &rx   c           	         | j                   rt        d      | j                  ^t        | j                  | j
                  | j                  | j                  | j                  | j                  | j                        | _        y y r   )rq   r   rl   r   rN   rF   rH   rZ   rG   rc   rV   r|   s    rw   _init_async_grpc_channelz%QdrantRemote._init_async_grpc_channel   sl    <<^__!!)%6ZZ__KK++** 22$($=$=&D" *rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   
PointsStubrg   rh   r|   s    rw   _init_grpc_points_clientz%QdrantRemote._init_grpc_points_client  s%    !#'??43E3E#F rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   CollectionsStubrg   ri   r|   s    rw   _init_grpc_collections_clientz*QdrantRemote._init_grpc_collections_client  s'    !(,(<(<T=O=O(P%rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   SnapshotsStubrg   rj   r|   s    rw   _init_grpc_snapshots_clientz(QdrantRemote._init_grpc_snapshots_client  s'    !&*&8&89K9K&L#rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   
QdrantStubrg   rk   r|   s    rw   _init_grpc_root_clientz#QdrantRemote._init_grpc_root_client  s%    !!%1C1C!Drx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   r   rl   rm   r|   s    rw   _init_async_grpc_points_clientz+QdrantRemote._init_async_grpc_points_client  s%    %%''+t7M7M'N$rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   r   rl   rn   r|   s    rw   #_init_async_grpc_collections_clientz0QdrantRemote._init_async_grpc_collections_client  s'    %%',0,@,@AWAW,X)rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   r   rl   ro   r|   s    rw   !_init_async_grpc_snapshots_clientz.QdrantRemote._init_async_grpc_snapshots_client  s'    %%'*.*<*<T=S=S*T'rx   c                 l    | j                          t        j                  | j                        | _        y r{   )r   r   r   rl   rp   r|   s    rw   _init_async_grpc_root_clientz)QdrantRemote._init_async_grpc_root_client#  s%    %%'%)__T5K5K%L"rx   c                 R    | j                   | j                          | j                   S zgRPC client for collections methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )rn   r   r|   s    rw   async_grpc_collectionsz#QdrantRemote.async_grpc_collections'  s(     ,,4446000rx   c                 R    | j                   | j                          | j                   S z}gRPC client for points methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )rm   r   r|   s    rw   async_grpc_pointszQdrantRemote.async_grpc_points2  s(     ''///1+++rx   c                     t        j                  dt        d       | j                  | j	                          | j                  S )gRPC client for snapshots methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        z{async_grpc_snapshots is deprecated and will be removed in a future release. Use `AsyncQdrantRemote.grpc_snapshots` instead.   
stacklevel)r\   r]   DeprecationWarningro   r   r|   s    rw   async_grpc_snapshotsz!QdrantRemote.async_grpc_snapshots=  sB     	 J	

 **2224...rx   c                     t        j                  dt        d       | j                  | j	                          | j                  S ){gRPC client for info methods

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        zqasync_grpc_root is deprecated and will be removed in a future release. Use `AsyncQdrantRemote.grpc_root` instead.r   r   )r\   r]   r   rp   r   r|   s    rw   async_grpc_rootzQdrantRemote.async_grpc_rootM  s?     		

 %%---/)))rx   c                 R    | j                   | j                          | j                   S r   )ri   r   r|   s    rw   grpc_collectionszQdrantRemote.grpc_collections]  s(     ((0..0,,,rx   c                 R    | j                   | j                          | j                   S r   )rh   r   r|   s    rw   grpc_pointszQdrantRemote.grpc_pointsh  s(     ##+))+'''rx   c                 R    | j                   | j                          | j                   S )r   )rj   r   r|   s    rw   grpc_snapshotszQdrantRemote.grpc_snapshotss  s(     &&.,,.***rx   c                 R    | j                   | j                          | j                   S )r   )rk   r   r|   s    rw   	grpc_rootzQdrantRemote.grpc_root~  s(     !!)'')%%%rx   c                     | j                   S ztREST Client

        Returns:
            An instance of raw REST API client, generated from OpenAPI schema
        rf   r|   s    rw   restzQdrantRemote.rest       """rx   c                     | j                   S r   r   r|   s    rw   r5   zQdrantRemote.http  r   rx   collection_namerequestsconsistencyc           
      f   | j                   r |D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||      ||n| j                        }|j                  D cg c]/  }|j                  D cg c]  }t        j                   |       c}1 c}}S |D cg c]3  }t        |t        j"                        rt        j$                  |      n|5 }}| j&                  j(                  j+                  |||t        j,                  |            j                  }	|	J d       |	S c c}w c c}w c c}}w c c}w )N)r   search_pointsread_consistencyr/   r/   searches)r   r   r/   search_request_batchzSearch batch returned None)rE   r_   r!   SearchRequestr   convert_search_requestr   ReadConsistencyconvert_read_consistencyr   SearchBatchr   SearchBatchPointsrT   resultr   convert_scored_pointSearchPointsconvert_search_pointsr5   
points_apisearch_batch_pointsSearchRequestBatch
rr   r   r   r   r/   r3   rgrpc_reshithttp_ress
             rw   search_batchzQdrantRemote.search_batch  s     "  "!V%9%9: 55aIH  +':6;Q;Q'RS(AA+N151A1A1M1M&&$3"*%0#	 $+#6DMM 2N 2H U]TcTcOPJ#005J  " 9C1dFWFW8X11!4^__H 
 		$$88$3 +#)/)B)BH)U	 9 
 &  'E)EE'OO. Ks#   9FF()F#F(8F.#F(query_vectorquery_filtersearch_paramslimitoffsetwith_payloadwith_vectorsscore_thresholdappend_payloadshard_key_selectorc                    |
st        j                  d       |
}t        |t        j                        r|j                         }| j                  r|d }d }t        |t        j                        r|j                  }|j                  }nt        |t        j                        rM|j                  }t        j                  |j                  j                        }|j                  j                  }n&t        |t               r|d   }|d   }nt#        |      }t        |t$        j&                        rt)        j*                  |      }t        |t$        j,                        rt)        j.                  |      }t        |t1        t$        j2                              rt)        j4                  |      }t        |t1        t$        j6                              rt)        j8                  |      }t        |t1        t$        j:                              rt)        j<                  |      }t        |t1        t$        j>                              rt)        j@                  |      }| jB                  jE                  t        jF                  ||||||||||	||||      ||n| jH                        }|jJ                  D cg c]  }tM        jN                  |       c}S t        |t               rt        j                  |d   |d         }t        |t        j&                        rtM        j*                  |      }t        |t        j,                        rtM        j.                  |      }t        |t        jP                        rtM        jR                  |      }| jT                  jV                  jY                  |||t%        jZ                  ||||||||	|		      
      }|jJ                  }|J d       |S c c}w )NzUUsage of `append_payload` is deprecated. Please consider using `with_payload` insteaddatar      model)r   vectorvector_namefilterr   r   r   r   paramsr   r   r/   sparse_indicesr   r   namer   )	r   r   r   r   r   with_vectorr   r   	shard_key)r   r   r/   search_requestSearch returned None).r   r   r_   npndarraytolistrE   typesNamedVectorr   r   NamedSparseVectorr   SparseIndicesindicesvaluestuplelistr!   Filterr   convert_filterSearchParamsconvert_search_paramsr   WithPayloadInterfaceconvert_with_payload_interface
WithVectorconvert_with_vectorsr   r   ShardKeySelectorconvert_shard_key_selectorr   Searchr   rT   r   r   r   WithPayloadSelectorconvert_with_payload_selectorr5   r   r   r   )rr   r   r   r   r   r   r   r   r   r   r   r   r   r/   r3   r   r   r   resr   search_resultr   s                         rw   searchzQdrantRemote.search  sA   . OOg *LlBJJ/'..0LK!N,(9(9:%,,*//L%*A*AB*//!%!3!39L9L9T9T!U%,,33L%0*1o%al+,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"'+'7'7'>'>!!$3! +'!!-!-($3%0##1'9  $+?# (? (C( EHJJOSJ33C8OO ,.$00l1ol[\o^,4)88|L-):):; * @ @ O,(@(@A)GGU II00>> /'%33''!( ,!-$30
 	 ? M  9F8L8LF%='==%MC Ps   .O$queryusingprefetchlookup_fromc                 4	   | j                   rt        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        t        j                              rt        j                   |	      }	t        |
t        t        j"                              rt        j$                  |
      }
t        |t        j&                        rt        j(                  |      }t        |t        t        j*                              rt        j,                  |      }t        |t        t        j.                              rt        j0                  |      }| j2                  j	                  t5        j6                  |||||||
|	|||||||      ||n| j8                        }|j:                  D cg c]  }t=        j>                  |       }}t        j@                  |      S t        |t4        j                        rt=        j                  |      }t        |t4        jB                        rt=        j                  |      }t        |t              r>|D cg c]3  }t        |t4        jB                        rt=        j                  |      n|5 }}t        |t4        j                        rt=        j                  |      }t        |t4        j                        rt=        j                  |      }t        |	t4        jD                        rt=        jF                  |	      }	t        |t4        j&                        rt=        j(                  |      }t        jH                  ||||||||||
|	|      }| jJ                  jL                  jO                  ||||      }|j:                  }|J d       |S c c}w c c}w c c}w )Nr   )r   r  r  r   r   r   r   r   r   r   r  r  r/   r   r   r   points)r   r  r  r  r   r   r   r   r   r   r   r  )r   r   r/   query_requestr   )(rE   r_   r   r!   Queryr   convert_queryPrefetchconvert_prefetch_queryr  r  r  r  r  r   r  r  r  r  LookupLocationconvert_lookup_locationr   r   r  r  r   r   QueryPointsrT   r   r   r   QueryResponsePrefetchQueryr  r  QueryRequestr5   r   query_points)rr   r   r  r  r  r   r   r   r   r   r   r   r  r   r   r/   r3   pr  r   scored_pointsr#  query_resultr   s                           rw   r.  zQdrantRemote.query_pointsG  s   & %&,,!78"007(FOO4&==hGH(D) & =Gq&//<ZJ55a8`aa 
 ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"&*&6&6&<&<  $3%'!!-!-($3 +#'9%0" $+?% '= 'C* NQZZXcZ<<SAXMX''}== %,"007(D$6$67%<<XF(D)
 &	  "!T%7%78 55a8  ,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M"//,!#$ /()'M  99//<< /'+	 = L 6B5H5HF%='==%MK^ Ys   
8RR38Rc                    | j                   r|D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||      ||n| j                        }|j                  D cg c]C  }t        j                  |j                  D cg c]  }t!        j"                  |       c}      E c}}S |D cg c]3  }t        |t        j$                        rt!        j&                  |      n|5 }}| j(                  j*                  j-                  |||t        j.                  |            j                  }	|	J d       |	S c c}w c c}w c c}}w c c}w )N)r   r.  r   r/   r   r!  r   )r   r   r/   query_request_batchzQuery batch returned None)rE   r_   r!   r-  r   convert_query_requestr   r   r   r   
QueryBatchr   QueryBatchPointsrT   r   r+  r   r   r*  convert_query_pointsr5   r   query_batch_pointsQueryRequestBatchr   s
             rw   r8  zQdrantRemote.query_batch_points  s     "  "!V%8%89 44QHH  +':6;Q;Q'RS(AA+N040@0@0K0K%%$3!)%0#	 $+#6DMM 1L 1H "	  $$LMHHUSJ;;C@U  " 8B!TEUEU7V003\]]H 
 		$$77$3 +#(.(@(@((S	 8 
 &  'D)DD'OU0 Vs#   9F2"F<8F7
F<&8G7F<group_by
group_sizewith_lookupc                 0
   | j                   rt        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      g}t        |t              r>|D cg c]3  }t        |t        j                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |
t        t        j                              rt        j                   |
      }
t        |t        t        j"                              rt        j$                  |      }t        |t        j&                        rt        j(                  |      }t        |t*              rt-        j&                  |      }t        |t        j.                        rt        j0                  |      }t        |t        t        j2                              rt        j4                  |      }t        |t        t        j6                              rt        j8                  |      }| j:                  j=                  t-        j>                  di d|d|d|d|d|d|d	|
d
|d|d|d|d|	d|d|d|d|d|||n| j@                        jB                  }tE        jF                  |      S t        |t,        j                        rtE        j                  |      }t        |t,        jH                        rtE        j                  |      }t        |t              r>|D cg c]3  }t        |t,        jH                        rtE        j                  |      n|5 }}t        |t,        j                        rtE        j                  |      }t        |t,        j                        rtE        j                  |      }t        |
t,        jJ                        rtE        jL                  |
      }
t        |t,        j&                        rtE        j(                  |      }t        |t,        j.                        rtE        j0                  |      }t        jN                  ||||||||||	||
||      }| jP                  jR                  jU                  ||||      }|J d       |jB                  S c c}w c c}w )Nr   
collectionr   r  r  r   r   r   r   r   r   r  r:  r;  r<  r  r/   r   r   r   )r   r  r  r  r   r   r   r   r:  r;  r   r   r<  r  )r   r   r/   query_groups_requestz%Query points groups API returned NonerB   )+rE   r_   r   r!   r$  r   r%  r&  r'  r  r  r  r  r  r   r  r  r  r  
WithLookupconvert_with_lookupstrr   r(  r)  r   r   r  r  r   QueryGroupsQueryPointGroupsrT   r   r   convert_groups_resultr,  r  r  QueryGroupsRequestr5   r   query_points_groups)rr   r   r:  r  r  r  r   r   r   r;  r   r   r   r<  r  r   r   r/   r3   r/  r   r#  r1  s                          rw   rH  z QdrantRemote.query_points_groups  s   < %&,,!78"007(FOO4&==hGH(D) & =Gq&//<ZJ55a8`aa 
 ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'8'89(<<[I+s+"ooE+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"/3/?/?/K/K%% $3 & (	
   ". ". ) %4   &  * !, !, $  (:!" &1#& $+?) 0L 0* f+ , 33F;;%,"007(D$6$67%<<XF(D)
 &	  "!T%7%78 55a8  ,4)88|L-):):; * @ @ O,(@(@A)GGU+t7(<<[I+t':':;(@@M"55,!#$ /!%()''M"  99//CC /'%2	 D L  +T-TT+&&&[~s   
8T8Tc                    | j                   rd }d }t        |t        j                        rt	        j
                  |      }t        |t              rt        j                  |      }t        |t        j                        r|j                  }|j                  }nt        |t        j                        rM|j                  }t        j                  |j                  j                        }|j                  j                  }n&t        |t               r|d   }|d   }nt#        |      }t        |t        j$                        rt	        j&                  |      }t        |t        j(                        rt	        j*                  |      }t        |t-        t        j.                              rt	        j0                  |      }t        |	t-        t        j2                              rt	        j4                  |	      }	t        |t-        t        j6                              rt	        j8                  |      }t        |t-        t        j:                              rt	        j<                  |      }| j>                  jA                  t        jB                  di d|d|d|d	|d
|d|d|	d|d|d|
d|d|d|d|d|d|||n| jD                        jF                  }tI        jJ                  |      S t        |t        j                        rtI        j
                  |      }t        |t               r"tM        t        j                  |d   |d         }t        |tN        jP                        r|jS                         }t        |t        j$                        rtI        j&                  |      }t        |t        j(                        rtI        j*                  |      }t        |t        jT                        rtI        jV                  |      }tM        t        jX                  |||||	|
|||||      }| jZ                  j\                  j_                  ||||      jF                  S )Nr>  r   r   r   r   r   r   r   r   r   r;  r   r   r   r   r:  r   r<  r/   r   r   r   r   )r   r   r   r   r   r   r:  r;  r   r<  r   )search_groups_requestr   r   r/   rB   )0rE   r_   r!   rA  r   rB  rC  r   r  r  r   r   r  r  r  r	  r
  r  r  r  r  r  r   r  r  r  r  r   r   r  r  r   SearchGroupsSearchPointGroupsrT   r   r   rF  r   r  r  r  r  r  SearchGroupsRequestrf   r   search_point_groups)rr   r   r   r:  r   r   r   r;  r   r   r   r<  r   r   r/   r3   r   r   r   r   rJ  s                        rw   search_groupszQdrantRemote.search_groups  s   0 K!N+v'8'89(<<[I+s+"ooE,(9(9:%,,*//L%*A*AB*//!%!3!39L9L9T9T!U%,,33L%0*1o%al+,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"(,(8(8(E(E&& $3! !, (	
    * ". ". ) %4 & &1 !, $ $2  (:!$ $+#6DMM' )F )( f) , 33F;;+t7(<<[I,.(&&%a'?  ,

3+224,4)88|L-):):; * @ @ O,(@(@A)GGU$-**##$)( /!%',%! &&11EE&; /'	 F 
 frx   samplec	                 2   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||            j$                  }|J d       |S )Nr   r   r   rP  r   r  r/   r   r   r   r   r   rP  r  r   r   r   r/   search_matrix_requestz(Search matrix pairs returned None result)rE   r_   r!   r  r   r  r   r  r  r   r   r   SearchMatrixPairsr   SearchMatrixPointsrT   r   convert_search_matrix_pairsr   rf   r   search_matrix_pairsSearchMatrixRequestrr   r   r   r   rP  r  r   r   r/   r3   responsesearch_matrix_results               rw   rY  z QdrantRemote.search_matrix_pairs  sl    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N''99''$3'!#%0'9	 $+#6DMM : H 99(//JJlDKK0%44<HL#22==QQ+#"("<"<,##	  R  
 & 	 $/[1[[/##rx   c	                 2   | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                        S t        |t        j                        rt!        j
                  |      }| j&                  j(                  j+                  |||t        j,                  |||||            j$                  }|J d       |S )Nr   rR  r   rS  rT  z*Search matrix offsets returned None result)rE   r_   r!   r  r   r  r   r  r  r   r   r   SearchMatrixOffsetsr   rW  rT   r   convert_search_matrix_offsetsr   rf   r   search_matrix_offsetsrZ  r[  s               rw   ra  z"QdrantRemote.search_matrix_offsetsP  sl    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N'';;''$3'!#%0'9	 $+#6DMM < H ;;HOOLLlDKK0%44<HL#22==SS+#"("<"<,##	  T  
 & 	 $/]1]]/##rx   c           
      R   | j                   r |D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||      ||n| j                        }|j                  D cg c]/  }|j                  D cg c]  }t        j                   |       c}1 c}}S |D cg c]3  }t        |t        j"                        rt        j$                  |      n|5 }}| j&                  j(                  j+                  ||t        j,                  |            j                  }	|	S c c}w c c}w c c}}w c c}w )N)r   recommend_pointsr   r/   r   r   )r   r   recommend_request_batch)rE   r_   r!   RecommendRequestr   convert_recommend_requestr   r   r   r   RecommendBatchr   RecommendBatchPointsrT   r   r   r   RecommendPointsconvert_recommend_pointsr5   r   recommend_batch_pointsRecommendRequestBatchr   s
             rw   recommend_batchzQdrantRemote.recommend_batch  s     "  "!V%<%<= 88OLH  +':6;Q;Q'RS(AA+N151A1A1P1P))$3%-%0#	 $+#6DMM 2Q 2H U]TcTcOPJ#005J  "  "!T%9%9: 77:H  8<yy7K7K7b7b /'(.(D(Dh(W 8c 8 f	 
 OO. Ks#   9FF)FF8F$Fpositivenegativestrategyc                    |g }|g }| j                   rt        j                  |      }t        j                  |      }t        j                  |      }t        j                  |      }t	        |t
        j                        rt        j                  |      }t	        |t
        j                        rt        j                  |      }t	        |t        t
        j                              rt        j                  |      }t	        |	t        t
        j                              rt        j                  |	      }	t	        |t
        j                        rt        j                   |      }t	        |t        t
        j"                              rt        j$                  |      }t	        |t&        t
        j(                  f      rt        j*                  |      }t	        |t        t
        j,                              rt        j.                  |      }| j0                  j3                  t5        j6                  di d|d|d|d|d|d|d|	d	|d
|d|
d|d|d|d|d|d|d|d|||n| j8                        }|j:                  D cg c]  }t=        j>                  |       c}S |D cg c]3  }t	        |t4        j@                        rt=        jB                  |      n|5 }}|D cg c]3  }t	        |t4        j@                        rt=        jB                  |      n|5 }}t	        |t4        j                        rt=        j                  |      }t	        |t4        j                        rt=        j                  |      }t	        |t4        jD                        rt=        jF                  |      }t	        |t4        j                        rt=        j                   |      }| jH                  jJ                  jM                  |||t        jN                  ||||||||	|
||||            j:                  }|J d       |S c c}w c c}w c c}w )Nr   r   rn  ro  r   r   r   r   r   r   r   r  r  r   rp  positive_vectorsnegative_vectorsr   r/   r   )r   rn  ro  r   r   r   r   r   r   r  r  rp  r   )r   r   r/   recommend_request"Recommend points API returned NonerB   )(rE   r   !convert_recommend_examples_to_ids%convert_recommend_examples_to_vectorsr_   r!   r  r  r  r  r   r  r  r  r  r(  r)  r   r   rC  RecommendStrategyconvert_recommend_strategyr  r  r   	Recommendr   ri  rT   r   r   r   PointIdconvert_point_idr  r  rf   r   rc  re  )rr   r   rn  ro  r   r   r   r   r   r   r   r  r  rp  r   r   r/   r3   positive_idsrr  negative_idsrs  r  r   exampler   s                             rw   	recommendzQdrantRemote.recommend  s/   ( HH%GGQL)OOPXY%GGQL)OOPXY,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N(S&*B*B$CD%@@J,.A&BYBY.Z[%/%J%JK]%^"'+'7'7'A'A$$ $3) * (	
   " ". ". ) %4   !, &1 & &6  &6!" (:#$ $%( $+#6DMM+ (B (C0 EHJJOSJ33C8OO  (  "'4<<8 //8 !H   (  "'4<<8 //8 !H  ,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M((33DD /'"("9"9'%%(!!- ,$3 +%0#	 E & f' ( %K'KK%Mk Ps   Q08Q.8Qc                 	   ||ng }||ng }| j                   rt        |t        j                        rt	        j
                  |      }t        |t              rt        j                  |      }t	        j                  |      }t	        j                  |      }t	        j                  |      }t	        j                  |      }t        |t        j                        rt	        j                  |      }t        |t        j                        rt	        j                  |      }t        |
t        t        j                              rt	        j                   |
      }
t        |t        t        j"                              rt	        j$                  |      }t        |t        j&                        rt	        j(                  |      }t        |t        t        j*                              rt	        j,                  |      }t        |t        t        j.                  f      rt	        j0                  |      }t        |t        t        j2                              rt	        j4                  |      }| j6                  j9                  t        j:                  di d|d|d|d|d|d|d	|d
|d|
d|d|	d|d|d|d|d|d|d|d|d|||n| j<                        j>                  }|J d       tA        jB                  |      S t        |t        j                        rtA        j
                  |      }|D cg c]3  }t        |t        jD                        rtA        jF                  |      n|5 }}|D cg c]3  }t        |t        jD                        rtA        jF                  |      n|5 }}t        |t        j                        rtA        j                  |      }t        |t        j                        rtA        j                  |      }t        |
t        jH                        rtA        jJ                  |
      }
t        |t        j&                        rtA        j(                  |      }| jL                  jN                  jQ                  |||tS        t        jT                  f||||||||
||	|||||d      j>                  }|J d       |S c c}w c c}w )Nr>  r   r   rn  ro  r   r:  r   r;  r   r   r   r   r  r  r   r<  rp  rr  rs  r   r/   r   z"Recommend groups API returned None)rn  ro  r   r:  r   r;  r   r   r   r   r  r  r<  rp  r   )r   r   r/   recommend_groups_requestru  rB   )+rE   r_   r!   rA  r   rB  rC  r   rv  rw  r  r  r  r  r   r  r  r  r  r(  r)  r   r   rx  ry  r  r  r   RecommendGroupsRecommendPointGroupsrT   r   r   rF  r{  r|  r  r  rf   r   recommend_point_groupsr   RecommendGroupsRequest)rr   r   r:  rn  ro  r   r   r   r;  r   r   r   r  r  r<  rp  r   r   r/   r3   r}  rr  r~  rs  r  point_idr   s                              rw   recommend_groupszQdrantRemote.recommend_groupsB  s   ,  (38'38+v'8'89(<<[I+s+"ooE%GGQL)OOPXY%GGQL)OOPXY,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N(S&*B*B$CD%@@J,.A&BYBY.Z[%/%J%JK]%^"%)%5%5%E%E)) $3) * (	
 &    * ". ". ) %4   !, &1 !,  &!" &6#$ &6%& (:'( $), $+#6DMM/ &F &0 f1 4 ?H$HH?33C88+t7(<<[I !)  "(DLL9 //9!"H  !)  "(DLL9 //9!"H  ,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M((33JJ /')211*%%'%)(!- ,$3 + +%0!*	 K , f- 0 %K'KK%Mos   98S78Stargetcontextc                    |g }| j                   ra|8t        |t        t        j                              rt        j                  |      n|}|D cg c]3  }t        |t        j                        rt        j                  |      n|5 }}t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |	t        t        j                              rt        j                   |	      }	t        |t        j"                        rt        j$                  |      }t        |t        t        j&                              rt        j(                  |      }t        |t        t        j*                              rt        j,                  |      }| j.                  j1                  t3        j4                  |||||||	|||
||||      ||n| j6                        }|j8                  D cg c]  }t;        j<                  |       c}S |/t        |t2        j>                        rt;        j                  |      n|}|D cg c]3  }t        |t2        j                        rt;        j                  |      n|5 }}t        |t2        j                        rt;        j                  |      }t        |t2        j                        rt;        j                  |      }t        |t2        j@                        rt;        jB                  |      }t        |t2        j"                        rt;        j$                  |      }| jD                  jF                  jI                  |||t        jJ                  ||||||||	||
|            j8                  }|J d       |S c c}w c c}w c c}w )Nr   )r   r  r  r   r   r   r   r   r   r  r  r   r   r/   r   )r  r  r   r   r   r   r   r   r  r  r   )r   r   r/   discover_requestz!Discover points API returned None)&rE   r_   r   r!   RecommendExampler   convert_target_vectorContextExamplePairconvert_context_example_pairr  r  r  r  r  r  r  r  r(  r)  r   r   r  r  r   Discoverr   DiscoverPointsrT   r   r   r   TargetVectorr  r  rf   r   discover_pointsDiscoverRequest)rr   r   r  r  r   r   r   r   r   r   r  r  r   r   r/   r3   pairr  r   r   s                       rw   discoverzQdrantRemote.discover  s   $ ?G %v':6;R;R'ST 008 	  $  "$(A(AB ;;DAG  ,6)88|L-)<)<= * @ @ O,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+v'<'<=(@@M+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"'+'7'7'@'@##$3!#'!!-!-( +%0'9#  $+#6DMM# (A (C( EHJJOSJ33C8OO %*VT=N=N*O 008  $  "$(?(?@ ;;DAG  ,4)88|L-):):; * @ @ O,(@(@A)GGU+t':':;(@@M((33CC /'!'!7!7!#'(!!- , +0"	 D " f# $ %J'JJ%MEd Ps   8O=P*8Pc           
         | j                   r|D cg c]4  }t        |t        j                        rt	        j
                  ||      n|6 }}| j                  j                  t        j                  ||||      ||n| j                        }|j                  D cg c]/  }|j                  D cg c]  }t        j                  |       c}1 c}}S |D cg c]3  }t        |t        j                        rt        j                  |      n|5 }}| j                   j"                  j%                  |t        j&                  |      ||      j                  }	|	S c c}w c c}w c c}}w c c}w )N)r   r  r   r/   r   r   )r   discover_request_batchr   r/   )rE   r_   r!   r  r   convert_discover_requestr   DiscoverBatchr   DiscoverBatchPointsrT   r   r   r   r  convert_discover_pointsr5   r   discover_batch_pointsDiscoverRequestBatchr   s
             rw   discover_batchzQdrantRemote.discover_batchZ  s     "  "!V%;%;< 77?KH  261A1A1O1O(($3$,%0#	 $+#6DMM 2P 2H U]TcTcOPJ#005J  "  "!T%8%89 66q9H  8<yy7K7K7a7a /'-'B'BH'U'	 8b 8
 f  OK( Ks#   9EE&0E!E&8E,!E&scroll_filterorder_byc                    | j                   r(t        |t        t        j                              rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        |	t        t        j                              rt        j                   |	      }	t        |t        t        j"                              rt        j$                  |      }| j&                  j)                  t+        j,                  |||||||||	|

      |
|
n| j.                        }|j0                  D cg c]  }t3        j4                  |       c}|j7                  d      r t3        j8                  |j:                        fS d fS t        |t*        j<                        rt3        j8                  |      }t        |t*        j                        rt3        j                  |      }t        |t*        j>                        rt3        j@                  |      }t        |t*        jB                        rt3        jD                  |      }| jF                  jH                  jK                  ||t        jL                  |||||||	      |
      j0                  }|J d       |jN                  |j:                  fS c c}w )Nr   )
r   r   r  r   r   r   r   r   r   r/   r   next_page_offset)r   r   r  r   r   r   r   )r   r   scroll_requestr/   z&Scroll points API returned None result)(rE   r_   r   r!   ExtendedPointIdr   convert_extended_point_idr  r  r  r  r  r  r   r   r  r  OrderByInterfaceconvert_order_by_interfacer   Scrollr   ScrollPointsrT   r   r   convert_retrieved_pointHasFieldr|  r  r{  OrderByconvert_order_byr  r  rf   r   scroll_pointsScrollRequestr"  )rr   r   r  r   r  r   r   r   r   r   r/   r3   r  pointscroll_results                  rw   scrollzQdrantRemote.scroll  s    &"5f6L6L"MN#==fE-7 * 9 9 N,(;F<W<W(XY)HHV,(;F<M<M(NO)>>|L+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"($78O8O$PQ%@@J'+'7'7'>'>!!$3(%!!-!-%0'9# $+? (? (C  LO::V%J66u=V<< 23 ++C,@,@A    &$,,/#44V<-5 * 9 9 N(DLL1%66x@,(@(@A)GGU ##..<<$3 +#)#7#7,#!)%%1$0"4$ $ =  &   !,V.VV, '')G)GGGI Ws   $M!count_filterexactc           	         | j                   rt        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  |||||      ||n| j                        j                  }t        j                   |      S t        |t        j                        rt        j
                  |      }| j"                  j$                  j'                  |t        j(                  |||      |      j                  }|J d       |S )Nr   )r   r   r  r   r/   r   )r   r  r   )r   count_requestr/   z!Count points returned None result)rE   r_   r!   r  r   r  r   r  r  r   Countr   CountPointsrT   r   r   convert_count_resultrf   r   count_pointsCountRequest)	rr   r   r  r  r   r/   r3   r\  count_results	            rw   countzQdrantRemote.count  s;    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"''--  $3''9# $+? . 	 f  228<<lDKK0%44<HL**55BB+ --#,
  C 
 & 	 'L)LL'rx   keyfacet_filterc	                    | j                   r't        |t        j                        rt	        j
                  |      }t        |t        t        j                              rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }| j                  j                  t        j                  ||||||||      ||n| j                        }
t!        j"                  |
j$                  D cg c]  }t'        j(                  |       c}      S t        |t        j                        rt'        j
                  |      }| j*                  j,                  j/                  |||t        j0                  |||||            j2                  }|J d       |S c c}w )Nr   )r   r  r   r   r  r/   r   r   r   )hits)r   r  r   r   r  )r   r   r/   facet_requestz!Facet points returned None result)rE   r_   r!   r  r   r  r   r  r  r   r   r   Facetr   FacetCountsrT   r  FacetResponser  r   convert_facet_value_hitrf   r   facetFacetRequestr   )rr   r   r  r  r   r  r/   r   r   r3   r\  r   facet_results                rw   r  zQdrantRemote.facet  s    ,6)88|L,.A&BYBY.Z[%/%J%JK]%^"+':6;Q;Q'RS(AA+N''--  $3'#%0'9	 $+#6DMM . H &&IQW#j88=W  lDKK0%44<HL**55;;+# --,#	 < 
 & 	 'L)LL') Xs   F;r"  waitorderingc                    | j                   rt        |t        j                        rt	        j
                  |j                  t        |j                              }t        t        |j                              D cg c]k  }t        j                  t	        j                  |j                  |         ||   |j                  "t	        j                  |j                  |         nd       m }}t        |t              r>|D 	cg c]3  }	t        |	t        j                        rt	        j                   |	      n|	5 }}	t        |t        j"                        rt	        j$                  |      }t        |t'        t        j(                              rt	        j*                  |      }| j,                  j/                  t        j0                  |||||      | j2                        j4                  }
|
J d       t7        j8                  |
      S t        |t              rU|D 	cg c]3  }	t        |	t        j                        rt7        j                   |	      n|	5 }}	t        j:                  ||      }t        |t        j                        rt        j<                  ||      }| j>                  j@                  jC                  ||||      j4                  }|J d       |S c c}w c c}	w c c}	w )N)idvectorspayloadr   r  r"  r  r   r   Upsert returned None resultr"  r   )batchr   )r   r  point_insert_operationsr  )"rE   r_   r!   Batchr   convert_batch_vector_structr  rK   idsranger   PointStructr  payloadsconvert_payloadr  convert_point_structWriteOrderingconvert_write_orderingr   r  r  r   UpsertUpsertPointsrT   r   r   convert_update_result
PointsListPointsBatchrf   r   upsert_points)rr   r   r"  r  r  r   r3   vectors_batchidxr  grpc_resulthttp_results               rw   upsertzQdrantRemote.upsertJ  s    &&,,/4>4Z4ZNNC

O5  %S_5  $$%??

3P -c 2  &: '66vs7KL!%  &$' "(  &eV-?-?@ #77>"#  (F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"**11!!$3!%'9  2 	 f  *I,II*33K@@&$' "(  &eT-=-=> #77>"#   **&DVW&&,,/++&DVW--88FF /(.!	 G 
 f  *I,II*A<s   ;A0K8K"8K'c           	      |   | j                   r|D cg c]  }t        j                  |       }}t        |t        j
                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  |||||            j                  }|J d       t        j                   |      S | j"                  j$                  j'                  ||t	        j                  ||      |      j                  S c c}w )Nr  r  r  )r   r  update_vectorsr  )rE   r   convert_point_vectorsr_   r!   r  r  r   r  r  r   UpdateVectorsr   UpdatePointVectorsr   r   r  rf   r   r  )	rr   r   r"  r  r  r   r3   r  r  s	            rw   r  zQdrantRemote.update_vectors  s'    KQR%j66u=RFR(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"**88''$3!%'9 f  *I,II*33K@@&&11@@ /%33!0  " A  f) Ss   D9r  c                    | j                   r| j                  |      \  }}	|xs |	}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |      |||            j                  }
|
J d       t!        j"                  |
      S | j%                  |      \  }}| j&                  j(                  j+                  |||t-        t        j                  ||||            j                  S )N)names)r   r  r  points_selectorr  r   z#Delete vectors returned None result)r   r"  r   r   )r   r  r  delete_vectors)rE   _try_argument_to_grpc_selectorr_   r!   r  r   r  r   r  r  r   DeleteVectorsr   DeletePointVectorsVectorsSelectorr   r   r  '_try_argument_to_rest_points_and_filterrf   r   r  r   )rr   r   r  r"  r  r  r   r3   r  opt_shard_key_selectorr  _points_filters                rw   r  zQdrantRemote.delete_vectors  sU    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"**88''$3 00% %4%'9	 f  *Q,QQ*33K@@#KKFSGW&&11@@ /!((("""0 	 A  frx   r  c                    | j                   rt        |t        t        j                              rt        j                  |      }|D 	cg c]<  }	t        |	t        t        j                              rt        j                  |	      n|	> }}	t        j                  |      }t        |t        t        j                              rt        j                  |      }t        |t        t        j                              rt        j                  |      }| j                  j                  t!        j"                  |||||||      ||n| j$                        j&                  }
|
J d       |
D cg c]  }t)        j*                  |       c}S t        |t         j,                        rt)        j.                  |      }|D 	cg c]3  }	t        |	t         j0                        rt)        j2                  |	      n|	5 }}	| j4                  j6                  j9                  ||t        j:                  ||||      |      j&                  }|J d       |S c c}	w c c}w c c}	w )N)r   r  r   r   r   r   r/   r   zRetrieve returned None result)r  r   r   r   )r   r   point_requestr/   z!Retrieve API returned None result)rE   r_   r   r!   r  r   r  r  r  r  r   r   r  r  r   Getr   	GetPointsrT   r   r   r  r  r  r{  r|  rf   r   
get_pointsPointRequest)rr   r   r  r   r   r   r   r/   r3   r  r   recordr  s                rw   retrievezQdrantRemote.retrieve  sD    ,(;F<W<W(XY)HHV   "#':6;Q;Q'RS 88=C  &::<HL+':6;Q;Q'RS(AA+N,.A&BYBY.Z[%/%J%JK]%^"%%))$3!-!-%0'9# $+? *  f  %F'FF%MST6J66v>TT ,(@(@A)GGU  6@T\\5R,,S1X[[C 
 --88CC /'$11!- ,0	   D 
 f  *O,OO*o@ Us   
AI.I 8Ic                 T   d }t        |t              rtt        j                  t        j                  |D cg c]<  }t        |t        t        j                              rt        j                  |      n|> c}            }||fS t        |t        j                        r|}||fS t        |t        t        j                              rD|j                  t        j                  |j                        }t        j                  |      }||fS t        |t        j                        r2t        j                  t        t        j                   |            }||fS t        |t        j                        rt        j                  |      }||fS t#        dt%        |             c c}w )N)r  r!  )r   "Unsupported points selector type: )r_   r  r   PointsSelectorPointsIdsListr   r!   r  r   r  r   r   r  convert_points_selectorr  r   FilterSelectorrL   ra   )clsr"  r   r  r  s        rw   r  z+QdrantRemote._try_argument_to_grpc_selector=  s    "fd#"11)) $*    *#/B6CYCY/Z[ '@@E!$%	O4  222  3 34$O  222 )>)> ?@+%/%J%J6K[K[%\"(@@HO  222 .(@@&//?O  222	 ,"11@O  222 A$v,PQQ/s   AF%c                    t        |t              r\|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}t        t        j                  ||      }|S t        |t        j                        rt	        j                  |      }||_        |S t        |t        t        j                              r|}||_        |S t        |t        j                        rt        t        j                  ||      }|S t        |t        j                        r1t        t        j                  t	        j                  |      |      }|S t!        dt#        |             c c}w )Nr  )r   r   r  )r_   r  r   r{  r   r|  r   r!   PointIdsListr  r	  r   r   r  r
  r  rL   ra   )r  r"  r   r  r  r  s         rw   _try_argument_to_rest_selectorz+QdrantRemote._try_argument_to_rest_selector_  sW    fd# " 6@T\\5R,,S1X[[G  (##,O. %  3 34(@@HO(:O%   )>)> ?@$O(:O%  .'%%f@RO  ,'%%!008,O  A$v,PQQ5s   8E-r  c                 |    |j                  d      }|g S t        ||      }|dk(  rt        |j                        S g S )Npoints_selector_one_ofr"  )
WhichOneofgetattrr  r  )r  r  r   vals       rw   _points_selector_to_points_listz,QdrantRemote._points_selector_to_points_list  sF     ))*BC<Iot,8= 	rx   c                 :   d }d }t        |t              rB|D cg c]3  }t        |t        j                        rt	        j
                  |      n|5 }}||fS t        |t        j                        rit	        j                  |      }t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|j                  }||fS t        |t        j                        r|}||fS t        |t        j                        rt	        j                  |      }||fS t        dt!        |             c c}w )Nr  )r_   r  r   r{  r   r|  r  r	  r!   r  r"  r
  r   r  r  rL   ra   )r  r"  r  r  r  selectors         rw   r  z4QdrantRemote._try_argument_to_rest_points_and_filter  s    fd# " 6@T\\5R,,S1X[[G * #  3 34!99&AH(F$7$78"//  Hf&;&;<"//   3 34mmG   5 56mmG  .G  , //7G  A$v,PQQ's   8Fc                 t   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  |||||      | j                         j"                        S | j%                  ||      }| j&                  j(                  j+                  ||||      j"                  }|J d       |S )Nr  r   )r   r  r  r  zDelete points returned None)rE   r  r_   r!   r  r   r  r   r  r  r   r  r   Deleter   DeletePointsrT   r   r  rf   r   delete_points	rr   r   r  r  r  r   r3   r  r   s	            rw   deletezQdrantRemote.delete  sA    6:6Y6Y73O3 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ''%%(7!.!)+= !MM ( 	 &  #AA!3O 483F3F3Q3Q3_3_ / /!	 4` 4
 f  %D'DD%Mrx   r  c                    | j                   r| j                  |      \  }	}
|xs |
}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |	|||      | j"                        j$                        S | j'                  |      \  }}| j(                  j*                  j-                  |||t        j                  |||||            j$                  }|J d       |S )N)r   r  r  r  r  r   r  r   )r  r"  r   r   r  r   r  r  set_payloadzSet payload returned None)rE   r  r_   r!   r  r   r  r   r  r  r   r  r   
SetPayloadr   SetPayloadPointsr  rT   r   r  rf   r   r  )rr   r   r  r"  r  r  r  r   r3   r  r  r  r  r   s                 rw   r  zQdrantRemote.set_payload  se    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ++))(7! * : :7 C(7!)+= !MM ,  &   $KKFSGW373F3F3Q3Q3]3] /!"--#""0	 4^ 4 f  %B'BB%Mrx   c                    | j                   r| j                  |      \  }}	|xs |	}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||t        j                   |      |||      | j"                        j$                        S | j'                  |      \  }
}| j(                  j*                  j-                  |||t        j.                  ||
||            j$                  }|J d       |S )N)r   r  r  r  r  r   r   )r  r"  r   r   r  zOverwrite payload returned None)rE   r  r_   r!   r  r   r  r   r  r  r   r  r   OverwritePayloadr   r!  r  rT   r   r  rf   r   overwrite_payloadr   )rr   r   r  r"  r  r  r   r3   r  r  r  r  r   s                rw   r$  zQdrantRemote.overwrite_payload	  s_    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  11))(7! * : :7 C(7!)+= !MM 2 
 &   $KKFSGW##..@@$3% & 1 1 '&&"4	!	 A 
 &  %H'HH%Mrx   keysc                    | j                   r| j                  |      \  }}	|xs |	}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  ||||||      | j                         j"                        S | j%                  |      \  }
}| j&                  j(                  j+                  |||t        j                  ||
||            j"                  }|J d       |S )N)r   r  r%  r  r  r   r   )r%  r"  r   r   )r   r  r  delete_payloadzDelete payload returned None)rE   r  r_   r!   r  r   r  r   r  r  r   r  r   DeletePayloadr   DeletePayloadPointsrT   r   r  rf   r   r'  )rr   r   r%  r"  r  r  r   r3   r  r  r  r  r   s                rw   r'  zQdrantRemote.delete_payloadD	  sT    6:6Y6YZ`6a3O3!3!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  ..,,(7!!(7!)+= !MM / 
 &   $KKFSGW373F3F3Q3Q3`3` /!%33""0	 	 4a 
4 f  %E'EE%Mrx   c                 t   | j                   r| j                  |      \  }}|xs |}t        |t        j                        rt        j                  |      }t        |t        t        j                              rt        j                  |      }t        j                  | j                  j                  t        j                  |||||      | j                         j"                        S | j%                  ||      }| j&                  j(                  j+                  ||||      j"                  }|J d       |S )Nr  r   )r   r  r  r  zClear payload returned None)rE   r  r_   r!   r  r   r  r   r  r  r   r  r   ClearPayloadr   ClearPayloadPointsrT   r   r  rf   r   clear_payloadr  s	            rw   r-  zQdrantRemote.clear_payloadt	  sA    6:6Y6Y73O3 "4!M7M(F$8$89%<<XF,.A&BYBY.Z[%/%J%JK]%^"33  --++(7!.!)+= !MM . 	 &  #AA!3O 483F3F3Q3Q3_3_ /! /	 4` 4
 f  %D'DD%Mrx   update_operationsc                 F   | j                   r|D cg c]  }t        j                  |       }}t        |t        j
                        rt        j                  |      }| j                  j                  t        j                  ||||      | j                        j                  D cg c]  }t        j                  |       c}S | j                  j                   j#                  |||t	        j$                  |            j                  }|J d       |S c c}w c c}w )N)r   r  
operationsr  r   )r0  )r   r  r  r.  z!Batch update points returned None)rE   r   convert_update_operationr_   r!   r  r  r   UpdateBatchr   UpdateBatchPointsrT   r   r   r  rf   r   batch_updateUpdateOperations)rr   r   r.  r  r  r3   	operationr   s           rw   batch_update_pointsz QdrantRemote.batch_update_points	  s%    Pa!CL
33I>! ! (F$8$89%<<XF #..::**(7!#4!)	 !MM ;  & 008  ##..;;$3%&,&=&=IZ&[	 < 
 &  %J'JJ%M;!s   D(Dchange_aliases_operationsc                 R   | j                   r|D cg c]3  }t        |t        j                        st	        j
                  |      n|5 }}| j                  j                  t        j                  ||      | j                        j                  S |D cg c]3  }t        |t        j                        rt        j
                  |      n|5 }}| j                  j                  j                  |t        j                   |            j                  }|J d       |S c c}w c c}w )N)r/   actionsr   )r:  )r/   change_aliases_operationzUpdate aliases returned None)rE   r_   r   AliasOperationsr   convert_alias_operationsr   UpdateAliasesChangeAliasesrT   r   r   r5   collections_apiupdate_aliasesr!   ChangeAliasesOperation)rr   r8  r/   r3   r6  r;  r   s          rw   update_collection_aliasesz&QdrantRemote.update_collection_aliases	  sB     ";(  &i1E1EF 77	B"#($ ( ((66""#4  7  f 7$
  i)=)=> 33I>$
  $
 "&!:!:!I!I%+%B%B0& "J "

 & 	 !A#AA!?( $
s   8D8D$c                    | j                   r|| j                  j                  t        j                  |      | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                  |      j                  }|J d       |S c c}w )Nr   r   aliasesz$Get collection aliases returned None)rE   r   ListCollectionAliasesr   ListCollectionAliasesRequestrT   rG  r  CollectionsAliasesResponser   convert_alias_descriptionr5   r@  get_collection_aliasesr   )rr   r   r3   r\  descriptionr   s         rw   rL  z#QdrantRemote.get_collection_aliases	  s     ,,BB11/R C  g  33YaJUJ88E  II%%<< / = f 	
 !I#II!s   %Cc                    | j                   rz| j                  j                  t        j                         | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                         j                  }|J d       |S c c}w )Nr   rF  zGet aliases returned None)rE   r   ListAliasesr   ListAliasesRequestrT   rG  r  rJ  r   rK  r5   r@  get_collections_aliasesr   rr   r3   r\  rM  r   s        rw   get_aliaseszQdrantRemote.get_aliases
  s    ,,88'')4== 9 g  33YaJUJ88E  II%%==?FF 	 !>#>>!   #C c                    | j                   rz| j                  j                  t        j                         | j
                        j                  }t        j                  |D cg c]  }t        j                  |       c}      S | j                  j                  j                         j                  }|J d       |S c c}w )Nr   )collectionszGet collections returned None)rE   r   r	   r   ListCollectionsRequestrT   rV  r  CollectionsResponser   convert_collection_descriptionr5   r@  get_collectionsr   rR  s        rw   rZ  zQdrantRemote.get_collections
  s    ,,11++-t}} 2 k  ,, (0# ==kJ  II%%557>> 	 !B#BB!rT  c                 @   | j                   rXt        j                  | j                  j	                  t        j                  |      | j                        j                        S | j                  j                  j                  |      j                  }|J d       |S )NrE  r   zGet collection returned None)rE   r   convert_collection_infor   r  r   GetCollectionInfoRequestrT   r   r5   r@  get_collectionrr   r   r3   r   s       rw   r^  zQdrantRemote.get_collection*
  s    55%%))11/R MM *  &	  261J1J1Y1Y+ 2Z 2

& 	 !A#AA!rx   c                 B   | j                   rO| j                  j                  t        j                  |      | j
                        j                  j                  S | j                  j                  j                  |      j                  }|J d       |j                  S )NrE  r   zCollection exists returned None)rE   r   CollectionExistsr   CollectionExistsRequestrT   r   existsr5   r@  collection_existsr_  s       rw   rd  zQdrantRemote.collection_exists8
  s    ((99,,_M :  fVV
 8<yy7P7P7b7b+ 8c 8

& 	 !D#DD!}}rx   optimizers_configcollection_paramsvectors_confighnsw_configquantization_configsparse_vectors_configc	                 R   | j                   rZt        |t        j                        rt	        j
                  |      }t        |t        j                        rt	        j                  |      }t        |t              rt	        j                  |      }t        |t        j                        rt	        j                  |      }t        |t        t        j                              rt	        j                  |      }t        |t              rt	        j                  |      }| j                   j#                  t%        j&                  |||||||      | j(                        j*                  S t        |t$        j                        rt-        j
                  |      }t        |t$        j                        rt-        j                  |      }t        |t$        j.                        rt-        j                  |      }t        |t$        j                        rt-        j                  |      }t        |t$        j                        rt-        j                  |      }| j0                  j2                  j5                  |t        j&                  ||||||      |      j*                  }
|
J d       |
S )N)r   re  r   rg  rh  ri  rj  r   )re  r   r  rh  ri  sparse_vectors)update_collectionr/   zUpdate collection returned None)rE   r_   r!   OptimizersConfigDiffr   convert_optimizers_config_diffCollectionParamsDiffconvert_collection_params_diffdictconvert_vectors_config_diffHnswConfigDiffconvert_hnsw_config_diffr   QuantizationConfigDiff convert_quantization_config_diffconvert_sparse_vector_configr   Updater   UpdateCollectionrT   r   r   VectorsConfigDiffr5   r@  rm  )rr   r   re  rf  rg  rh  ri  r/   rj  r3   r   s              rw   rm  zQdrantRemote.update_collectionE
  sA    +V-H-HI$.$M$MN_$`!+V-H-HI$.$M$MN_$`!.$/!+!G!G!W+v'<'<=(AA+N-x8U8U/VW&0&Q&Q''# /6(2(O(O))% ((//%%$3&7,#1 +(;*?  0  f ')B)BC * I IJ[ \')B)BC * I IJ[ \nd&<&<='CCNSNk4#6#67$==kJK)4+F+FG","M"MNa"b!%!:!:!L!L$55"3(&'$74  "M "
 & 	 !D#DD!rx   c                    | j                   rE| j                  j                  t        j                  |      | j
                        j                  S | j                  j                  j                  ||      j                  }|J d       |S )NrE  r   zDelete collection returned None)
rE   r   r  r   DeleteCollectionrT   r   r5   r@  delete_collection)rr   r   r/   r3   r   s        rw   r~  zQdrantRemote.delete_collection
  s     ((//%%oF 0  f
 "&!:!:!L!LW "M "

& 	 !D#DD!rx   shard_numberreplication_factorwrite_consistency_factoron_disk_payload
wal_config	init_fromsharding_methodc                 R   |t        j                  d       | j                  rt        |t        j
                  t        f      rt        j                  |      }t        |t        j                        rt        j                  |      }t        |t        j                        rt        j                  |      }t        |	t        j                        rt        j                  |	      }	t        |
t        t        j                               rt        j"                  |
      }
t        |t        j$                        rt        j&                  |      }t        |t              rt        j(                  |      }t        |t        j*                        rt        j,                  |      }t/        j0                  |||	|||||||||
||      }| j2                  j5                  |      j6                  S t        |t.        j                        rt9        j                  |      }t        |t.        j                        rt9        j                  |      }t        |	t.        j                        rt9        j                  |	      }	t        |
t.        j                         rt9        j"                  |
      }
t        |t:              rt9        j&                  |      }t	        j0                  ||||||||	|
|||      }| j<                  j>                  jA                  |||      j6                  }|J d       |S )Nzinit_from is deprecated)r   rh  r  re  r  r  r/   rg  r  r  init_from_collectionri  rj  r  )r  r  r  r  r  rh  re  r  ri  r  rl  r  )r   create_collectionr/   zCreate collection returned None)!r   r   rE   r_   r!   VectorParamsrr  r   convert_vectors_configrt  ru  rn  ro  WalConfigDiffconvert_wal_config_diffr   QuantizationConfigconvert_quantization_configInitFromconvert_init_fromrx  ShardingMethodconvert_sharding_methodr   CreateCollectionr   Creater   r   rC  r5   r@  r  )rr   r   rg  r  r  r  r  rh  re  r  ri  r  r/   rj  r  r3   r  create_collection_requestr   s                      rw   r  zQdrantRemote.create_collection
  s   $  OO56.6+>+>*EF!+!B!B>!R+v'<'<=(AA+N+V-H-HI$.$M$MN_$`!*f&:&:;'??
K
#223 '1&L&LM`&a#)V__5&88C	/6(2(O(O))% /6+@+@A","D"D_"U $ 5 5 /'%"3) /-#5)A%.$7&; /!  ((//0ABIIIk4#6#67$==kJK')B)BC * I IJ[ \j$"4"45#;;JGJ)4+B+BC","H"HI\"]i%"44Y?I$*$;$;"%1%=+#/! 30+%
! "&!:!:!L!L+7 "M "
 &	 	 !D#DD!rx   c                 f    | j                  ||       | j                  |||||||||	|
||||      S )Nr   )r   rg  r  r  r  r  rh  re  r  ri  r  r/   rj  r  )r~  r  )rr   r   rg  r  r  r  r  rh  re  r  ri  r  r/   rj  r  r3   s                   rw   recreate_collectionz QdrantRemote.recreate_collection  sY    $ 	@%%+)%1%=+#/! 3"7+ & 
 	
rx   c                 2    | j                   rt        S t        S r{   )rE   r#   r$   r|   s    rw   _updater_classzQdrantRemote._updater_class3  s    $$$$rx   batches_iteratormax_retriesparallelmethodc           	         |(|t               v r|}n)t        d| dt                      dt               v rdnd}| j                  r4|| j                  | j                  || j
                  | j                  ||d}	n|| j                  |||d| j                  }	|dk(  r3 | j                  j                  d	i |	}
|
j                  |      D ]  } y t        || j                  |      } |j                  |fi |	D ]  } y )
NzStart methods z& is not available, available methods: 
forkserverspawn)r   r0   r)   r  r   r=   r  r   )r   urir  r  r   r   )start_methodrB   )r   rL   rE   rN   rF   rH   rZ   rd   re   r  startprocessr"   unordered_map)rr   r  r   r  r  r  r  r   r  updater_kwargsupdater_pools                rw   _upload_collectionzQdrantRemote._upload_collection:  s3    .00% $VH,RShSjRkl  ,8;P;R+R<X_L#2

*{{ ..&8	N $3}}*&8 //N q=/d))//A.AG__%56  &h0C0CR^_D'T''(8KNK rx   records
batch_sizec	           	      n    | j                   j                  ||      }
| j                  |
||||||       y )Nr  r  )r  r   r  r  r  r   r  r  iterate_records_batchesr  )rr   r   r  r  r  r  r  r  r   r3   r  s              rw   upload_recordszQdrantRemote.upload_recordsl  sP      ..FF
 G 
 	-+#1 	  	
rx   c	           	      n    | j                   j                  ||      }
| j                  |
||||||       y )Nr  r  r   r  r  r  r  r   r  )rr   r   r"  r  r  r  r  r  r   r3   r  s              rw   upload_pointszQdrantRemote.upload_points  sP      ..FFz G 
 	-+#1 	  	
rx   c           	      r    | j                   j                  ||||      }| j                  ||||||	|
       y )N)r  r  r  r  r  )r  iterate_batchesr  )rr   r   r  r  r  r  r  r  r  r  r   r3   r  s                rw   upload_collectionzQdrantRemote.upload_collection  sV       ..>>!	 ? 
 	-+#1 	  	
rx   
field_namefield_schema
field_typec                    |t        j                  dt               |}| j                  rd }t	        |t
        j                        rt        j                  |      }t	        |t              rt        |      }t	        |t        t
        j                              rt        j                  |      }t	        |t        j                        r|}|j!                  d      }	t#        ||	      }
t	        |
t        j$                        rt        j&                  j(                  }t	        |
t        j*                        rt        j&                  j,                  }t	        |
t        j.                        rt        j&                  j0                  }t	        |
t        j2                        rt        j&                  j4                  }t	        |
t        j6                        rt        j&                  j8                  }t	        |
t        j:                        rt        j&                  j<                  }t	        |
t        j>                        rt        j&                  j@                  }t	        |
t        jB                        rt        j&                  jD                  }t        jF                  ||||||      }tI        jJ                  | jL                  jO                  |      jP                        S t	        |t              rtI        j                  |      }t	        |t        j                        rtI        j                  |      }| jR                  jT                  jW                  |t        jN                  ||      ||      jP                  }|J d       |S )Nz2field_type is deprecated, use field_schema insteadindex_params)r   r  r  field_index_paramsr  r  )r  r  )r   create_field_indexr  r  z Create field index returned None),r\   r]   r   rE   r_   r!   PayloadSchemaTyper   convert_payload_schema_typeintr   r   PayloadSchemaParamsconvert_payload_schema_paramsr   PayloadIndexParamsr  r  TextIndexParams	FieldTypeFieldTypeTextIntegerIndexParamsFieldTypeIntegerKeywordIndexParamsFieldTypeKeywordFloatIndexParamsFieldTypeFloatGeoIndexParamsFieldTypeGeoBoolIndexParamsFieldTypeBoolDatetimeIndexParamsFieldTypeDatetimeUuidIndexParamsFieldTypeUuidCreateFieldIndexCollectionr   r  r   CreateFieldIndexr   rf   r@  r  )rr   r   r  r  r  r  r  r3   r  r   r  requestr   s                rw   create_payload_indexz!QdrantRemote.create_payload_index  s    !MMNPbc%L!%,(@(@A)EElS,,
  AN,1K1K(LM)GGU,(?(?@%1")44^D&'94@lD,@,@A#'>>#?#?LlD,C,CD#'>>#B#BLlD,C,CD#'>>#B#BLlD,A,AB#'>>#@#@LlD,?,?@#'>>#>#>LlD,@,@A#'>>#?#?LlD,D,DE#'>>#C#CLlD,@,@A#'>>#?#?L55 /%'#5!G 33  11':AA  lC(%AA,OLlD$;$;<%CCLQL //BB /#)#:#:)$ ! C  f 	 !E#EE!rx   c                 8   | j                   rQt        j                  ||||      }t        j                  | j
                  j                  |      j                        S | j                  j                  j                  ||||      j                  }|J d       |S )N)r   r  r  r  z Delete field index returned None)rE   r   DeleteFieldIndexCollectionr   r  r   DeleteFieldIndexr   rf   r@  delete_field_index)rr   r   r  r  r  r3   r  r   s           rw   delete_payload_indexz!QdrantRemote.delete_payload_index  s     55 /%!	G 33  11':AA 
 //BB /%!	 C 
 f 	 !E#EE!rx   c                 R   | j                   r\| j                  j                  t        j                  |            j
                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                  |      j                  }|J d       |S c c}w )NrE  'List snapshots API returned None result)rE   r   r	   r   ListSnapshotsRequestsnapshot_descriptionsr   convert_snapshot_descriptionrf   r@  list_snapshotsr   )rr   r   r3   	snapshotssnapshots        rw   r  zQdrantRemote.list_snapshots6  s     ++00))/J##  W``(J;;HE``''77FF+ G 

& 	 $O&OO$ as   
B$c                    | j                   rN| j                  j                  t        j                  |            j
                  }t        j                  |      S | j                  j                  j                  ||      j                  S )NrE  )r   r  )rE   r   r  r   CreateSnapshotRequestsnapshot_descriptionr   r  rf   r@  create_snapshotr   )rr   r   r  r3   r  s        rw   r  zQdrantRemote.create_snapshotE  s|     **11**?K""  ::8DD""22BB+$ C 

&	rx   snapshot_namec                     | j                   r1| j                  j                  t        j                  ||             y| j
                  j                  j                  |||      j                  S )N)r   r  T)r   r  r  )	rE   r   r  r   DeleteSnapshotRequestrf   r@  delete_snapshotr   )rr   r   r  r  r3   s        rw   r  zQdrantRemote.delete_snapshotR  sn     &&**$3=
 ""22BB+' C 
 &		rx   c                 J   | j                   rZ| j                  j                  t        j                               j
                  }|D cg c]  }t        j                  |       c}S | j                  j                  j                         j                  }|J d       |S c c}w )Nz,List full snapshots API returned None result)rE   r   ListFullr   ListFullSnapshotsRequestr  r   r  rf   snapshots_apilist_full_snapshotsr   )rr   r3   r  r  s       rw   r  z QdrantRemote.list_full_snapshotsc  s    ++44--/##  W``(J;;HE``''55IIKRR	$T&TT$	 as   B c                    | j                   rL| j                  j                  t        j                               j
                  }t        j                  |      S | j                  j                  j                  |      j                  S )N)r  )rE   r   
CreateFullr   CreateFullSnapshotRequestr  r   r  rf   r  create_full_snapshotr   )rr   r  r3   r  s       rw   r  z!QdrantRemote.create_full_snapshotn  sp    #'#6#6#A#A..0$"" ! ::;OPP""00EE4EPWWWrx   c                     | j                   r0| j                  j                  t        j                  |             y| j
                  j                  j                  ||      j                  S )N)r  T)r  r  )	rE   r   
DeleteFullr   DeleteFullSnapshotRequestrf   r  delete_full_snapshotr   )rr   r  r  r3   s       rw   r  z!QdrantRemote.delete_full_snapshotw  sc     **..]K ""00EE'd F 

&	rx   locationchecksumpriorityc           
          | j                   j                  j                  ||t        j                  ||||            j
                  S )Nr  r  r  r-   )r   r  snapshot_recover)rf   r  recover_from_snapshotr!   SnapshotRecoverr   )rr   r   r  r-   r  r  r  r3   s           rw   recover_snapshotzQdrantRemote.recover_snapshot  sP     ""00FF+#33!!!	 G 	
 &		rx   shard_idc                 z    | j                   j                  j                  ||      j                  }|J d       |S )N)r   r  r  )rf   r  list_shard_snapshotsr   )rr   r   r  r3   r  s        rw   r  z!QdrantRemote.list_shard_snapshots  sP     ''55JJ+ K 
 & 	 $O&OO$rx   c                 f    | j                   j                  j                  |||      j                  S )N)r   r  r  )rf   r  create_shard_snapshotr   )rr   r   r  r  r3   s        rw   r	  z"QdrantRemote.create_shard_snapshot  s9     ""00FF+ G 
 &		rx   c                 h    | j                   j                  j                  ||||      j                  S )N)r   r  r  r  )rf   r  delete_shard_snapshotr   )rr   r   r  r  r  r3   s         rw   r  z"QdrantRemote.delete_shard_snapshot  s<     ""00FF+'	 G 

 &	rx   c                     | j                   j                  j                  |||t        j                  ||||            j
                  S )Nr   )r   r  r  shard_snapshot_recover)rf   r  recover_shard_from_snapshotr!   ShardSnapshotRecoverr   )	rr   r   r  r  r-   r  r  r  r3   s	            rw   recover_shard_snapshotz#QdrantRemote.recover_shard_snapshot  sS     ""00LL+#)#>#>!!!	$	 M 

 &
	rx   reasonc                     | j                   j                  j                  t        j                  |d            j
                  }|J d       |S )NT)error_messagewritezLock storage returned Nonerf   service_api
post_locksr!   LocksOptionr   )rr   r  r3   r   s       rw   lock_storagezQdrantRemote.lock_storage  sO    .2.A.A.M.M.X.XV4@/

& 	 !?#??!rx   c                     | j                   j                  j                  t        j                  d            j
                  }|J d       |S )NF)r  zPost locks returned Noner  rr   r3   r   s      rw   unlock_storagezQdrantRemote.unlock_storage  sM    .2.A.A.M.M.X.XU+/

& 	 !=#==!rx   c                 t    | j                   j                  j                         j                  }|J d       |S )NzGet locks returned None)rf   r  	get_locksr   r  s      rw   r  zQdrantRemote.get_locks  s9    .2.A.A.M.M.W.W.Y.`.`!<#<<!rx   r   shards_number	placementc                    | j                   rt        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  ||||xs g             | j                        j                  S | j                  j                  j                  ||t        j                   ||||            j                  }|J d       |S )N)r   r  r  r   r   r/   r  r   )r   r/   create_sharding_keyzCreate shard key returned None)rE   r_   r   r!   ShardKeyr   convert_shard_keyr   CreateShardKeyr   CreateShardKeyRequestrT   r   rf   cluster_apicreate_shard_keyCreateShardingKey)	rr   r   r   r  r  r   r/   r3   r   s	            rw   r)  zQdrantRemote.create_shard_key  s     )%8%IJ&88C	((77**$3# //"+&3+="+/r		  8  f ((44EE /$*$<$<'"/'9'	% F 	 f  %G'GG%Mrx   c           	         | j                   rt        |t        t        j                              rt        j                  |      }| j                  j                  t        j                  ||t        j                  |            | j                        j                  S | j                  j                  j                  ||t        j                   |            j                  }|J d       |S )N)r   r"  r   )r   r/   drop_sharding_keyzDelete shard key returned None)rE   r_   r   r!   r$  r   r%  r   DeleteShardKeyr   DeleteShardKeyRequestrT   r   rf   r(  delete_shard_keyDropShardingKey)rr   r   r   r/   r3   r   s         rw   r/  zQdrantRemote.delete_shard_key  s     )%8%IJ&88C	((77**$3# //"+  8 	 f	 ((44EE /"("8"8'# F  f  %G'GG%Mrx   c                     | j                   rB| j                  j                  t        j                               }t        j                  |      S | j                  j                  j                         }|J d       |S )NzHealthcheck returned None)
rE   r   HealthCheckr   HealthCheckRequestr   convert_health_check_replyr   r  root)rr   version_infos     rw   infozQdrantRemote.info.  si    >>55d6M6M6OPL88FFyy,,113'D)DD'rx   )Ni  i  FNNNNNNNr{   )ry   N)NN)NN
   NTFNTNNN)NNNNNr8  NTFNNNNN)NNNNNr8     TFNNNNNN)NNr8  r   TFNNNNN)Nr9  r8  NNNN)NNNNr8  r   TFNNNNNNN)NNNNr8  r   NTFNNNNNNN)NNNNr8  r   TFNNNNN)	Nr8  NNTFNNN)NTNN)Nr8  FNNN)TNN)TFNNN)TN)NNNNNNN)NNNNNNNNNNNN)r   NFN)@   r   Nr9  FN)NNr:  r   Nr9  FN)NNTN)T)NNNT)NNNN)__name__
__module____qualname__r   rC  r  boolr   r   r   r   r   rD   propertyr}   floatr   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r5   r   r  r   r   r	   ScoredPointr   r  r  
NumpyArrayr  r  PayloadSelectorr  r  r$  r&  r(  r+  r.  r-  r8  r{  SparseVectorDocumentWithLookupInterfaceGroupsResultrH  r!   rO  SearchMatrixPairsResponserY  SearchMatrixOffsetsResponsera  re  rm  r  rx  r  r  r  r  r  r  r  r  Recordr  CountResultr  r  r  Pointsr  UpdateResultr  PointVectorsr  r  r  r  classmethodr  r  r  r  r  r  Payloadr  r$  r'  r-  UpdateOperationr7  r<  rC  rJ  rL  rS  rX  rZ  CollectionInfor^  rd  rn  rp  r{  rt  rv  r
   SparseVectorParamsrm  r~  r  r  r  r  r  r  r  r   r%   r  r   r  r  r  r  VectorStructr  r  r  r  SnapshotDescriptionr  r  r  r  r  r  SnapshotPriorityr  r  r	  r  r  r  r  r  r  r$  r)  r/  VersionInfor7  __classcell__)rv   s   @rw   r'   r'   .   s%    ""! $!% $!%"15 J#c]J# smJ# 	J#
 J# ~J# #J# J# #J# smJ# tCH~.J# &(2s7#Xb)C..@%AAB
J# J#X    # $ : * *hsmS(3-RU&V W * *"GQMEOYUM 1(<(< 1 1 ,4?? , , /d&8&8 / / * * * -$"6"6 - - (T__ ( ( + 2 2 + + &4?? & & #hy) # # #hy) # # 8<!%00 5../0 e334	0
 #0 0 
d5$$%	&0x 046: $JN38+/#7;?C!%)xx UO#tE{"###	
x u||,x   2 23x x x D(3-1F1FFGx D(3-/0x  "%!x" #x$ e334%x& %U%;%;<'x( #)x* +x, 
e	 -xz (,#FJ/36: $JN38+/6:7;?C!%!@@ $@ }	@
 U^^(<dBC@ u||,@   2 23@ @ @ D(3-1F1FFG@ D(3-/0@ "%@ e223@ e334@ %U%;%;<@  #!@" #@$ 
		%@L 8<!%33 5--.3 e334	3
 #3 3 
e!!	"3D #FJ/36:JN38+/;?6:7;?C!%7S'S' S' MMKeKKNN	
	S' }S' U^^(<dBCS'  u||,!S'"   2 23#S'$ %S'& 'S'( D(3-1F1FFG)S'* D(3-/0+S', "%-S'. e778/S'0 e2231S'2 e3343S'4 %U%;%;<5S'6 #7S'8 9S': 
		;S'@ 157;KO38+/;?7;?C!%+CC UO#tE{"###	
C C v}}-C   3 34C C C D(3-1G1GGHC  D(3-/0!C" "%#C$ e778%C& e334'C( %U%;%;<)C* #+C, -C. 
		/CP 04#7;?C!%6$6$ u||,6$ 	6$
 6$ }6$ e3346$ %U%;%;<6$ #6$ 6$ 
	(	(6$v 04#7;?C!%6$6$ u||,6$ 	6$
 6$ }6$ e3346$ %U%;%;<6$ #6$ 6$ 
	*	*6$x 8<!%00 51120 e334	0
 #0 0 
d5$$%	&0j @D?C/36:FJ/4+/#6:6:7;?C!%#FF 8E$:$:;<F 8E$:$:;<	F
 u||,F   2 23F F F D$s)U-B-BBCF D$s)O,F "%F }F e223F 5223F e334F  %U%;%;<!F" ##F$ %F& 
e	 'FX KOJN047;+/KO38#7;;?6:7;?C!%'UU U 8E%--e*D$EFG	U
 8E%--e*D$EFGU v}}-U   3 34U U U "%U D(3-1G1GGHU D(3-/0U }U f334U e778U  5223!U" e334#U$ %U%;%;<%U& #'U( )U* 
		+Ut 04@D/36:FJ/4#6:7;?C!% ++, (5#;#;<=	
 u||,   2 23   D$s)U-B-BBC D$s)O, } e223 e334 %U%;%;< #  !" 
e	 #J 8<!%.. 5001. e334	.
 #. . 
d5$$%	&.f 15,0*.JN387;?C!%XHXH  -XH 	XH
 5==)XH 'XH D(3-1F1FFGXH D(3-/0XH e334XH %U%;%;<XH #XH XH 
tELL!8EMM#::	;XHz 04?C!%)) u||,) 	)
 %U%;%;<) #) ) 
		)^ 04!%7;?C99 9 u||,	9
 9 9 #9 e3349 %U%;%;<9 9 
		9~ 26?CNN N 	N
 5../N %U%;%;<N N 
		Nh 26?C&& ++,& 	&
 5../& %U%;%;<& & 
		&Z 26?C11 #1 $$	1
 1 5../1 %U%;%;<1 1 
		1n KO387;?C!%FF emm$F D(3-1F1FFG	F
 D(3-/0F e334F %U%;%;<F #F F 
ell	FP 3))3	t""HT-B-B$CC	D3 3B !$$! %U%;%;<! 
			! !F "11	dll	   )) 	xV3345x7NN	O   B 26?C,, --, 	,
 5../, %U%;%;<, , 
		,f "26?C22 2 $$	2
 c]2 2 5../2 %U%;%;<2 2 
		2r 26?C11 1 $$	1
 1 5../1 %U%;%;<1 1 
		1p 26?C.. sm. $$	.
 . 5../. %U%;%;<. . 
		.h 26?C,, --, 	,
 5../, %U%;%;<, , 
		,d 26&& $E$9$9:& 	&
 5../& & 
e  	!&V "&&#+E,A,A#B& #& 	&
 
&P".1		)	),C E,L,L   0I0I $c S UEYEY      CGBF<@6:FJ!%RVLL $E$>$>?L $E$>$>?	L
 !!8!89L e223L &e&B&BCL #L  (U5M5M0M(NOL L 
L^ >B"-5c]MP	& '+,026*.6:BF48BF.2!%RV:>jj e00'#u?Q?Q:Q2RRSj sm	j
 %SMj #+3-j "$j e223j $E$>$>?j U001j &e&>&>?j ENN+j #j  (U5M5M0M(NOj "%"6"67j  !j" 
#j` '+,026*.6:BF48BF.2!%RV:>#
#
 e00'#u?Q?Q:Q2RRS#
 sm	#

 %SM#
 #+3-#
 "$#
 e223#
 $E$>$>?#
 U001#
 &e&>&>?#
 ENN+#
 ##
  (U5M5M0M(NO#
 "%"6"67#
  !#
" 
##
J %\ 2 % %  $?C0"0 0 	0
 0 0 0 %U%;%;<0 
0l  $?C

 %,,'
 	

 
 
 
 
 %U%;%;<
 
 

:  $?C

 **+
 	

 
 
 
 
 %U%;%;<
 
 

@ 7;15 $?C

 e&&&')9)98EDVDV;WW

 (4S>23
 hu}}-.
 
 
 
 
 
 %U%;%;<
 
 

J ;?8<26VV V u667	V
 U445V V 5../V V 
		Vx 26  	
 5../  
		<".1	e''	(  26"*.AD	%++	, FJ"36>BUX	$"	C 	D9R9R4S 	X X XHaHa X 04 (,?B	$" "&"&59  #	
 3- 5112   
$*".1=@	e''	( AE".19=PS	%++	,   	
   
$( "&"&59  	
 # 3- 5112   
$.3 # %:K:K s u/@/@ # %*;*;  (,,0)-!%'' >>'  }	'
 %SM' DI&' #' ' 
'Z "&	 >> #	
  
@e'' rx   r'   )<r   r   rR   r\   multiprocessingr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   rX   numpyr  r   r   urllib3.utilr   r   qdrant_clientqdrant_client._pydantic_compatr   qdrant_client.authr   qdrant_client.client_baser   qdrant_client.connectionr   r   qdrant_client.conversionsr   r  &qdrant_client.conversions.common_typesr   $qdrant_client.conversions.conversionr   r   r   qdrant_client.httpr   r    r!    qdrant_client.parallel_processorr"   $qdrant_client.uploader.grpc_uploaderr#   $qdrant_client.uploader.rest_uploaderr$   qdrant_client.uploader.uploaderr%   r'   rB   rx   rw   <module>rk     sw        1        ' & 4 ) 0 C ; F 
 ; : ? B B 8F4: F4rx   