
    Ng                    f   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;dS )    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            )       &    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j!        fd"            Z"edej#        fd#            Z$edej%        fd$            Z&edej        fd%            Z'edej!        fd&            Z(edej#        fd'            Z)edej%        fd(            Z*ede+e,         fd)            Z-ede+e,         fd*            Z.	 	 dd+ed,e/e0j1                 d-ee0j2                 dee         dede3e3e0j4                          fd.Z5	 	 	 	 	 	 	 	 	 	 	 dd+ed1e	e/e         eee3e         f         e0j6        e0j7        e0j8        f         d2ee0j9                 d3ee0j:                 d4ed5ee         d6e	ee/e         e0j;        f         d7e	ee/e         f         d8ee         d9ed-ee0j2                 d:ee0j<                 dee         dede3e0j4                 fd;Z=	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd+ed<ee0j>                 d=ee         d>e	e0j?        e3e0j?                 df         d2ee0j9                 d3ee0j:                 d4ed5ee         d6e	ee/e         e0j;        f         d7e	ee/e         f         d8ee         d?ee0j@                 d-ee0j2                 d:ee0j<                 dee         dede0jA        f"d@ZB	 	 dd+ed,e/e0jC                 d-ee0j2                 dee         dede3e0jA                 fdAZD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd+edCed<e	e0jE        e3e         e3e3e                  e0jF        e0j>        e0j8        e0jG        df         d=ee         d>e	e0j?        e3e0j?                 df         d2ee0j9                 d3ee0j:                 d4edDed6e	ee/e         e0j;        f         d7e	ee/e         f         d8ee         dEee0jH                 d?ee0j@                 d-ee0j2                 d:ee0j<                 dee         dede0jI        f&dFZJ	 	 	 	 	 	 	 	 	 	 	 dd+ed1e	e/e         eee3e         f         e0j6        e0j7        e0j8        f         dCed2eeKj9                 d3eeKj:                 d4edDed6e	ee/e         eKj;        f         d7e	ee/e         f         d8ee         dEee0jH                 d-ee0j2                 d:ee0j<                 dee         dede0jI        f dHZL	 	 	 	 	 	 	 dd+ed2ee0j9                 d4edIed=ee         d-ee0j2                 d:ee0j<                 dee         dede0jM        fdJZN	 	 	 	 	 	 	 dd+ed2ee0j9                 d4edIed=ee         d-ee0j2                 d:ee0j<                 dee         dede0jO        fdKZP	 	 dd+ed,e/e0jQ                 d-ee0j2                 dee         dede3e3e0j4                          fdLZR	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd+edNee/e0jS                          dOee/e0jS                          d2ee0j9                 d3ee0j:                 d4ed5ed6e	ee3e         e0j;        f         d7e	ee3e         f         d8ee         d=ee         d?ee0j@                 dPee0jT                 d-ee0j2                 d:ee0j<                 dee         dede3e0j4                 f$dQZU	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd+edCedNee/e	e0jE        e3e         f                           dOee/e	e0jE        e3e         f                           d2eeKj9                 d3eeKj:                 d4edDed8ee         d6e	ee/e         eKj;        f         d7e	ee/e         f         d=ee         d?eeKj@                 dEee0jH                 dPee0jT                 d-ee0j2                 d:ee0j<                 dee         dede0jI        f(dRZV	 	 	 	 	 	 	 	 	 	 	 	 	 dd+edSee0jW                 dTee/e0jX                          d2ee0j9                 d3ee0j:                 d4ed5ed6e	ee3e         e0j;        f         d7e	ee3e         f         d=ee         d?ee0j@                 d-ee0j2                 d:ee0j<                 dee         dede3e0j4                 f dUZY	 	 dd+ed,e/e0jZ                 d-ee0j2                 dee         dede3e3e0j4                          fdVZ[	 	 	 	 	 	 	 	 	 dd+edWee0j9                 d4edXee0j\                 d5ee0jE                 d6e	ee/e         e0j;        f         d7e	ee/e         f         d-ee0j2                 d:ee0j<                 dee         dedee3e0j]                 ee0jE                 f         fdYZ^	 	 	 	 dd+edZee0j9                 d[ed:ee0j<                 dee         dede0j_        fd\Z`	 	 	 	 	 	 dd+ed]ed^ee0j9                 d4ed[edee         d-ee0j2                 d:ee0j<                 dede0ja        fd_Zb	 	 	 dd+ed`e0jc        daedbee0jd                 d:ee0j<                 dede0je        fdcZf	 	 	 dd+ed`e/e0jg                 daedbee0jd                 d:ee0j<                 dede0je        fddZh	 	 	 dd+edee/e         d`e0ji        daedbee0jd                 d:ee0j<                 dede0je        fdfZj	 	 	 	 	 dd+edge/e0jE                 d6e	ee/e         e0j;        f         d7e	ee/e         f         d-ee0j2                 d:ee0j<                 dee         dede3e0j]                 fdhZkeld`e0ji        deeji        eej<                 f         fdi            Zmeld`e0ji        d:ee0j<                 deKji        fdj            Zneldkeji        de3ejE                 fdl            Zoeld`e0ji        deee3eKjp                          eeKj9                 f         fdm            Zq	 	 	 dd+edke0ji        daedbee0jd                 d:ee0j<                 dede0je        fdnZr	 	 	 	 dd+edoe0js        d`e0ji        d]ee         daedbee0jd                 d:ee0j<                 dede0je        fdpZt	 	 	 dd+edoe0js        d`e0ji        daedbee0jd                 d:ee0j<                 dede0je        fdqZu	 	 	 dd+edre/e         d`e0ji        daedbee0jd                 d:ee0j<                 dede0je        fdsZv	 	 	 dd+edke0ji        daedbee0jd                 d:ee0j<                 dede0je        fdtZw	 	 dd+edue/e0jx                 daedbee0jd                 dede3e0je                 fdvZy	 ddwe/e0jz                 dee         dedefdxZ{d+edede0j|        fdyZ}dede0j|        fdzZ~dede0j        fd{Zd+edede0j        fd|Zd+ededefd}Z	 	 	 	 	 	 	 dd+ed~ee0j                 dee0j                 dee0j                 dee0j                 dee0j                 dee         deeee0j        f                  dedefdZ	 dd+edee         dedefdZ	 	 	 	 	 	 	 	 	 	 	 	 dd+ede	e0j        eee0j        f         f         dee         dee         dee         dee         dee0j                 d~ee0j                 dee0j                 dee0j                 dee0j                 dee         deeee0j        f                  dee0j                 dedef dZ	 	 	 	 	 	 	 	 	 	 	 	 dd+ede	e0j        eee0j        f         f         dee         dee         dee         dee         dee0j                 d~ee0j                 dee0j                 dee0j                 dee0j                 dee         deeee0j        f                  dee0j                 dedef dZedee         fd            Z	 	 	 	 dded+edededee         daed:ee0j<                 ddfdZ	 	 	 	 	 	 dd+edee0j]                 dededee         dedaed:ee0j<                 deddfdZ	 	 	 	 	 	 dd+ed`ee0j                 dededee         dedaed:ee0j<                 deddfdZ	 	 	 	 	 	 	 	 dd+edee	eee0j8        f         e0j8        ee0j                 f         doeeeeef                           dgeee0jE                          dededee         dedaed:ee0j<                 deddfdZ	 	 	 	 dd+ededee0j                 dee0j                 daedbee0jd                 dede0je        fdZ	 	 dd+ededaedbee0jd                 dede0je        fdZd+edede3e0j                 fdZ	 dd+edaededee0j                 fdZ	 dd+ededaededee         f
dZdede3e0j                 fdZddaedede0j        fdZ	 ddedaededee         fdZ	 	 	 	 dd+eded
ee         dee         dee0j                 daededee         fdZd+ededede3e0j                 fdZ	 dd+ededaededee0j                 f
dZ	 dd+edededaededee         fdZ	 	 	 	 dd+ededed
ee         dee         dee0j                 daededee         fdZdedede0j        fdZdede0j        fdZdede0j        fdZ	 	 	 	 dd+ede0j        dee         dee         dee3e                  dee         dedefdZ	 dd+ede0j        dee         dedef
dZde0j        fdZ xZS )QdrantRemoteN    Furlport	grpc_portprefer_grpchttpsapi_keyprefixtimeouthostgrpc_optionsauth_token_providerkwargsc                 H    t                      j        d#i | || _        || _        |
| _        ||n|d u| _        | j        rdnd| _        |pd| _        t          | j                  dk    r | j        d         dk    rd| j         | _        ||	t          d| d|	           |	9|	
                    d          s|	
                    d	          rt          d
          |r|
                    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                   n|	pd| _        || _        |t%          j        |          nd | _        || _        || _        |                    dd           }|| j        dv rt1          j        d d          }|                    dd          }g | _        |                    di           | _        |E| j        dk    rt9          j        d           || j        d<   | j                            d|f           |                    dd           }|4t?          |t@                    stC          dtE          |                     |t@          j#        k    rt          d          || _$        | j        | j         d| j         n| j        }| j         d| | j         | _%        | j        |d|| _&        |
|| j&        d<   | j        | j        | j&        d<   | j        =| j        dk    rt9          j        d            tO          | j                  }|| j&        d!<   tQ          d#d"| j%        i| j&        | _)        d | _*        d | _+        d | _,        d | _-        d | _.        d | _/        d | _0        d | _1        d | _2        d | _3        d| _4        d S )$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 )r7   r.   zUnknown scheme: limits)r:   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>   r1   z8Auth token provider is used with an insecure connection.authr2    )5super__init___prefer_grpc
_grpc_port_grpc_options_https_scheme_prefixlen
ValueError
startswithr   r2   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/   r0   r1   r2   r3   r4   r5   
parsed_urlr;   r>   r@   addressbearer_auth	__class__s                      W/var/www/html/ai-engine/env/lib/python3.11/site-packages/qdrant_client/qdrant_remote.pyrF   zQdrantRemote.__init__/   s   " 	""6"""'#)$0eegT6I"&+9ww6|t|q  T\!_%;%;-t|--DL?t/`3``Z^``aaa!;!;tz?Z?Z7  
  	~~k** ! !3jj'nnJ%/_jo"DJ
  1(/7:)0'+z;tDJ| 
  A!A A/9A A  
 |#444 !BDL!B!BCCC 5 ,DJDJ #*"5DIg4 	  $7!Hd++>z777 dVWXXX

