
    <iv                     p   S SK JrJrJrJrJrJr  S SKJr  S SK	Jr  S SK
Jr  S SK7  S SKJr  \R                   " S5      r\" SSS	9r\\\\4      r\\\\4   \4   rS
rS\S\S\S\4S jr      SS\S\\\4   S\S\S\S\4S jjr\(       a  S SKJr   " S S5      r " S S\5      r " S S\5      rg
)    )TYPE_CHECKINGAnyDictSetTypeVarUnion)	BaseModel)VERSION)*)modelsz2.Modelr	   )boundNmodelargskwargsreturnc                 `    [         (       a  U R                  " U0 UD6$ U R                  " U0 UD6$ N)PYDANTIC_V2model_dump_jsonjson)r   r   r   s      [/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/http/api/search_api.pyto_jsonr      s1    {$$d5f55zz4*6**    objincludeby_aliasskip_defaultsexclude_unsetexclude_nonec           
          [        U S5      (       d  [        U S5      (       a   [        U UUU[        U=(       d    U5      US9$ U $ )Nr   r   )r   excluder   r   r    )hasattrr   bool)r   r   r"   r   r   r   r    s          r   jsonable_encoderr%      sN     sFws,=>>}=>%
 	
 Jr   )	ApiClientc            	          \ rS rSrS!S jr   S"S\S\R                  S\S\R                  4S jjr
   S"S\S\R                  S\S	\R                  4S
 jjr   S"S\S\R                  S\S\R                  4S jjr   S"S\S\R                  S\S\R                  4S jjr   S"S\S\R                  S\S\R"                  4S jjr   S"S\S\R                  S\S\R&                  4S jjr   S"S\S\R                  S\S\R*                  4S jjr   S"S\S\R                  S\S\R.                  4S jjr   S"S\S\R                  S\S\R2                  4S jjr   S"S\S\R                  S\S\R6                  4S jjr   S"S\S\R                  S\S\R6                  4S jjr   S"S\S\R                  S\S\R<                  4S jjr   S"S\S\R                  S\S\R@                  4S jjr!S r"g)#
_SearchApi3   c                     Xl         g r   
api_client)selfr,   s     r   __init___SearchApi.__init__4   s    $r   Ncollection_nameconsistencytimeoutdiscover_request_batchc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
W
Look for points based on target and/or positive and negative example pairs, in batch.
r0   Nr1   r2   Content-Typeapplication/jsonPOSTz4/collections/{collection_name}/points/discover/batchtype_methodurlheaderspath_paramsparamscontentstrr%   r,   requestmInlineResponse20017)	r-   r0   r1   r2   r3   r>   query_paramsr=   bodys	            r    _build_for_discover_batch_points+_SearchApi._build_for_discover_batch_points7   s     s?3
 "*-k*:L'&)'lL# 67(&8GN#&&''F&GD# ' 
 	
r   discover_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
  
Use context and a target to find the most similar points to the target, constrained by the context. When using only the context (without a target), a special search - called context search - is performed where pairs of points are used to generate a loss that guides the search towards the zone where most positive examples overlap. This means that the score minimizes the scenario of finding a point closer to a negative than to a positive part of a pair. Since the score of a context relates to loss, the maximum score a point can get is 0.0, and it becomes normal that many points can have a score of 0.0. When using target (with or without context), the score behaves a little different: The integer part of the score represents the rank with respect to the context, while the decimal part of the score relates to the distance to the target. The context part of the score for each pair is calculated +1 if the point is closer to a positive than to a negative part of a pair, and -1 otherwise.
r0   Nr1   r2   r6   r7   r8   z./collections/{collection_name}/points/discoverr9   rB   r%   r,   rC   rD   InlineResponse20016)	r-   r0   r1   r2   rJ   r>   rF   r=   rG   s	            r   _build_for_discover_points%_SearchApi._build_for_discover_pointsY   s     s?3
 "*-k*:L'&)'lL# 01(&8GN#&&''@&GD# ' 
 	
r   query_request_batchc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )

Universally query points in batch. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.
r0   Nr1   r2   r6   r7   r8   z1/collections/{collection_name}/points/query/batchr9   )rB   r%   r,   rC   rD   InlineResponse20022)	r-   r0   r1   r2   rQ   r>   rF   r=   rG   s	            r   _build_for_query_batch_points(_SearchApi._build_for_query_batch_points{   s     s?3
 "*-k*:L'&)'lL# 34(&8GN#&&''C&GD# ' 
 	
r   query_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )

Universally query points. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.
r0   Nr1   r2   r6   r7   r8   z+/collections/{collection_name}/points/queryr9   )rB   r%   r,   rC   rD   InlineResponse20021)	r-   r0   r1   r2   rW   r>   rF   r=   rG   s	            r   _build_for_query_points"_SearchApi._build_for_query_points   s     s?3
 "*-k*:L'&)'lL#.(&8GN#&&''=&GD# ' 
 	
r   query_groups_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
<
Universally query points, grouped by a given payload field
r0   Nr1   r2   r6   r7   r8   z2/collections/{collection_name}/points/query/groupsr9   rB   r%   r,   rC   rD   InlineResponse20018)	r-   r0   r1   r2   r]   r>   rF   r=   rG   s	            r   _build_for_query_points_groups)_SearchApi._build_for_query_points_groups        s?3
 "*-k*:L'&)'lL# 45(&8GN#&&''D&GD# ' 
 	
r   recommend_request_batchc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
u
Look for the points which are closer to stored positive examples and at the same time further to negative examples.
r0   Nr1   r2   r6   r7   r8   z5/collections/{collection_name}/points/recommend/batchr9   rA   )	r-   r0   r1   r2   re   r>   rF   r=   rG   s	            r   !_build_for_recommend_batch_points,_SearchApi._build_for_recommend_batch_points   s     s?3
 "*-k*:L'&)'lL# 78(&8GN#&&''G&GD# ' 
 	
r   recommend_groups_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )

Look for the points which are closer to stored positive examples and at the same time further to negative examples, grouped by a given payload field.
r0   Nr1   r2   r6   r7   r8   z6/collections/{collection_name}/points/recommend/groupsr9   r`   )	r-   r0   r1   r2   rj   r>   rF   r=   rG   s	            r   !_build_for_recommend_point_groups,_SearchApi._build_for_recommend_point_groups  s     s?3
 "*-k*:L'&)'lL# 89(&8GN#&&''H&GD# ' 
 	