7E**#ZZ
B77|v%%LMMM -4Dy)%%y'&:;;; 39**=OQU2V2V'
;K[0Y0Y'N59:J5K5KN N   {222x   "226*2HTZ..$*...dj<CCGCT\CC&*&85SSFS(.DOH%=$)-DOI&$0|v%%XYYY$T%>??K&1DOF#3; 4
 4
4
o4
 4

 ">B HL%DH#<@!%BF$LP)HL'@D""    returnc                     | j         S N)rs   rt   s    ry   closedzQdrantRemote.closed   s
    |rz   
grpc_gracec                 P   t          | d          rF| j        ?	 | j                                         n$# t          $ r t	          j        d           Y nw xY wt          | d          ry| j        r	 t          j                    }|	                    | j                            |                     n/# t          $ r t	          j        d           Y nt          $ r Y nw xY w	 | j                                         n$# t          $ r t	          j        d           Y nw xY wd| _        d S )Nri   zKUnable to close grpc_channel. Connection was interrupted on the server sidern   )gracezOUnable to close aio_grpc_channel. Connection was interrupted on the server sidezNUnable to close http connection. Connection was interrupted on the server sideT)hasattrri   closeAttributeErrorloggingwarningrn   asyncioget_running_loopcreate_taskRuntimeErrorrh   	Exceptionrs   )rt   r   r5   loops       ry   r   zQdrantRemote.close   s   4)) 	d.@.L"((****!   a    
 4,-- 		$2H2T/11  !7!=!=J!=!O!OPPPP!   e         	%%'''' 	 	 	O`    	
 s:   3 AA/AB1 1C	CC!C; ;DDc                 j    t          |           }|j        |j        |j        |j        f\  }}}}||||fS r}   )r   rR   r2   r+   rS   )r*   parse_resultrR   r2   r+   r0   s         ry   
_parse_urlzQdrantRemote._parse_url   sF    %cNN	&
"dF tT6))rz   c           	          | j         rt          d          | j        @t          | j        | j        | j        | j        | j        | j	        | j
                  | _        d S d S Nz=Client was closed. Please create a new QdrantClient instance.)r2   r+   sslr?   optionscompressionr4   )rs   r   ri   r   rP   rH   rJ   r\   rI   re   rX   r~   s    ry   _init_grpc_channelzQdrantRemote._init_grpc_channel   ss    < 	`^___%!,Z_K+* 2 %)$=
" 
" 
"D &%rz   c           	          | j         rt          d          | j        @t          | j        | j        | j        | j        | j        | j	        | j
                  | _        d S d S r   )rs   r   rn   r   rP   rH   rJ   r\   rI   re   rX   r~   s    ry   _init_async_grpc_channelz%QdrantRemote._init_async_grpc_channel   sq    < 	`^___!)%6Z_K+* 2$($=& & &D""" *)rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   
PointsStubri   rj   r~   s    ry   _init_grpc_points_clientz%QdrantRemote._init_grpc_points_client  s/    !!!#'?43E#F#F   rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   CollectionsStubri   rk   r~   s    ry   _init_grpc_collections_clientz*QdrantRemote._init_grpc_collections_client  s0    !!!(,(<T=O(P(P%%%rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   SnapshotsStubri   rl   r~   s    ry   _init_grpc_snapshots_clientz(QdrantRemote._init_grpc_snapshots_client  s0    !!!&*&89K&L&L###rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   
QdrantStubri   rm   r~   s    ry   _init_grpc_root_clientz#QdrantRemote._init_grpc_root_client  s/    !!!!%1C!D!Drz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   r   rn   ro   r~   s    ry   _init_async_grpc_points_clientz+QdrantRemote._init_async_grpc_points_client  s/    %%''''+t7M'N'N$$$rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   r   rn   rp   r~   s    ry   #_init_async_grpc_collections_clientz0QdrantRemote._init_async_grpc_collections_client  s0    %%''',0,@AW,X,X)))rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   r   rn   rq   r~   s    ry   !_init_async_grpc_snapshots_clientz.QdrantRemote._init_async_grpc_snapshots_client  s0    %%'''*.*<T=S*T*T'''rz   c                 j    |                                   t          j        | j                  | _        d S r}   )r   r   r   rn   rr   r~   s    ry   _init_async_grpc_root_clientz)QdrantRemote._init_async_grpc_root_client#  s/    %%'''%)_T5K%L%L"""rz   c                 F    | j         |                                  | j         S zgRPC client for collections methods

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

        Returns:
            An instance of raw gRPC client, generated from Protobuf
        )ro   r   r~   s    ry   async_grpc_pointszQdrantRemote.async_grpc_points2  s(     '///111++rz   c                 ~    t          j        dt          d           | 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_   DeprecationWarningrq   r   r~   s    ry   async_grpc_snapshotsz!QdrantRemote.async_grpc_snapshots=  sO     	 J	
 	
 	
 	

 *222444..rz   c                 ~    t          j        dt          d           | 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   rr   r   r~   s    ry   async_grpc_rootzQdrantRemote.async_grpc_rootM  sL     		
 	
 	
 	

 %---///))rz   c                 F    | j         |                                  | j         S r   )rk   r   r~   s    ry   grpc_collectionszQdrantRemote.grpc_collections]  s(     (0..000,,rz   c                 F    | j         |                                  | j         S r   )rj   r   r~   s    ry   grpc_pointszQdrantRemote.grpc_pointsh  s(     #+))+++''rz   c                 F    | j         |                                  | j         S )r   )rl   r   r~   s    ry   grpc_snapshotszQdrantRemote.grpc_snapshotss  s(     &.,,...**rz   c                 F    | j         |                                  | j         S )r   )rm   r   r~   s    ry   	grpc_rootzQdrantRemote.grpc_root~  s(     !)'')))%%rz   c                     | j         S ztREST Client

        Returns:
            An instance of raw REST API client, generated from OpenAPI schema
        rh   r~   s    ry   restzQdrantRemote.rest       ""rz   c                     | j         S r   r   r~   s    ry   r7   zQdrantRemote.http  r   rz   collection_namerequestsconsistencyc                    | j         rfd|D             }t          |t          t          j                            rt          j        |          }| j                            t          j
        |||          ||n| j                  }d |j        D             S d |D             }| j        j                            ||t          j        |                    j        }|
J d            |S )	Nc                 r    g | ]3}t          |t          j                  rt          j        |          n|4S rD   )ra   r!   SearchRequestr   convert_search_request.0rr   s     ry   
<listcomp>z-QdrantRemote.search_batch.<locals>.<listcomp>  sR         "!V%9::J5aIII	  rz   )r   search_pointsread_consistencyr1   r1   c                 0    g | ]}d  |j         D             S )c                 6    g | ]}t          j        |          S rD   r   convert_scored_pointr   hits     ry   r   z8QdrantRemote.search_batch.<locals>.<listcomp>.<listcomp>  #    JJJ#055JJJrz   resultr   r   s     ry   r   z-QdrantRemote.search_batch.<locals>.<listcomp>  6       OPJJJJJ  rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   SearchPointsr   convert_search_pointsr   s     ry   r   z-QdrantRemote.search_batch.<locals>.<listcomp>  sL        9C1dFW8X8X_1!444^_  rz   searches)r   r   r1   search_request_batchzSearch batch returned None)rG   ra   r   r!   ReadConsistencyr   convert_read_consistencyr   SearchBatchr   SearchBatchPointsrV   r   r7   
points_apisearch_batch_pointsSearchRequestBatchrt   r   r   r   r1   r5   grpc_reshttp_ress    `      ry   search_batchzQdrantRemote.search_batch  s[     (	    "  H +':6;Q'R'RSS O(A+NN151A1M1M&$3"*%0#	   $+#6DM 2N 2 2H T\Tc    !  H
 	$88$3 +#)/)BH)U)U)U	 9  
   '')E'''Orz   
   Tquery_vectorquery_filtersearch_paramslimitoffsetwith_payloadwith_vectorsscore_thresholdappend_payloadshard_key_selectorc                 d   |
st          j        d           |
}t          |t          j                  r|                                }| j        rNd }d }t          |t          j                  r|j	        }|j
        }nt          |t          j                  r3|j
        }t          j        |j	        j                  }|j	        j        }n5t          |t                     r|d         }|d         }nt#          |          }t          |t$          j                  rt)          j        |          }t          |t$          j                  rt)          j        |          }t          |t1          t$          j                            rt)          j        |          }t          |t1          t$          j                            rt)          j        |          }t          |t1          t$          j                            rt)          j        |          }t          |t1          t$          j                            rt)          j         |          }| j!        "                    t          j#        ||||||||||	||||          ||n| j$                  }d |j%        D             S t          |t                     r"t          j        |d         |d         	          }t          |t          j                  rtM          j        |          }t          |t          j                  rtM          j        |          }t          |t          j'                  rtM          j(        |          }| j)        j*        +                    |||t%          j,        ||||||||	|
	  	                  }|j%        }|
J d            |S )NzUUsage of `append_payload` is deprecated. Please consider using `with_payload` insteaddatar      model)r   vectorvector_namefilterr   r   r   r   paramsr   r   r1   sparse_indicesr   r   c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z'QdrantRemote.search.<locals>.<listcomp>$  #    OOOSJ3C88OOOrz   namer  )	r  r  r   r   r	  with_vectorr   r   	shard_key)r   r   r1   search_requestSearch returned None)-r   r   ra   npndarraytolistrG   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   rV   r   r   WithPayloadSelectorconvert_with_payload_selectorr7   r   r   r   )rt   r   r   r   r   r   r   r   r   r   r   r   r   r1   r5   r  r
  r  ressearch_resultr   s                        ry   searchzQdrantRemote.search  s   .  	*Og   *LlBJ// 	1'..00L X	K!N,(9:: ,%,*/L%*ABB ,*/!%!39L9T!U!U!U%,3L%00 ,*1o%al++,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"'+'7'>'>!$3! +'!!-!-($3%0##1'9    $+?# (? ( (C( POCJOOOO ,.. _$0l1ol[\o^^^,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU I0>> /'%3''!( ,!-$30
  
  
 	 ?  M  9F8LF%%'=%%%Mrz   queryusingprefetchlookup_fromc                 
   | j         rnt          |t          t          j                            rt          j        |          }t          |t          j                  rt          j        |          g}t          |t                    rd |D             }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                            t5          j        |||||||
|	|||||||          ||n| j                  }d |j        D             }t          j        |          S t          |t4          j                  rt?          j        |          }t          |t4          j                   rt?          j        |          }t          |t                    rd |D             }t          |t4          j
                  rt?          j        |          }t          |t4          j                  rt?          j        |          }t          |	t4          j!                  rt?          j"        |	          }	t          |t4          j                  rt?          j        |          }t          j#        ||||||||||
|	|          }| j$        j%        &                    ||||	          }|j        }|
J d
            |S )Nc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   ra   r!   Prefetchr   convert_prefetch_queryr   ps     ry   r   z-QdrantRemote.query_points.<locals>.<listcomp>b  K        =Gq&/<Z<ZaJ5a888`a  rz   r  )r   r.  r0  r  r   r   r   r   r	  r   r/  r1  r1   r   r   r   c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z-QdrantRemote.query_points.<locals>.<listcomp>  s#    XXXcZ<SAAXXXrz   pointsc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   ra   r   PrefetchQueryr   r6  r7  s     ry   r   z-QdrantRemote.query_points.<locals>.<listcomp>  O         "!T%788J5a888  rz   )r  r0  r.  r/  r  r	  r   r   r   r  r   r1  )r   r   r1   query_requestr  )'rG   ra   r   r!   Queryr   convert_queryr5  r6  r  r  r  r   r!  r   r"  r#  r$  r%  LookupLocationconvert_lookup_locationr   r   r&  r'  r   r   QueryPointsrV   r   QueryResponser   r?  r)  r*  QueryRequestr7   r   query_points)rt   r   r.  r/  r0  r   r   r   r   r   r   r   r1  r   r   r1   r5   r+  scored_pointsrA  query_resultr   s                         ry   rI  zQdrantRemote.query_pointsG  s
   &  m	%&,!7!788 8"077(FO44 I&=hGGH(D))  %  
 ,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+v'<== N(@MM+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"&*&6&<&< $3%'!!-!-($3 +#'9%0  " $+?% '= ' 'C* YXSZXXXM'}==== %,, 8"077(D$677 G%<XFF(D))   &	   ,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU+t':;; N(@MM"/,!#$ /()'  M  9/<< /'+	 =  L 6B5HF%%'=%%%Mrz   c                    | j         rfd|D             }t          |t          t          j                            rt          j        |          }| j                            t          j
        |||          ||n| j                  }d |j        D             S d |D             }| j        j                            ||t          j        |                    j        }|
J d            |S )	Nc                 r    g | ]3}t          |t          j                  rt          j        |          n|4S rD   )ra   r!   rH  r   convert_query_requestr   s     ry   r   z3QdrantRemote.query_batch_points.<locals>.<listcomp>  sR         "!V%899J4QHHH	  rz   )r   rI  r   r1   r   c                 V    g | ]&}t          j        d  |j        D                       'S )c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z>QdrantRemote.query_batch_points.<locals>.<listcomp>.<listcomp>  s#    UUUSJ;C@@UUUrz   r;  )r!   rG  r   r   s     ry   r   z3QdrantRemote.query_batch_points.<locals>.<listcomp>  sO         $UUAHUUU    rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   rF  r   convert_query_pointsr   s     ry   r   z3QdrantRemote.query_batch_points.<locals>.<listcomp>  sL        8B!TEU7V7V]0333\]  rz   r   )r   r   r1   query_request_batchzQuery batch returned None)rG   ra   r   r!   r   r   r   r   
QueryBatchr   QueryBatchPointsrV   r   r7   r   query_batch_pointsQueryRequestBatchr   s    `      ry   rV  zQdrantRemote.query_batch_points  s\     +	    "  H +':6;Q'R'RSS O(A+NN040@0K0K%$3!)%0#	   $+#6DM 1L 1 1H  "	    !  H
 	$77$3 +#(.(@((S(S(S	 8  
   '')D'''Orz      group_by
group_sizewith_lookupc                 :	   | j         rt          |t          t          j                            rt          j        |          }t          |t          j                  rt          j        |          g}t          |t                    rd |D             }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          j        |          }t          |t          t          j                            rt          j        |          }t          |t          t          j                            rt          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                   j!        }tE          j#        |          S t          |t,          j                  rtE          j        |          }t          |t,          j$                  rtE          j        |          }t          |t                    rd |D             }t          |t,          j
                  rtE          j        |          }t          |t,          j                  rtE          j        |          }t          |
t,          j%                  rtE          j&        |
          }
t          |t,          j                  rtE          j        |          }t          |t,          j                  rtE          j        |          }t          j'        ||||||||||	||
||          }| j(        j)        *                    ||||          }|
J d            |j!        S )Nc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r4  r7  s     ry   r   z4QdrantRemote.query_points_groups.<locals>.<listcomp>$  r9  rz   r  
collectionr   r.  r0  r  r   r   r   r	  r   r/  rY  rZ  r[  r1  r1   r   r   r   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r>  r7  s     ry   r   z4QdrantRemote.query_points_groups.<locals>.<listcomp>c  r@  rz   )r  r0  r.  r/  r  r	  r   r   rY  rZ  r  r   r[  r1  )r   r   r1   query_groups_requestz%Query points groups API returned NonerD   )+rG   ra   r   r!   rB  r   rC  r5  r6  r  r  r  r   r!  r   r"  r#  r$  r%  
WithLookupconvert_with_lookupstrr   rD  rE  r   r   r&  r'  r   QueryGroupsQueryPointGroupsrV   r   r   convert_groups_resultr?  r)  r*  QueryGroupsRequestr7   r   query_points_groups)rt   r   rY  r.  r/  r0  r   r   r   rZ  r   r   r   r[  r1  r   r   r1   r5   r   rA  rK  s                         ry   ri  z QdrantRemote.query_points_groups  s   <  u	'%&,!7!788 8"077(FO44 I&=hGGH(D))  %  
 ,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+v'899 J(<[II+s++ F"oEEE+v'<== N(@MM+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"/3/?/K/K%   $3O% &X (<	
  % ". ". )= %4O  % &X  *z !, !, $G  (:'9!" &1[#& $+?) 0L 0 0* + , 3F;;;%,, 8"077(D$677 G%<XFF(D))   &	   ,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU+t77 J(<[II+t':;; N(@MM"5,!#$ /!%()''  M"  9/CC /'%2	 D  L  ++-T+++&&rz   r  c                    | j         rd }d }t          |t          j                  rt	          j        |          }t          |t                    rt          j        |          }t          |t          j	                  r|j
        }|j        }nt          |t          j                  r3|j        }t          j        |j
        j                  }|j
        j        }n5t          |t                     r|d         }|d         }n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        |          }| j                             t          j!        di d|d|d|d	|d
|d|d|	d|d|d|
d|d|d|d|d|d|||n| j"                  j#        }tI          j%        |          S t          |t          j                  rtI          j        |          }t          |t                     r(tM          t          j	        |d         |d                   }t          |tN          j(                  r|)                                }t          |t          j                  rtI          j        |          }t          |t          j                  rtI          j        |          }t          |t          j*                  rtI          j+        |          }tM          t          j,        |||||	|
|||||          }| j-        j.        /                    ||||          j#        S )Nr^  r  r   r  r  r   r  r  r  r   rZ  r   r   r	  r   rY  r   r[  r1   r
  r   r   r  )r  r  r	  r   r  r   rY  rZ  r   r[  r  )search_groups_requestr   r   r1   rD   )0rG   ra   r!   rb  r   rc  rd  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SearchPointGroupsrV   r   r   rg  r   r  r  r  r)  r*  SearchGroupsRequestrh   r   search_point_groups)rt   r   r   rY  r   r   r   rZ  r   r   r   r[  r   r   r1   r5   r  r
  r  r   rk  s                        ry   search_groupszQdrantRemote.search_groups  s   0  k	K!N+v'899 J(<[II+s++ F"oEEE,(9:: ,%,*/L%*ABB ,*/!%!39L9T!U!U!U%,3L%00 ,*1o%al++,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"(,(8(E(E&   $3O!6 !, (<	
  %  *z ". ". )= %4O &X &1[ !, $G $2>  (:'9!$ $+#6DM' )F ) )( ) , 3F;;;+t77 J(<[II,.. (&%a'?      ,
33 5+2244,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU$-*##$)( /!%',% % %! &1EE&; /'	 F  
 rz   samplec	                    | j         rt          |t          j                  rt	          j        |          }t          |t          t          j                            rt	          j        |          }t          |t          t          j	                            rt	          j
        |          }| j                            t          j        ||||||||          ||n| j                  }
t!          j        |
j                  S t          |t          j                  rt!          j        |          }| j        j                            |||t          j        |||||                    j        }|
J d            |S )Nr  r   r  rq  r   r/  r1   r   r   r   r  r   rq  r/  r  r   r   r1   search_matrix_requestz(Search matrix pairs returned None result)rG   ra   r!   r  r   r  r   r&  r'  r   r   r   SearchMatrixPairsr   SearchMatrixPointsrV   r   convert_search_matrix_pairsr   rh   r   search_matrix_pairsSearchMatrixRequestrt   r   r   r   rq  r/  r   r   r1   r5   responsesearch_matrix_results               ry   rz  z QdrantRemote.search_matrix_pairs  s     	K,66 M)8|LLL,.A&BY.Z.Z[[ _%/%JK]%^%^"+':6;Q'R'RSS O(A+NN'99'$3'!#%0'9	 	 	 $+#6DM :  H 9(/JJJlDK00 	I%4<HHHL#2=QQ+#"("<,## # #	  R  
  
  	 $//1[///##rz   c	                    | j         rt          |t          j                  rt	          j        |          }t          |t          t          j                            rt	          j        |          }t          |t          t          j	                            rt	          j
        |          }| j                            t          j        ||||||||          ||n| j                  }
t!          j        |
j                  S t          |t          j                  rt!          j        |          }| j        j                            |||t          j        |||||                    j        }|
J d            |S )Nr  rs  r   rt  ru  z*Search matrix offsets returned None result)rG   ra   r!   r  r   r  r   r&  r'  r   r   r   SearchMatrixOffsetsr   rx  rV   r   convert_search_matrix_offsetsr   rh   r   search_matrix_offsetsr{  r|  s               ry   r  z"QdrantRemote.search_matrix_offsetsP  s     	M,66 M)8|LLL,.A&BY.Z.Z[[ _%/%JK]%^%^"+':6;Q'R'RSS O(A+NN';;'$3'!#%0'9	 	 	 $+#6DM <  H ;HOLLLlDK00 	I%4<HHHL#2=SS+#"("<,## # #	  T  
  
  	 $//1]///##rz   c                    | j         rfd|D             }t          |t          t          j                            rt          j        |          }| j                            t          j
        |||          ||n| j                  }d |j        D             S d |D             }| j        j                            |t          j        |                    j        }|S )Nc                 r    g | ]3}t          |t          j                  rt          j        |          n|4S rD   )ra   r!   RecommendRequestr   convert_recommend_requestr   s     ry   r   z0QdrantRemote.recommend_batch.<locals>.<listcomp>  sR         "!V%<==J8OLLL	  rz   )r   recommend_pointsr   r1   r   c                 0    g | ]}d  |j         D             S )c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z;QdrantRemote.recommend_batch.<locals>.<listcomp>.<listcomp>  r   rz   r   r   s     ry   r   z0QdrantRemote.recommend_batch.<locals>.<listcomp>  r   rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   RecommendPointsr   convert_recommend_pointsr   s     ry   r   z0QdrantRemote.recommend_batch.<locals>.<listcomp>  sO         "!T%9::J7:::	  rz   r   )r   r   recommend_request_batch)rG   ra   r   r!   r   r   r   r   RecommendBatchr   RecommendBatchPointsrV   r   r7   r   recommend_batch_pointsRecommendRequestBatchr   s    `      ry   recommend_batchzQdrantRemote.recommend_batch  sF     (	    "  H +':6;Q'R'RSS O(A+NN151A1P1P)$3%-%0#	   $+#6DM 2Q 2 2H T\Tc     "  H 8<y7K7b7b /'(.(Dh(W(W(W 8c 8 8 	 
 Orz   r   positivenegativestrategyc                 X   |g }|g }| j         rut          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        |          }| j                            t5          j        di d|d|d|d|d|d|d|	d	|d