r   recommend_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
rg   r0   Nr1   r2   r6   r7   r8   z//collections/{collection_name}/points/recommendr9   rM   )	r-   r0   r1   r2   ro   r>   rF   r=   rG   s	            r   _build_for_recommend_points&_SearchApi._build_for_recommend_points%  s     s?3
 "*-k*:L'&)'lL# 12(&8GN#&&''A&GD# ' 
 	
r   search_request_batchc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
`
Retrieve by batch the closest points based on vector similarity and given filtering conditions
r0   Nr1   r2   r6   r7   r8   z2/collections/{collection_name}/points/search/batchr9   rA   )	r-   r0   r1   r2   rs   r>   rF   r=   rG   s	            r   _build_for_search_batch_points)_SearchApi._build_for_search_batch_pointsG  rd   r   search_matrix_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
O
Compute distance matrix for sampled points with an offset based output format
r0   Nr1   r2   r6   r7   r8   z;/collections/{collection_name}/points/search/matrix/offsetsr9   )rB   r%   r,   rC   rD   InlineResponse20024	r-   r0   r1   r2   rx   r>   rF   r=   rG   s	            r    _build_for_search_matrix_offsets+_SearchApi._build_for_search_matrix_offsetsi  s     s?3
 "*-k*:L'&)'lL# 56(&8GN#&&''M&GD# ' 
 	
r   c           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
L
Compute distance matrix for sampled points with a pair based output format
r0   Nr1   r2   r6   r7   r8   z9/collections/{collection_name}/points/search/matrix/pairsr9   )rB   r%   r,   rC   rD   InlineResponse20023r|   s	            r   _build_for_search_matrix_pairs)_SearchApi._build_for_search_matrix_pairs  s     s?3
 "*-k*:L'&)'lL# 56(&8GN#&&''K&GD# ' 
 	
r   search_groups_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
u
Retrieve closest points based on vector similarity and given filtering conditions, grouped by a given payload field
r0   Nr1   r2   r6   r7   r8   z3/collections/{collection_name}/points/search/groupsr9   r`   )	r-   r0   r1   r2   r   r>   rF   r=   rG   s	            r   _build_for_search_point_groups)_SearchApi._build_for_search_point_groups  s     s?3
 "*-k*:L'&)'lL# 56(&8GN#&&''E&GD# ' 
 	