|d|
d|d|d|d|d|d|d|d|||n| j                  }d |j        D             S d |D             }d |D             }t	          |t4          j                  rt=          j        |          }t	          |t4          j                  rt=          j	        |          }t	          |t4          j                  rt=          j         |          }t	          |t4          j                  rt=          j        |          }| j!        j"        #                    |||t          j$        ||||||||	|
||||                    j        }|
J d            |S )Nr  r   r  r  r  r   r   r   r   r	  r   r/  r1  r   r  positive_vectorsnegative_vectorsr   r1   r   c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z*QdrantRemote.recommend.<locals>.<listcomp>  r  rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   ra   r   PointIdr   convert_point_idr   examples     ry   r   z*QdrantRemote.recommend.<locals>.<listcomp>  N         "'4<88!J/888 	  rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r  s     ry   r   z*QdrantRemote.recommend.<locals>.<listcomp>  r  rz   )r  r  r  r	  r   r   r   r  r   r1  r/  r  r  )r   r   r1   recommend_request"Recommend points API returned NonerD   )%rG   r   !convert_recommend_examples_to_ids%convert_recommend_examples_to_vectorsra   r!   r  r  r   r!  r   r"  r#  r$  r%  rD  rE  r   r   rd  RecommendStrategyconvert_recommend_strategyr&  r'  r   	Recommendr   r  rV   r   r   r)  r*  rh   r   r  r  )rt   r   r  r  r   r   r   r   r   r   r   r/  r1  r  r   r   r1   r5   positive_idsr  negative_idsr  r+  r   s                           ry   	recommendzQdrantRemote.recommend  sa   ( HH l	%GQQL)OPXYY%GQQL)OPXYY,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+v'<== N(@MM+':6;Q'R'RSS O(A+NN(S&*B$CDD K%@JJ,.A&BY.Z.Z[[ _%/%JK]%^%^"'+'7'A'A$   $3O)\ *\ (<	
  % "6 ". ". )= %4O  % !, &1[ &X &6%5  &6%5!" (:'9#$ $G%( $+#6DM+ (B ( (C0 POCJOOOO   (  H   (  H ,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU+t':;; N(@MM(3DD /'"("9'%%(!!- ,$3 +%0# # #	 E  & ' ( %%'K%%%Mrz   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	          j        |          }t          |t          t          j                            rt	          j        |          }| j                            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          j!        |          S t          |t          j                  rtA          j        |          }d |D             }d |D             }t          |t          j
                  rtA          j        |          }t          |t          j                  rtA          j        |          }t          |
t          j"                  rtA          j#        |
          }
t          |t          j                  rtA          j        |          }| j$        j%        &                    |||tO          t          j(        f||||||||
||	|||||d          j        }|
J d            |S )Nr^  r  r   r  r  r  rY  r   rZ  r   r   r	  r   r/  r1  r   r[  r  r  r  r   r1   r   z"Recommend groups API returned Nonec                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r   point_ids     ry   r   z1QdrantRemote.recommend_groups.<locals>.<listcomp>  N         "(DL99"J/999!	  rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r  s     ry   r   z1QdrantRemote.recommend_groups.<locals>.<listcomp>  r  rz   )r  r  r  rY  r   rZ  r	  r   r  r   r1  r/  r[  r  r  )r   r   r1   recommend_groups_requestr  rD   ))rG   ra   r!   rb  r   rc  rd  r   r  r  r  r  r   r!  r   r"  r#  r$  r%  rD  rE  r   r   r  r  r&  r'  r   RecommendGroupsRecommendPointGroupsrV   r   r   rg  r)  r*  rh   r   recommend_point_groupsr   RecommendGroupsRequest)rt   r   rY  r  r  r   r   r   rZ  r   r   r   r/  r1  r[  r  r   r   r1   r5   r  r  r  r  r+  r   s                             ry   recommend_groupszQdrantRemote.recommend_groupsB  s   ,  (388'388 |	+v'899 J(<[II+s++ F"oEEE%GQQL)OPXYY%GQQL)OPXYY,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+v'<== N(@MM+':6;Q'R'RSS O(A+NN(S&*B$CDD K%@JJ,.A&BY.Z.Z[[ _%/%JK]%^%^"%)%5%E%E)   $3O)\ *\ (<	
 &X  %  *z ". ". )= %4O  % !, &1[ !,  &X!" &6%5#$ &6%5%& (:'9'( $G), $+#6DM/ &F & &0 1 4 ??$H???3C888+t77 J(<[II  !)  H  !)  H ,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU+t':;; N(@MM(3JJ /')21*%%'%)(!- ,$3 + +%0!* * *	 K  , - 0 %%'K%%%Mrz   targetcontextc                    |g }| j         r|;t          |t          t          j                            rt          j        |          n|}d |D             }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                            t/          j        |||||||	|||
||||          ||n| j                  }d |j        D             S |.t          |t.          j                  rt9          j        |          n|}d |D             }t          |t.          j                  rt9          j        |          }t          |t.          j	                  rt9          j
        |          }t          |t.          j                  rt9          j        |          }t          |t.          j                  rt9          j        |          }| j        j         !                    |||t          j"        ||||||||	||
|                    j        }|
J d	            |S )
Nc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r!   ContextExamplePairr   convert_context_example_pairr   pairs     ry   r   z)QdrantRemote.discover.<locals>.<listcomp>  sO         "$(ABBJ;DAAA	  rz   r  )r   r  r  r  r   r   r   r   r	  r/  r1  r   r   r1   r   c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z)QdrantRemote.discover.<locals>.<listcomp>(  r  rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   r  r   r  r  s     ry   r   z)QdrantRemote.discover.<locals>.<listcomp>0  sO         "$(?@@J;DAAA	  rz   )r  r  r  r	  r   r   r   r  r1  r/  r  )r   r   r1   discover_requestz!Discover points API returned None)#rG   ra   r   r!   RecommendExampler   convert_target_vectorr  r  r   r!  r"  r#  r$  r%  rD  rE  r   r   r&  r'  r   Discoverr   DiscoverPointsrV   r   TargetVectorr   r)  r*  rh   r   discover_pointsDiscoverRequest)rt   r   r  r  r   r   r   r   r   r   r/  r1  r   r   r1   r5   r+  r   s                     ry   discoverzQdrantRemote.discover  s   $ ?G j	 %v':6;R'S'STT & 0888 	   $  G ,66 M)8|LLL-)<== P * @ O O,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+v'<== N(@MM+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"'+'7'@'@#$3!#'!!-!-( +%0'9#    $+#6DM# (A ( (C( POCJOOOO %*VT=N*O*O% 0888   $  G ,44 M)8|LLL-):;; P * @ O O,(@AA V)GUU+t':;; N(@MM(3CC /'!'!7!#'(!!- , +0" " "	 D  " # $ %%'J%%%Mrz   c                 X   | j         rZfd|D             }| j                            t          j        |||          ||n| j                  }d |j        D             S d |D             }| j        j        	                    t          j        |          ||          j        }|S )Nc                 r    g | ]3}t          |t          j                  rt          j        |          n|4S rD   )ra   r!   r  r   convert_discover_requestr   s     ry   r   z/QdrantRemote.discover_batch.<locals>.<listcomp>c  sR         "!V%;<<J7?KKK	  rz   )r   r  r   r1   r   c                 0    g | ]}d  |j         D             S )c                 6    g | ]}t          j        |          S rD   r   r   s     ry   r   z:QdrantRemote.discover_batch.<locals>.<listcomp>.<listcomp>w  r   rz   r   r   s     ry   r   z/QdrantRemote.discover_batch.<locals>.<listcomp>v  r   rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   r  r   convert_discover_pointsr   s     ry   r   z/QdrantRemote.discover_batch.<locals>.<listcomp>z  sO         "!T%899J6q999	  rz   r   )r   discover_request_batchr   r1   )rG   r   DiscoverBatchr   DiscoverBatchPointsrV   r   r7   r   discover_batch_pointsr!   DiscoverRequestBatchr   s    `      ry   discover_batchzQdrantRemote.discover_batchZ  s     &	    "  H 261A1O1O($3$,%0#	   $+#6DM 2P 2 2H T\Tc     "  H 8<y7K7a7a /'-'BH'U'U'U'	 8b 8 8
   Orz   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                            t+          j        |||||||||	|

  
        |
|
n| j                  }d |j        D             |                    d          rt5          j        |j                  nd fS t          |t*          j                  rt5          j        |          }t          |t*          j                  rt5          j        |          }t          |t*          j                  rt5          j        |          }t          |t*          j                   rt5          j!        |          }| j"        j#        $                    ||t          j%        |||||||	          |
          j        }|
J d            |j&        |j        fS )	Nr  )
r   r  r  r   r   r   r   r   r   r1   r   c                 6    g | ]}t          j        |          S rD   r   convert_retrieved_pointr   points     ry   r   z'QdrantRemote.scroll.<locals>.<listcomp>  s#    VVV%J6u==VVVrz   next_page_offset)r  r   r  r   r   r  r  )r   r   scroll_requestr1   z&Scroll points API returned None result)'rG   ra   r   r!   ExtendedPointIdr   convert_extended_point_idr  r  r"  r#  r$  r%  r   r   r&  r'  OrderByInterfaceconvert_order_by_interfacer   Scrollr   ScrollPointsrV   r   HasFieldr   r  r  r  OrderByconvert_order_byr)  r*  rh   r   scroll_pointsScrollRequestr<  )rt   r   r  r   r  r   r   r   r   r   r1   r5   r+  scroll_results                 ry   scrollzQdrantRemote.scroll  s      J	H&"5f6L"M"MNN F#=fEE-77 O * 9 N N N,(;F<W(X(XYY W)HVV,(;F<M(N(NOO M)>|LL+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"($78O$P$PQQ K%@JJ'+'7'>'>!$3(%!!-!-%0'9#   $+? (? ( (C  WV3:VVV<< 233
+C,@AAA  &$,// =#4V<<-55 O * 9 N N N(DL11 A%6x@@,(@AA V)GUU #.<<$3 +#)#7,#!)%%1$0"4$ $ $ $ =      !,,.V,,, ')GGGrz   count_filterexactc           	         | j         rt          |t          j                  rt	          j        |          }t          |t          t          j                            rt	          j        |          }| j	        
                    t          j        |||||          ||n| j                  j        }t          j        |          S t          |t          j                  rt          j        |          }| j        j                            |t          j        |||          |          j        }|
J d            |S )Nr  )r   r  r  r   r1   r   )r  r  r  )r   count_requestr1   z!Count points returned None result)rG   ra   r!   r  r   r  r   r&  r'  r   Countr   CountPointsrV   r   r   convert_count_resultrh   r   count_pointsCountRequest)	rt   r   r  r  r   r1   r5   r}  count_results	            ry   countzQdrantRemote.count  sh     	=,66 M)8|LLL,.A&BY.Z.Z[[ _%/%JK]%^%^"'-- $3''9#   $+? . 	 	   28<<<lDK00 	I%4<HHHL*5BB+ -#,  
  C 
 
  	 '')L'''rz   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                            t          j        ||||||||          ||n| j                  }
t!          j        d |
j        D                       S t          |t          j                  rt'          j        |          }| j        j                            |||t          j        |||||                    j        }|
J d            |S )	Nr  )r   r  r  r   r  r1   r   r   r   c                 6    g | ]}t          j        |          S rD   )r   convert_facet_value_hitr   s     ry   r   z&QdrantRemote.facet.<locals>.<listcomp>4  s#    WWW#j8==WWWrz   )hits)r  r  r   r  r  )r   r   r1   facet_requestz!Facet points returned None result)rG   ra   r!   r  r   r  r   r&  r'  r   r   r   Facetr   FacetCountsrV   r  FacetResponser  r   rh   r   facetFacetRequestr   )rt   r   r  r  r   r  r1   r   r   r5   r}  facet_results               ry   r  zQdrantRemote.facet  s     	,66 M)8|LLL,.A&BY.Z.Z[[ _%/%JK]%^%^"+':6;Q'R'RSS O(A+NN'-- $3'#%0'9	 	 	 $+#6DM .  H &WWWWW    lDK00 	I%4<HHHL*5;;+# -,#  	 < 
 
  	 '')L'''rz   r<  waitorderingc           	        	 | j         r[t          t          j                  rZt	          j        j        t          j                            		fdt          t          j                            D             t          t                    rd D             t          |t          j                  rt	          j        |          }t          |t          t          j                            rt	          j        |          }| j                            t%          j        ||||          | j                  j        }|
J d            t-          j        |          S t          t                    r"d D             t          j        |          t          t          j                  rt          j        |          | j        j                            |||	          j        }|
J d            |S )
Nc           
          g | ]b}t          j        t          j        j        |                   |         j        t          j        j        |                   nd           cS )N)idvectorspayload)r   PointStructr   r  idspayloadsconvert_payload)r   idxr<  vectors_batchs     ry   r   z'QdrantRemote.upsert.<locals>.<listcomp>X  s         $%?
3PP -c 2  &: '6vs7KLLL!%    rz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r!   r  r   convert_point_structr  s     ry   r   z'QdrantRemote.upsert.<locals>.<listcomp>e  sO         &eV-?@@#
7>>>"	  rz   r   r  r<  r  r   r   Upsert returned None resultc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   r  r   r  r  s     ry   r   z'QdrantRemote.upsert.<locals>.<listcomp>  sO         &eT-=>>#
7>>>"	  rz   r<  r  )batchr  )r   r  point_insert_operationsr  )rG   ra   r!   Batchr   convert_batch_vector_structr  rM   r  ranger  WriteOrderingconvert_write_orderingr   r&  r'  r   Upsertr   UpsertPointsrV   r   r   convert_update_result
PointsListPointsBatchrh   r   upsert_points)
rt   r   r<  r  r  r   r5   grpc_resulthttp_resultr  s
     `      @ry   upsertzQdrantRemote.upsertJ  sT     E	&&,// 4>4ZNC
OO5 5      %S__55   &$''   "(   (F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"*11!$3!%'9    2 	 	   **,I***3K@@@&$'' 
X  "(    *&DVWWW&&,// X+&DVWWW-8FF /(.!	 G  
   **,I***rz   c           	         | j         rd |D             }t          |t          j                  rt	          j        |          }t          |t          t          j                            rt	          j        |          }| j	        
                    t          j        |||||                    j        }|
J d            t          j        |          S | j        j                            ||t          j
        ||          |          j        S )Nc                 6    g | ]}t          j        |          S rD   )r   convert_point_vectorsr  s     ry   r   z/QdrantRemote.update_vectors.<locals>.<listcomp>  s#    RRR%j6u==RRRrz   r  r  r  )r   r  update_vectorsr  )rG   ra   r!   r  r   r   r   r&  r'  r   UpdateVectorsr   UpdatePointVectorsr   r   r#  rh   r   r-  )rt   r   r<  r  r  r   r5   r'  s           ry   r-  zQdrantRemote.update_vectors  s5     	RR6RRRF(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"*88'$3!%'9      **,I***3K@@@&1@@ /%3!0      " A   rz   r  c                    | j         r|                     |          \  }}	|p|	}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }| j
                            t          j        ||t          j        |          |||                    j        }
|

J d            t!          j        |
          S |                     |          \  }}| 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)rG   _try_argument_to_grpc_selectorra   r!   r  r   r   r   r&  r'  r   DeleteVectorsr   DeletePointVectorsVectorsSelectorr   r   r#  '_try_argument_to_rest_points_and_filterrh   r   r3  r   )rt   r   r  r<  r  r  r   r5   r2  opt_shard_key_selectorr'  _points_filters                ry   r3  zQdrantRemote.delete_vectors  s     '	6:6Y6YZ`6a6a3O3!3!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"*88'$3 0%   %4%'9	 	 	    **,Q***3K@@@#KKFSSGW&1@@ /!(("""0     	 A   rz   r  c                 v   | j         r,t          |t          t          j                            rt          j        |          }d |D             }t          j        |          }t          |t          t          j                            rt          j	        |          }t          |t          t          j
                            rt          j        |          }| j                            t          j        |||||||          ||n| j                  j        }	|	
J d            d |	D             S t          |t          j                  rt'          j        |          }d |D             }| j        j                            ||t          j        ||||          |          j        }
|

J d	            |
S )
Nc                     g | ]?}t          |t          t          j                            rt	          j        |          n|@S rD   ra   r   r!   r  r   r  r   r  s     ry   r   z)QdrantRemote.retrieve.<locals>.<listcomp>  sX         "#':6;Q'R'RSSJ8===	  rz   )r   r  r   r   r   r   r1   r   zRetrieve returned None resultc                 6    g | ]}t          j        |          S rD   r  )r   records     ry   r   z)QdrantRemote.retrieve.<locals>.<listcomp>$  s#    TTT6J6v>>TTTrz   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r?  s     ry   r   z)QdrantRemote.retrieve.<locals>.<listcomp>*  sK        6@T\5R5R[,S111X[  rz   )r  r   r  r  )r   r   point_requestr1   z!Retrieve API returned None result)rG   ra   r   r!   r"  r   r#  r%  r   r   r&  r'  r   Getr   	GetPointsrV   r   r)  r   r*  rh   r   
get_pointsPointRequest)rt   r   r  r   r   r   r   r1   r5   r   r(  s              ry   retrievezQdrantRemote.retrieve  s     ;	,(;F<W(X(XYY W)HVV    C &:<HHL+':6;Q'R'RSS O(A+NN,.A&BY.Z.Z[[ _%/%JK]%^%^"%))$3!-!-%0'9#   $+? *     %%'F%%%TTVTTTT ,(@AA V)GUU   C
 -8CC /'$1!- ,0	     D 
 
   **,O***rz   c                    d }t          |t                    r4t          j        t          j        d |D                                 }nt          |t          j                  r|}nt          |t          t          j                            r5|j        t          j	        |j                  }t          j
        |          }nt          |t          j                  r.t          j
        t          t          j        |                    }nOt          |t          j                  rt          j        |          }nt          dt          |                     ||fS )Nc                     g | ]?}t          |t          t          j                            rt	          j        |          n|@S rD   r>  r?  s     ry   r   z?QdrantRemote._try_argument_to_grpc_selector.<locals>.<listcomp>E  sX           *#/B6CY/Z/Z[[%J@EEE!$	  rz   )r  r;  )r  "Unsupported points selector type: )ra   r  r   PointsSelectorPointsIdsListr   r!   r  r   r'  convert_points_selectorr  r   FilterSelectorrN   rc   )clsr<  r   r2  s       ry   r4  z+QdrantRemote._try_argument_to_grpc_selector=  sf    "fd## 	R"1)  $*  	 	 	  OO  344 	R$OO)> ? ?@@ 	R+%/%J6K[%\%\"(@HHOO.. 	R(@&/??? OO ,, 	R"1@@@OOP$v,,PPQQQ 222rz   c                    t          |t                    r*d |D             }t          t          j        ||          }nt          |t
          j                  rt          j        |          }||_	        nt          |t          t          j                            r
|}||_	        nt          |t          j                  rt          t          j        ||          }nht          |t
          j                  r/t          t          j        t          j        |          |          }nt          dt          |                     |S )Nc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r?  s     ry   r   z?QdrantRemote._try_argument_to_rest_selector.<locals>.<listcomp>f  K        6@T\5R5R[,S111X[  rz   r  )r  r  rK  )ra   r  r   r!   PointIdsListr   rL  r   rN  r  r   r  rO  r  rN   rc   )rP  r<  r   r:  r2  s        ry   _try_argument_to_rest_selectorz+QdrantRemote._try_argument_to_rest_selector_  sY    fd## 	R !  G (#,  OO
  344 	R(@HHO(:O%%)> ? ?@@ 	R$O(:O%%.. 	R'%f@R  OO ,, 	R'%!088,  OO P$v,,PPQQQrz   r2  c                     |                     d          }|g S t          ||          }|dk    rt          |j                  S g S )Npoints_selector_one_ofr<  )
WhichOneofgetattrr  r  )rP  r2  r  vals       ry   _points_selector_to_points_listz,QdrantRemote._points_selector_to_points_list  sO     ))*BCC<Iot,,8== 	rz   c                    d }d }t          |t                    rd |D             }n!t          |t          j                  rXt	          j        |          }t          |t          j                  r|j        }nt          |t          j	                  r|j
        }nt          |t          j                  r|j        }nt          |t          j	                  r|j
        }nkt          |t          j                  r|}nNt          |t          j                  rt	          j        |          }nt          dt          |                     ||fS )Nc                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   r  r?  s     ry   r   zHQdrantRemote._try_argument_to_rest_points_and_filter.<locals>.<listcomp>  rS  rz   rK  )ra   r  r   rL  r   rN  r!   rT  r<  rO  r  r  r  rN   rc   )rP  r<  r:  r;  selectors        ry   r8  z4QdrantRemote._try_argument_to_rest_points_and_filter  sM    fd## 	R !  GG  344 	R!9&AAH(F$788 *"/Hf&;<< *"/ 344 		RmGG 566 	RmGG.. 	RGG,, 	R /77GGP$v,,PPQQQrz   c                 P   | j         r|                     |          \  }}|p|}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }t          j        | j                            t          j        |||||          | j                  j                  S |                     ||          }| j        j                            ||||          j        }|
J d            |S )Nr  r   )r   r  r2  r  zDelete points returned None)rG   r4  ra   r!   r  r   r   r   r&  r'  r   r#  r   Deleter   DeletePointsrV   r   rU  rh   r   delete_points	rt   r   r2  r  r  r   r5   r9  r   s	            ry   deletezQdrantRemote.delete  sc     #	6:6Y6Y7 73O3 "4!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"3 ''%(7!.!)+=   !M ( 	 	    #AA!3 O 483F3Q3_3_ / /!	 4` 4 4
   %%'D%%%Mrz   r  c                    | j         r|                     |          \  }	}