r   search_requestc           
          S[        U5      0n0 nUb  [        U5      US'   Ub  [        U5      US'   0 n[        U5      nSU;  a  SUS'   U R                  R                  [        R
                  SSU(       a  UOSUUUS	9$ )
S
Retrieve closest points based on vector similarity and given filtering conditions
r0   Nr1   r2   r6   r7   r8   z,/collections/{collection_name}/points/searchr9   rM   )	r-   r0   r1   r2   r   r>   rF   r=   rG   s	            r   _build_for_search_points#_SearchApi._build_for_search_points  s     s?3
 "*-k*:L'&)'lL#/(&8GN#&&''>&GD# ' 
 	
r   r+   )r,   z Union[ApiClient, AsyncApiClient]NNN)#__name__
__module____qualname____firstlineno__r.   rB   rD   ReadConsistencyintDiscoverRequestBatchrH   DiscoverRequestrO   QueryRequestBatchrU   QueryRequestr[   QueryGroupsRequestrb   RecommendRequestBatchrh   RecommendGroupsRequestrm   RecommendRequestrq   SearchRequestBatchrv   SearchMatrixRequestr}   r   SearchGroupsRequestr   SearchRequestr   __static_attributes__ r   r   r(   r(   3   sn   % *.9= 
 
 && 
 	 

 !" 6 6 
J *..2 
 
 && 
 	 

 ++ 
J *.37 
 
 && 
 	 

 00 
J *.(, 
 
 && 
 	 

 ~~ 
J *.59 
 
 && 
 	 

  22 
J *.;? 
 
 && 
 	 

 "#!8!8 
J *.=A 
 
 && 
 	 

 #$":": 
J *.04 
 
 && 
 	 

 -- 
J *.59 
 
 && 
 	 

  22 
J *.7; 
 
 && 
 	 

  !44 
J *.7; 
 
 && 
 	 

  !44 
J *.7; 
 
 && 
 	 

  !44 
J *.*. 
 
 && 
 	 

  
  
r   r(   c                   (   \ rS rSr   S!S\S\R                  S\S\R                  S\R                  4
S jjr
   S!S\S\R                  S\S	\R                  S\R                  4
S
 jjr   S!S\S\R                  S\S\R                  S\R                  4
S jjr   S!S\S\R                  S\S\R"                  S\R$                  4
S jjr   S!S\S\R                  S\S\R(                  S\R*                  4
S jjr   S!S\S\R                  S\S\R.                  S\R                  4
S jjr   S!S\S\R                  S\S\R2                  S\R*                  4
S jjr   S!S\S\R                  S\S\R6                  S\R                  4
S jjr   S!S\S\R                  S\S\R:                  S\R                  4
S jjr   S!S\S\R                  S\S\R>                  S\R@                  4
S jjr!   S!S\S\R                  S\S\R>                  S\RD                  4
S jjr#   S!S\S\R                  S\S\RH                  S\R*                  4
S jjr%   S!S\S\R                  S\S\RL                  S\R                  4
S jjr'S r(g)"AsyncSearchApii  Nr0   r1   r2   r3   r   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)r5   r0   r1   r2   r3   NrH   r-   r0   r1   r2   r3   s        r   discover_batch_points$AsyncSearchApi.discover_batch_points  s5      ::+##9	 ; 
 
 	
 
   rJ   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rL   r0   r1   r2   rJ   NrO   r-   r0   r1   r2   rJ   s        r   discover_pointsAsyncSearchApi.discover_points  s5      44+#-	 5 
 
 	
 
r   rQ   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rS   r0   r1   r2   rQ   NrU   r-   r0   r1   r2   rQ   s        r   query_batch_points!AsyncSearchApi.query_batch_points  s5      77+# 3	 8 
 
 	
 
r   rW   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rY   r0   r1   r2   rW   Nr[   r-   r0   r1   r2   rW   s        r   query_pointsAsyncSearchApi.query_points&  s5      11+#'	 2 
 
 	
 
r   r]   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)r_   r0   r1   r2   r]   Nrb   r-   r0   r1   r2   r]   s        r   query_points_groups"AsyncSearchApi.query_points_groups7  5      88+#!5	 9 
 
 	
 
r   re   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rg   r0   r1   r2   re   Nrh   r-   r0   r1   r2   re   s        r   recommend_batch_points%AsyncSearchApi.recommend_batch_pointsH  s5      ;;+#$;	 < 
 
 	
 
r   rj   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rl   r0   r1   r2   rj   Nrm   r-   r0   r1   r2   rj   s        r   recommend_point_groups%AsyncSearchApi.recommend_point_groupsY  s5      ;;+#%=	 < 
 
 	
 
r   ro   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rg   r0   r1   r2   ro   Nrq   r-   r0   r1   r2   ro   s        r   recommend_pointsAsyncSearchApi.recommend_pointsj  s5      55+#/	 6 
 
 	
 
r   rs   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)ru   r0   r1   r2   rs   Nrv   r-   r0   r1   r2   rs   s        r   search_batch_points"AsyncSearchApi.search_batch_points{  r   r   rx   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)rz   r0   r1   r2   rx   Nr}   r-   r0   r1   r2   rx   s        r   search_matrix_offsets$AsyncSearchApi.search_matrix_offsets  s5      ::+#"7	 ; 
 
 	
 
r   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)r   r   Nr   r   s        r   search_matrix_pairs"AsyncSearchApi.search_matrix_pairs  5      88+#"7	 9 
 
 	
 
r   r   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)r   r0   r1   r2   r   Nr   r-   r0   r1   r2   r   s        r   search_point_groups"AsyncSearchApi.search_point_groups  r   r   r   c                 B   #    U R                  UUUUS9I Sh  vN $  N7f)r   r0   r1   r2   r   Nr   r-   r0   r1   r2   r   s        r   search_pointsAsyncSearchApi.search_points  s5      22+#)	 3 
 
 	
 