|p|
}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }t          j        | j                            t          j        ||t          j        |          |	|||          | j                  j                  S |                     |          \  }}| j        j                            |||t          j        |||||                    j        }|
J d            |S )N)r   r  r  r2  r  r   r  r   )r  r<  r  r  r  r   r  r  set_payloadzSet payload returned None)rG   r4  ra   r!   r  r   r   r   r&  r'  r   r#  r   
SetPayloadr   SetPayloadPointsr  rV   r   r8  rh   r   rg  )rt   r   r  r<  r  r  r  r   r5   r2  r9  r:  r;  r   s                 ry   rg  zQdrantRemote.set_payload  s     '	6:6Y6YZ`6a6a3O3!3!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"3 ++)(7! * :7 C C(7!)+=   !M ,       $KKFSSGW373F3Q3]3] /!"-#""0  	 4^ 4 4   %%'B%%%Mrz   c                    | j         r|                     |          \  }}	|p|	}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }t          j        | j                            t          j        ||t          j        |          |||          | j                  j                  S |                     |          \  }
}| j        j                            |||t          j        ||
||                    j        }|
J d            |S )N)r   r  r  r2  r  r   r   )r  r<  r  r  rf  zOverwrite payload returned None)rG   r4  ra   r!   r  r   r   r   r&  r'  r   r#  r   OverwritePayloadr   ri  r  rV   r   r8  rh   r   overwrite_payloadrh  )rt   r   r  r<  r  r  r   r5   r2  r9  r:  r;  r   s                ry   rl  zQdrantRemote.overwrite_payload	  s     '	6:6Y6YZ`6a6a3O3!3!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"3 11)(7! * :7 C C(7!)+=   !M 2 
 
     $KKFSSGW#.@@$3% & 1 '&&"4	! ! !	 A 
 
   %%'H%%%Mrz   keysc                    | j         r|                     |          \  }}	|p|	}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }t          j        | j                            t          j        ||||||          | j                  j                  S |                     |          \  }
}| j        j                            |||t          j        ||
||                    j        }|
J d            |S )N)r   r  rm  r2  r  r   r   )rm  r<  r  r  )r   r  r  delete_payloadzDelete payload returned None)rG   r4  ra   r!   r  r   r   r   r&  r'  r   r#  r   DeletePayloadr   DeletePayloadPointsrV   r   r8  rh   r   ro  )rt   r   rm  r<  r  r  r   r5   r2  r9  r:  r;  r   s                ry   ro  zQdrantRemote.delete_payloadD	  sy     $	6:6Y6YZ`6a6a3O3!3!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"3 ..,(7!!(7!)+=   !M / 
 
     $KKFSSGW373F3Q3`3` /!%3""0	     	 4a 
4 
4   %%'E%%%Mrz   c                 P   | j         r|                     |          \  }}|p|}t          |t          j                  rt          j        |          }t          |t          t          j                            rt          j	        |          }t          j        | j                            t          j        |||||          | j                  j                  S |                     ||          }| j        j                            ||||          j        }|
J d            |S )Nr  r   )r   r  r  r2  zClear payload returned None)rG   r4  ra   r!   r  r   r   r   r&  r'  r   r#  r   ClearPayloadr   ClearPayloadPointsrV   r   rU  rh   r   clear_payloadrc  s	            ry   ru  zQdrantRemote.clear_payloadt	  sc     #	6:6Y6Y7 73O3 "4!M7M(F$899 G%<XFF,.A&BY.Z.Z[[ _%/%JK]%^%^"3 --+(7!.!)+=   !M . 	 	    #AA!3 O 483F3Q3_3_ /! /	 4` 4 4
   %%'D%%%Mrz   update_operationsc           	         | j         rd |D             }t          |t          j                  rt	          j        |          }d | j                            t          j	        ||||          | j
                  j        D             S | j        j                            |||t          j        |                    j        }|
J d            |S )Nc                 6    g | ]}t          j        |          S rD   )r   convert_update_operationr   	operations     ry   r   z4QdrantRemote.batch_update_points.<locals>.<listcomp>	  s0     ! ! !CL
3I>>! ! !rz   c                 6    g | ]}t          j        |          S rD   )r   r#  )r   r   s     ry   r   z4QdrantRemote.batch_update_points.<locals>.<listcomp>	  s3        088  rz   )r   r  
operationsr  r   )r}  )r   r  r  rv  z!Batch update points returned None)rG   ra   r!   r  r   r   r   UpdateBatchr   UpdateBatchPointsrV   r   rh   r   batch_updateUpdateOperations)rt   r   rv  r  r  r5   r   s          ry   batch_update_pointsz QdrantRemote.batch_update_points	  s     	! !Pa! ! ! (F$899 G%<XFF ".::*(7!#4!)	   !M ;       #.;;$3%&,&=IZ&[&[&[	 <  
   %%'J%%%Mrz   change_aliases_operationsc                 B   | j         rFd |D             }| j                            t          j        ||          | j                  j        S d |D             }| j        j        	                    |t          j        |                    j        }|
J d            |S )Nc                 n    g | ]2}t          |t          j                  st          j        |          n|3S rD   )ra   r   AliasOperationsr   convert_alias_operationsrz  s     ry   r   z:QdrantRemote.update_collection_aliases.<locals>.<listcomp>	  sO     ( ( (  &i1EFF#J7	BBB"	( ( (rz   )r1   actionsr   c                 n    g | ]2}t          |t          j                  rt          j        |          n|3S rD   )ra   r   r  r   r  rz  s     ry   r   z:QdrantRemote.update_collection_aliases.<locals>.<listcomp>	  sO     $
 $
 $
  i)=>>
3I>>>	$
 $
 $
rz   )r  )r1   change_aliases_operationzUpdate aliases returned None)rG   r   UpdateAliasesr   ChangeAliasesrV   r   r7   collections_apiupdate_aliasesr!   ChangeAliasesOperation)rt   r  r1   r5   r  r   s         ry   update_collection_aliasesz&QdrantRemote.update_collection_aliases	  s      	( ( ";( ( ($ (66"#4    7   $
 $
 7$
 $
 $
  "&!:!I!I%+%B0& & & "J "
 "

  	 !!#A!!!rz   c                 &   | j         rX| j                            t          j        |          | j                  j        }t          j        d |D                       S | j	        j
                            |          j        }|
J d            |S )Nr   r   c                 6    g | ]}t          j        |          S rD   r   convert_alias_descriptionr   descriptions     ry   r   z7QdrantRemote.get_collection_aliases.<locals>.<listcomp>	  0       JUJ8EE  rz   aliasesz$Get collection aliases returned None)rG   r   ListCollectionAliasesr   ListCollectionAliasesRequestrV   r  r  CollectionsAliasesResponser7   r  get_collection_aliasesr   )rt   r   r5   r}  r   s        ry   r  z#QdrantRemote.get_collection_aliases	  s      		,BB1/RRR C     3 Ya      I%<< / =   	
 !!#I!!!rz   c                    | j         rV| j                            t          j                    | j                  j        }t          j        d |D                       S | j	        j
                                        j        }|
J d            |S )Nr   c                 6    g | ]}t          j        |          S rD   r  r  s     ry   r   z,QdrantRemote.get_aliases.<locals>.<listcomp>
  r  rz   r  zGet aliases returned None)rG   r   ListAliasesr   ListAliasesRequestrV   r  r  r  r7   r  get_collections_aliasesr   rt   r5   r}  r   s       ry   get_aliaseszQdrantRemote.get_aliases
  s     	,88'))4= 9    3 Ya      I%==??F 	 !!#>!!!rz   c                    | j         rV| j                            t          j                    | j                  j        }t          j        d |D                       S | j	        j
                                        j        }|
J d            |S )Nr   c                 6    g | ]}t          j        |          S rD   )r   convert_collection_descriptionr  s     ry   r   z0QdrantRemote.get_collections.<locals>.<listcomp>
  s3       # =kJJ  rz   )collectionszGet collections returned None)rG   r   r	   r   ListCollectionsRequestrV   r  r  CollectionsResponser7   r  get_collectionsr   r  s       ry   r  zQdrantRemote.get_collections
  s     		,11+--t} 2    , '/      I%5577> 	 !!#B!!!rz   c                    | j         rKt          j        | j                            t          j        |          | j                  j                  S | j	        j
                            |          j        }|
J d            |S )Nr  r   zGet collection returned None)rG   r   convert_collection_infor   rD  r   GetCollectionInfoRequestrV   r   r7   r  get_collectionrt   r   r5   r   s       ry   r  zQdrantRemote.get_collection*
  s     	5%))1/RRR M *   	   261J1Y1Y+ 2Z 2
 2

 	 !!#A!!!rz   c                     | j         r>| j                            t          j        |          | j                  j        j        S | j        j	        
                    |          j        }|
J d            |j        S )Nr  r   zCollection exists returned None)rG   r   CollectionExistsr   CollectionExistsRequestrV   r   existsr7   r  collection_existsr  s       ry   r  zQdrantRemote.collection_exists8
  s     	(99,_MMM :   V
 8<y7P7b7b+ 8c 8
 8

 	 !!#D!!!}rz   optimizers_configcollection_paramsvectors_confighnsw_configquantization_configsparse_vectors_configc	                 $   | j         rVt          |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                            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        |          }| j        j                            |t          j        ||||||          |          j        }
|

J d            |
S )N)r   r  r	  r  r  r  r  r   )r  r	  r  r  r  sparse_vectors)update_collectionr1   zUpdate collection returned None)rG   ra   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   UpdateCollectionrV   r   r   VectorsConfigDiffr7   r  r  )rt   r   r  r  r  r  r  r1   r  r5   r   s              ry   r  zQdrantRemote.update_collectionE
  s     "	+V-HII a$.$MN_$`$`!+V-HII a$.$MN_$`$`!.$// X!+!G!W!W+v'<== O(A+NN-x8U/V/VWW &0&Q'' '# /66 (2(O)) )% (//%$3&7,#1 +(;*?    0    ')BCC 	] * IJ[ \ \')BCC 	] * IJ[ \ \nd&<== 	T'CNSSNk4#677 	K$=kJJK)4+FGG 	c","MNa"b"b!%!:!L!L$5"3(&'$74    "M "
 "
  	 !!#D!!!rz   c                     | j         r9| j                            t          j        |          | j                  j        S | j        j        	                    ||          j        }|
J d            |S )Nr  r   zDelete collection returned None)
rG   r   r`  r   DeleteCollectionrV   r   r7   r  delete_collection)rt   r   r1   r5   r   s        ry   r  zQdrantRemote.delete_collection
  s      	(//%oFFF 0   
 "&!:!L!LW "M "
 "

 	 !!#D!!!rz   shard_numberreplication_factorwrite_consistency_factoron_disk_payload
wal_config	init_fromsharding_methodc                 *   |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/          j        |||	|||||||||
||          }| j                            |          j        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	          j        ||||||||	|
|||          }| j        j                             |||          j        }|
J d            |S )Nzinit_from is deprecated)r   r  r  r  r  r  r1   r  r  r  init_from_collectionr  r  r  )r  r  r  r  r  r  r  r  r  r  r  r  )r   create_collectionr1   zCreate collection returned None)!r   r   rG   ra   r!   VectorParamsr  r   convert_vectors_configr  r  r  r  WalConfigDiffconvert_wal_config_diffr   QuantizationConfigconvert_quantization_configInitFromconvert_init_fromr  ShardingMethodconvert_sharding_methodr   CreateCollectionr   Creater   r   rd  r7   r  r  )rt   r   r  r  r  r  r  r  r  r  r  r  r1   r  r  r5   r  create_collection_requestr   s                      ry   r  zQdrantRemote.create_collection
  s    $  O5666 .	J.6+>*EFF S!+!B>!R!R+v'<== O(A+NN+V-HII a$.$MN_$`$`!*f&:;; L'?
KK
#233  b '1&LM`&a&a#)V_55 D&8CC	/66 (2(O)) )% /6+@AA V","D_"U"U $ 5 /'%"3) /-#5)A%.$7&; /! ! !  (//0ABBIIk4#677 	K$=kJJK')BCC 	] * IJ[ \ \j$"455 	H#;JGGJ)4+BCC 	^","HI\"]"]i%% 	@"4Y??I$*$;"%1%=+#/! 30+%
 %
 %