r   r   r   )r   r   r   r   rB   rD   r   r   r   rE   r   r   rN   r   r   rT   r   r   rZ   r   r   ra   r   r   r   r   r   r   r   r   r   r   r{   r   r   r   r   r   r   r   r   r   r   r   r   r     -    *.9=

 &&
 	

 !" 6 6
 
		
( *..2

 &&
 	

 ++
 
		
( *.37

 &&
 	

 00
 
		
( *.(,

 &&
 	

 ~~
 
		
( *.59

 &&
 	

  22
 
		
( *.;?

 &&
 	

 "#!8!8
 
		
( *.=A

 &&
 	

 #$":":
 
		
( *.04

 &&
 	

 --
 
		
( *.59

 &&
 	

  22
 
		
( *.7;

 &&
 	

  !44
 
		
( *.7;

 &&
 	

  !44
 
		
( *.7;

 &&
 	

  !44
 
		
( *.*.

 &&
 	

 
 
		
 
r   r   c                   (   \ rS rSr   S!S\S\R                  S\S\R                  S\R                  4
S jjr
   S!S\S\R                  S\S	\R                  S\R                  4
S
 jjr   S!S\S\R                  S\S\R                  S\R                  4
S jjr   S!S\S\R                  S\S\R"                  S\R$                  4
S jjr   S!S\S\R                  S\S\R(                  S\R*                  4
S jjr   S!S\S\R                  S\S\R.                  S\R                  4
S jjr   S!S\S\R                  S\S\R2                  S\R*                  4
S jjr   S!S\S\R                  S\S\R6                  S\R                  4
S jjr   S!S\S\R                  S\S\R:                  S\R                  4
S jjr   S!S\S\R                  S\S\R>                  S\R@                  4
S jjr!   S!S\S\R                  S\S\R>                  S\RD                  4
S jjr#   S!S\S\R                  S\S\RH                  S\R*                  4
S jjr%   S!S\S\R                  S\S\RL                  S\R                  4
S jjr'S r(g)"SyncSearchApii  Nr0   r1   r2   r3   r   c                 &    U R                  UUUUS9$ )r5   r   r   r   s        r   r   #SyncSearchApi.discover_batch_points  s(     44+##9	 5 
 	
r   rJ   c                 &    U R                  UUUUS9$ )rL   r   r   r   s        r   r   SyncSearchApi.discover_points  s(     ..+#-	 / 
 	
r   rQ   c                 &    U R                  UUUUS9$ )rS   r   r   r   s        r   r    SyncSearchApi.query_batch_points  s(     11+# 3	 2 
 	
r   rW   c                 &    U R                  UUUUS9$ )rY   r   r   r   s        r   r   SyncSearchApi.query_points  s(     +++#'	 , 
 	
r   r]   c                 &    U R                  UUUUS9$ )r_   r   r   r   s        r   r   !SyncSearchApi.query_points_groups  (     22+#!5	 3 
 	
r   re   c                 &    U R                  UUUUS9$ )rg   r   r   r   s        r   r   $SyncSearchApi.recommend_batch_points'  s(     55+#$;	 6 
 	
r   rj   c                 &    U R                  UUUUS9$ )rl   r   r   r   s        r   r   $SyncSearchApi.recommend_point_groups8  s(     55+#%=	 6 
 	
r   ro   c                 &    U R                  UUUUS9$ )rg   r   r   r   s        r   r   SyncSearchApi.recommend_pointsI  s(     //+#/	 0 
 	
r   rs   c                 &    U R                  UUUUS9$ )ru   r   r   r   s        r   r   !SyncSearchApi.search_batch_pointsZ  r  r   rx   c                 &    U R                  UUUUS9$ )rz   r   r   r   s        r   r   #SyncSearchApi.search_matrix_offsetsk  s(     44+#"7	 5 
 	
r   c                 &    U R                  UUUUS9$ )r   r   r   r   s        r   r   !SyncSearchApi.search_matrix_pairs|  (     22+#"7	 3 
 	
r   r   c                 &    U R                  UUUUS9$ )r   r   r   r   s        r   r   !SyncSearchApi.search_point_groups  r  r   r   c                 &    U R                  UUUUS9$ )r   r   r   r   s        r   r   SyncSearchApi.search_points  s(     ,,+#)	 - 
 	
r   r   r   r   r   r   r   r   r     r   r   r   )NNTNTT) typingr   r   r   r   r   r   pydanticr	   pydantic.mainpydantic.versionr
   PYDANTIC_VERSIONqdrant_client.http.modelsr   rD   
startswithr   r   r   rB   	SetIntStrDictIntStrAnyfiler   r$   r%   qdrant_client.http.api_clientr&   r(   r   r   r   r   r   <module>r     s   @ @  # 8 ' 1))$/{+c3h 	U38_c)*+9 +S +C +C + 04	9m+, 	
   , 7|
 |
~\
Z \
~\
J \
r   