! "&!:!L!L+7 "M "
 "
 	 	 !!#D!!!rz   c                 v    |                      ||           |                     |||||||||	|
||||          S )Nr   )r   r  r  r  r  r  r  r  r  r  r  r1   r  r  )r  r  )rt   r   r  r  r  r  r  r  r  r  r  r  r1   r  r  r5   s                   ry   recreate_collectionz QdrantRemote.recreate_collection  sd    $ 	@@@%%+)%1%=+#/! 3"7+ & 
 
 	
rz   c                 ,    | j         rt          S t          S r}   )rG   r#   r$   r~   s    ry   _updater_classzQdrantRemote._updater_class3  s     	%$$$$rz   batches_iteratormax_retriesparallelmethodc           	         |4|t                      v r|}n5t          d| dt                                 dt                      v rdnd}| j        r || j        | j        || j        | j        ||d}	n|| j        |||d| j        }	|dk    r, | j	        j
        d	i |	}
|
                    |          D ]}d S t          || j	        |          } |j        |fi |	D ]}d S )
NzStart methods z& is not available, available methods: 
forkserverspawn)r   r2   r+   r  r   r?   r  r   )r   urir  r  r   r  )start_methodrD   )r   rN   rG   rP   rH   rJ   r\   rf   rg   r  startprocessr"   unordered_map)rt   r  r   r  r  r  r  r   r  updater_kwargsupdater_pools                ry   _upload_collectionzQdrantRemote._upload_collection:  sl    .0000% lVllShSjSjll   ,8;P;R;R+R+R<<X_L 	#2
*{ .&8	 	NN $3}*&8  /N q==/d)/AA.AAG__%566    &h0CR^___D'T'(8KKNKK   rz   @   records
batch_sizec	           	      v    | j                             ||          }
|                     |
||||||           d S )Nr  r  )r  r   r  r  r  r   r  r  iterate_records_batchesr  )rt   r   r  r  r  r  r  r  r   r5   r  s              ry   upload_recordszQdrantRemote.upload_recordsl  sf      .FF
 G 
 
 	-+#1 	  	
 	
 	
 	
 	
rz   c	           	      v    | j                             ||          }
|                     |
||||||           d S )Nr  r  r   r  r  r  r  r   r  )rt   r   r<  r  r  r  r  r  r   r5   r  s              ry   upload_pointszQdrantRemote.upload_points  sf      .FFz G 
 
 	-+#1 	  	
 	
 	
 	
 	
rz   c           	      z    | j                             ||||          }|                     ||||||	|
           d S )N)r  r  r  r  r  )r  iterate_batchesr  )rt   r   r  r  r  r  r  r  r  r  r   r5   r  s                ry   upload_collectionzQdrantRemote.upload_collection  sl       .>>!	 ? 
 
 	-+#1 	  	
 	
 	
 	
 	
rz   
field_namefield_schema
field_typec                 x   |t          j        dt                     |}| j        rtd }t	          |t
          j                  rt          j        |          }t	          |t                    rt          |          }t	          |t          t
          j                            rt          j        |          }t	          |t          j                  r|}|                    d          }	t#          ||	          }
t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j        }t	          |
t          j                  rt          j        j         }t	          |
t          j!                  rt          j        j"        }t          j#        ||||||          }tI          j%        | j&        '                    |          j(                  S t	          |t                    rtI          j        |          }t	          |t          j                  rtI          j        |          }| j)        j*        +                    |t          j'        ||          ||          j(        }|
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   rG   ra   r!   PayloadSchemaTyper   convert_payload_schema_typeintr   r   PayloadSchemaParamsconvert_payload_schema_paramsr   PayloadIndexParamsrX  rY  TextIndexParams	FieldTypeFieldTypeTextIntegerIndexParamsFieldTypeIntegerKeywordIndexParamsFieldTypeKeywordFloatIndexParamsFieldTypeFloatGeoIndexParamsFieldTypeGeoBoolIndexParamsFieldTypeBoolDatetimeIndexParamsFieldTypeDatetimeUuidIndexParamsFieldTypeUuidCreateFieldIndexCollectionr   r#  r   CreateFieldIndexr   rh   r  r  )rt   r   r  r  r  r  r  r5   r  r  r  requestr   s                ry   create_payload_indexz!QdrantRemote.create_payload_index  s    !MNPbccc%L 5	!%,(@AA T)ElSS,,, O
  ANN,1K(L(LMM V)GUU,(?@@ @%1")44^DD&'94@@lD,@AA @#'>#?LlD,CDD C#'>#BLlD,CDD C#'>#BLlD,ABB A#'>#@LlD,?@@ ?#'>#>LlD,@AA @#'>#?LlD,DEE D#'>#CLlD,@AA @#'>#?L5 /%'#5!  G 3 11'::A   lC(( 	P%A,OOLlD$;<< 	R%CLQQL /BB /#)#:)$ $ $ ! C    	 !!#E!!!rz   c                    | j         rIt          j        ||||          }t          j        | j                            |          j                  S | j        j	        
                    ||||          j        }|
J d            |S )N)r   r  r  r  z Delete field index returned None)rG   r   DeleteFieldIndexCollectionr   r#  r   DeleteFieldIndexr   rh   r  delete_field_index)rt   r   r  r  r  r5   r+  r   s           ry   delete_payload_indexz!QdrantRemote.delete_payload_index  s      		5 /%!	  G 3 11'::A  
 /BB /%!	 C  
  	 !!#E!!!rz   c                     | j         r>| j                            t          j        |                    j        }d |D             S | j        j                            |          j	        }|
J d            |S )Nr  c                 6    g | ]}t          j        |          S rD   r   convert_snapshot_descriptionr   snapshots     ry   r   z/QdrantRemote.list_snapshots.<locals>.<listcomp>=  #    ```(J;HEE```rz   'List snapshots API returned None result)
rG   r   r	   r   ListSnapshotsRequestsnapshot_descriptionsrh   r  list_snapshotsr   )rt   r   r5   	snapshotss       ry   r<  zQdrantRemote.list_snapshots6  s      	a+00)/JJJ #  a`V_````'7FF+ G 
 

 	 $$&O$$$rz   c                     | j         rF| j                            t          j        |                    j        }t          j        |          S | j        j	        
                    ||          j        S )Nr  )r   r  )rG   r   r  r   CreateSnapshotRequestsnapshot_descriptionr   r5  rh   r  create_snapshotr   )rt   r   r  r5   r7  s        ry   rA  zQdrantRemote.create_snapshotE  s~      	E*11*?KKK "  :8DDD"2BB+$ C 
 

	rz   snapshot_namec                     | j         r0| j                            t          j        ||                     dS | j        j                            |||          j        S )N)r   rB  T)r   rB  r  )	rG   r   r`  r   DeleteSnapshotRequestrh   r  delete_snapshotr   )rt   r   rB  r  r5   s        ry   rE  zQdrantRemote.delete_snapshotR  s}      	&&*$3=    
 4"2BB+' C 
 
 		rz   c                     | j         r<| j                            t          j                              j        }d |D             S | j        j                                        j	        }|
J d            |S )Nc                 6    g | ]}t          j        |          S rD   r4  r6  s     ry   r   z4QdrantRemote.list_full_snapshots.<locals>.<listcomp>h  r8  rz   z,List full snapshots API returned None result)
rG   r   ListFullr   ListFullSnapshotsRequestr;  rh   snapshots_apilist_full_snapshotsr   )rt   r5   r=  s      ry   rK  z QdrantRemote.list_full_snapshotsc  s     	a+44-// #  a`V_````'5IIKKR	$$&T$$$rz   c                     | j         rD| j                            t          j                              j        }t          j        |          S | j        j	        
                    |          j        S )N)r  )rG   r   
CreateFullr   CreateFullSnapshotRequestr@  r   r5  rh   rJ  create_full_snapshotr   )rt   r  r5   r@  s       ry   rO  z!QdrantRemote.create_full_snapshotn  sl     	Q#'#6#A#A.00$ $" ! :;OPPP"0EE4EPPWWrz   c                     | j         r/| j                            t          j        |                     dS | j        j                            ||          j        S )N)rB  T)rB  r  )	rG   r   
DeleteFullr   DeleteFullSnapshotRequestrh   rJ  delete_full_snapshotr   )rt   rB  r  r5   s       ry   rS  z!QdrantRemote.delete_full_snapshotw  sn      	**.]KKK   4"0EE'd F 
 

	rz   locationchecksumpriorityc           
      |    | j         j                            ||t          j        ||||                    j        S )NrT  rV  rU  r/   )r   r  snapshot_recover)rh   rJ  recover_from_snapshotr!   SnapshotRecoverr   )rt   r   rT  r/   rU  rV  r  r5   s           ry   recover_snapshotzQdrantRemote.recover_snapshot  sT     "0FF+#3!!!	   G 	
 	
 		rz   shard_idc                 j    | j         j                            ||          j        }|
J d            |S )N)r   r]  r9  )rh   rJ  list_shard_snapshotsr   )rt   r   r]  r5   r=  s        ry   r_  z!QdrantRemote.list_shard_snapshots  sP     '5JJ+ K 
 
  	 $$&O$$$rz   c                 P    | j         j                            |||          j        S )N)r   r]  r  )rh   rJ  create_shard_snapshotr   )rt   r   r]  r  r5   s        ry   ra  z"QdrantRemote.create_shard_snapshot  s6     "0FF+ G 
 
 		rz   c                 R    | j         j                            ||||          j        S )N)r   r]  rB  r  )rh   rJ  delete_shard_snapshotr   )rt   r   r]  rB  r  r5   s         ry   rc  z"QdrantRemote.delete_shard_snapshot  s9     "0FF+'	 G 
 

 	rz   c                 ~    | j         j                            |||t          j        ||||                    j        S )NrX  )r   r]  r  shard_snapshot_recover)rh   rJ  recover_shard_from_snapshotr!   ShardSnapshotRecoverr   )	rt   r   r]  rT  r/   rU  rV  r  r5   s	            ry   recover_shard_snapshotz#QdrantRemote.recover_shard_snapshot  sW     "0LL+#)#>!!!	$ $ $	 M 

 

 
	rz   reasonc                     | j         j                            t          j        |d                    j        }|
J d            |S )NT)error_messagewritezLock storage returned Nonerh   service_api
post_locksr!   LocksOptionr   )rt   ri  r5   r   s       ry   lock_storagezQdrantRemote.lock_storage  sR    .2.A.M.X.XV4@@@/
 /

 	 !!#?!!!rz   c                     | j         j                            t          j        d                    j        }|
J d            |S )NF)rl  zPost locks returned Nonerm  rt   r5   r   s      ry   unlock_storagezQdrantRemote.unlock_storage  sP    .2.A.M.X.XU+++/
 /

 	 !!#=!!!rz   c                 d    | j         j                                        j        }|
J d            |S )NzGet locks returned None)rh   rn  	get_locksr   rs  s      ry   rv  zQdrantRemote.get_locks  s6    .2.A.M.W.W.Y.Y.`!!#<!!!rz   r  shards_number	placementc                    | j         rt          |t          t          j                            rt          j        |          }| j                            t          j
        ||t          j        ||||pg                     | j                  j        S | j        j                            ||t          j        ||||                    j        }|
J d            |S )N)r  rw  r  rx  r   r1   r+  r   )r   r1   create_sharding_keyzCreate shard key returned None)rG   ra   r   r!   ShardKeyr   convert_shard_keyr   CreateShardKeyr   CreateShardKeyRequestrV   r   rh   cluster_apicreate_shard_keyCreateShardingKey)	rt   r   r  rw  r  rx  r1   r5   r   s	            ry   r  zQdrantRemote.create_shard_key  s     	)%8%I%IJJ D&8CC	(77*$3# /"+&3+="+/r	  	 	 	  8    (4EE /$*$<'"/'9'	% % % F 	 	   %%'G%%%Mrz   c           	         | j         rt          |t          t          j                            rt          j        |          }| j                            t          j
        ||t          j        |                    | j                  j        S | j        j                            ||t          j        |                    j        }|
J d            |S )N)r  rz  r   )r   r1   drop_sharding_keyzDelete shard key returned None)rG   ra   r   r!   r|  r   r}  r   DeleteShardKeyr   DeleteShardKeyRequestrV   r   rh   r  delete_shard_keyDropShardingKey)rt   r   r  r1   r5   r   s         ry   r  zQdrantRemote.delete_shard_key  s     	)%8%I%IJJ D&8CC	(77*$3# /"+      8 	 	 	 (4EE /"("8'# # # F     %%'G%%%Mrz   c                     | j         r?| j                            t          j                              }t          j        |          S | j        j        	                                }|
J d            |S )NzHealthcheck returned None)
rG   r   HealthCheckr   HealthCheckRequestr   convert_health_check_replyr   rn  root)rt   version_infos     ry   infozQdrantRemote.info.  sn     	G>55d6M6O6OPPL8FFFy,1133'')D'''rz   )Nr(   r)   FNNNNNNNr}   )r{   N)NN)NNr   NTFNTNNN)NNNNNr   NTFNNNNN)NNNNNr   rX  TFNNNNNN)NNr   r  TFNNNNN)NrX  r   NNNN)NNNNr   r   TFNNNNNNN)NNNNr   r  NTFNNNNNNN)NNNNr   r   TFNNNNN)	Nr   NNTFNNN)NTNN)Nr   FNNN)TNN)TFNNN)TN)NNNNNNN)NNNNNNNNNNNN)r  NFN)r  r  NrX  FN)NNr  r  NrX  FN)NNTN)T)NNNT)NNNN)__name__
__module____qualname__r   rd  r  boolr   r   r   r   r   rF   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   r7   r   r  r   r   r	   ScoredPointr   r  r  
NumpyArrayr  r   PayloadSelectorr&  r-  rB  r5  rD  rG  rI  rH  rV  r  SparseVectorDocumentWithLookupInterfaceGroupsResultri  r!   rp  SearchMatrixPairsResponserz  SearchMatrixOffsetsResponser  r  r  r  r  r  r  r  r  r  r  r  r  Recordr  CountResultr  r  r  Pointsr  UpdateResultr)  PointVectorsr-  rL  r3  rH  classmethodr4  rU  r[  r  r8  rd  Payloadrg  rl  ro  ru  UpdateOperationr  r  r  r  r  r  r  r  CollectionInfor  r  r  r  r  r  r  r
   SparseVectorParamsr  r  r  r  r  r  r  r  r  r   r%   r  r   r  r  r  r  VectorStructr
  r  r,  r1  SnapshotDescriptionr<  rA  rE  rK  rO  rS  SnapshotPriorityr\  r_  ra  rc  rh  rp  rq  rt  rv  r|  r  r  VersionInfor  __classcell__)rx   s   @ry   r'   r'   .   s)        ""! $!% $!%"15 J# J#c]J# smJ# 	J#
 J# ~J# #J# J# #J# smJ# tCH~.J# &(2s7#Xb)C..@%AAB
J# J# J# J# J# J# J#X     X  # $    : * *hsmS(3-RU&V W * * * \*   "   G G G GQ Q Q QM M M ME E E EO O O OY Y Y YU U U UM M M M 1(< 1 1 1 X1 ,4? , , , X, /d&8 / / / X/ * * * * X* -$"6 - - - X- (T_ ( ( ( X( + 2 + + + X+ &4? & & & X& #hy) # # # X# #hy) # # # X# 8<!%0 00 5./0 e34	0
 #0 0 
d5$%	&0 0 0 0x 046: $JN38+/#7;?C!%)x xx UO#tE{"##	
x u|,x   23x x x D(3-1FFGx D(3-/0x  "%!x" #x$ e34%x& %U%;<'x( #)x* +x, 
e	 -x x x xz (,#FJ/36: $JN38+/6:7;?C!%!@ @@ $@ }	@
 U^(<dBC@ u|,@   23@ @ @ D(3-1FFG@ D(3-/0@ "%@ e23@ e34@ %U%;<@  #!@" #@$ 
	%@ @ @ @L 8<!%3 33 5-.3 e34	3
 #3 3 
e!	"3 3 3 3D #FJ/36:JN38+/;?6:7;?C!%7S' S'S' S' MKeKN	
	S' }S' U^(<dBCS'  u|,!S'"   23#S'$ %S'& 'S'( D(3-1FFG)S'* D(3-/0+S', "%-S'. e78/S'0 e231S'2 e343S'4 %U%;<5S'6 #7S'8 9S': 
	;S' S' S' S'@ 157;KO38+/;?7;?C!%+C CC UO#tE{"##	
C C v}-C   34C C C D(3-1GGHC  D(3-/0!C" "%#C$ e78%C& e34'C( %U%;<)C* #+C, -C. 
	/C C C CP 04#7;?C!%6$ 6$6$ u|,6$ 	6$
 6$ }6$ e346$ %U%;<6$ #6$ 6$ 
	(6$ 6$ 6$ 6$v 04#7;?C!%6$ 6$6$ u|,6$ 	6$
 6$ }6$ e346$ %U%;<6$ #6$ 6$ 
	*6$ 6$ 6$ 6$x 8<!%0 00 5120 e34	0
 #0 0 
d5$%	&0 0 0 0j @D?C/36:FJ/4+/#6:6:7;?C!%#F FF 8E$:;<F 8E$:;<	F
 u|,F   23F F F D$s)U-BBCF D$s)O,F "%F }F e23F 523F e34F  %U%;<!F" ##F$ %F& 
e	 'F F F FX KOJN047;+/KO38#7;;?6:7;?C!%'U UU U 8E%-e*D$EFG	U
 8E%-e*D$EFGU v}-U   34U U U "%U D(3-1GGHU D(3-/0U }U f34U e78U  523!U" e34#U$ %U%;<%U& #'U( )U* 
	+U U U Ut 04@D/36:FJ/4#6:7;?C!%  +, (5#;<=	
 u|,   23   D$s)U-BBC D$s)O, } e23 e34 %U%;< #  !" 
e	 #   J 8<!%. .. 501. e34	.
 #. . 
d5$%	&. . . .f 15,0*.JN387;?C!%XH XHXH  -XH 	XH
 5=)XH 'XH D(3-1FFGXH D(3-/0XH e34XH %U%;<XH #XH XH 
tEL!8EM#::	;XH XH XH XHz 04?C!%) )) u|,) 	)
 %U%;<) #) ) 
	) ) ) )^ 04!%7;?C9 99 9 u|,	9
 9 9 #9 e349 %U%;<9 9 
	9 9 9 9~ 26?CN NN N 	N
 5./N %U%;<N N 
	N N N Nh 26?C& && +,& 	&
 5./& %U%;<& & 
	& & & &Z 26?C1 11 #1 $	1
 1 5./1 %U%;<1 1 
	1 1 1 1n KO387;?C!%F FF em$F D(3-1FFG	F
 D(3-/0F e34F %U%;<F #F F 
el	F F F FP 3)3	t"HT-B$CC	D3 3 3 [3B !$! %U%;<! 
		! ! ! [!F "1	dl	   [  ) 	xV345x7NN	O      [ B 26?C, ,, -, 	,
 5./, %U%;<, , 
	, , , ,f "26?C2 22 2 $	2
 c]2 2 5./2 %U%;<2 2 
	2 2 2 2r 26?C1 11 1 $	1
 1 5./1 %U%;<1 1 
	1 1 1 1p 26?C. .. sm. $	.
 . 5./. %U%;<. . 
	. . . .h 26?C, ,, -, 	,
 5./, %U%;<, , 
	, , , ,d 26& && $E$9:& 	&
 5./& & 
e 	!& & & &V "&& &#+E,A#B& #& 	&
 
& & & &P".1		)   ,C E,L      0I    $c S UEY            CGBF<@6:FJ!%RVL LL $E$>?L $E$>?	L
 !!89L e23L &e&BCL #L  (U5M0M(NOL L 
L L L L^ >B "-5c]MP	   & '+,026*.6:BF48BF.2!%RV:>j jj e0'#u?Q:Q2RRSj sm	j
 %SMj #+3-j "$j e23j $E$>?j U01j &e&>?j EN+j #j  (U5M0M(NOj "%"67j  !j" 
#j j j j` '+,026*.6:BF48BF.2!%RV:>#
 #
#
 e0'#u?Q:Q2RRS#
 sm	#

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

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

 
 
 
 
 %U%;<
 
 

 
 
 
@ 7;15 $?C
 

 e&&')98EDV;WW

 (4S>23
 hu}-.
 
 
 
 
 
 %U%;<
 
 

 
 
 
J ;?8<26V VV V u67	V
 U45V V 5./V V 
	V V V Vx 26   	
 5./  
	   <".1	e'	(     26 "*.AD	%+	,    FJ "36>BUX	$   "	C 	D9R4S 	 	 	 	X X X XHa X X X X 04  (,?B	$   " "&"&59   #	
 3- 512   
$   *".1=@	e'	(    AE ".19=PS	%+	,       	
   
$   ( "&"&59   	
 # 3- 512   
$   .3 # %:K    s u/@    # %*;     (,,0)-!%' '' >'  }	'
 %SM' DI&' #' ' 
' ' ' 'Z "&	  > #	
  
   @e'        rz   r'   )<r   r   rT   r^   multiprocessingr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   rZ   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'   rD   rz   ry   <module>r     sn       1 1 1 1 1 1                                          ' ' ' ' ' ' ' ' & & & & & & 4 4 4 4 4 4 ) ) ) ) ) ) 0 0 0 0 0 0 C C C C C C C C ; ; ; ; ; ; F F F F F F         
 ; : : : : : : : : : ? ? ? ? ? ? B B B B B B B B B B B B 8 8 8 8 8 8F4 F4 F4 F4 F4: F4 F4 F4 F4 F4rz   