
    iU,                         S SK JrJrJr  S SKrS SKJr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JrJr  S SKJrJrJr  S	S
KJr  S	SKJrJrJr   " S S\5      r g)    )AnyListOptionalN)CompositeRetrievalMode#CompositeRetrievedTextNodeWithScoreRetrieverCreate	RetrieverRetrieverPipelinePresetRetrievalParamsReRankConfig)OMIT)BaseRetriever)DEFAULT_PROJECT_NAME)get_aclient
get_client)NodeWithScoreQueryBundleTextNode   )LlamaCloudIndex)resolve_projectresolve_retriever(page_screenshot_nodes_to_node_with_scorec            %         ^  \ rS rSrSS\SSSSSSSSSSSSS4S\\   S\\   S\\   S	\\   S
\\   S\S\\   S\\   S\\   S\S\\	R                     S\\	R                     S\\   S\\   S\\   S\\   S\SS4$U 4S jjjr\S\\   4S j5       rS\\   S\4S jr   S*S\S\\   S\\   S\\   S\4
S jjrS\S\4S  jrS\\   S\4S! jr   S*S\S\\   S\\   S\\   S\4
S" jjrS\S\4S# jrS$\S\4S% jr   S*S&\ S\\   S\\   S\\   S\\   4
S' jjr!   S*S&\ S\\   S\\   S\\   S\\   4
S( jjr"S)r#U =r$$ )+LlamaCloudCompositeRetriever   NF<   Tnameretriever_idproject_name
project_idorganization_idcreate_if_not_existsapi_keybase_urlapp_urltimeouthttpx_clientasync_httpx_clientmodererank_top_nrerank_config	persistedkwargsreturnc                   > [        XxXU5      U l        [        XxXU5      U l        [	        U R                  X4U5      U l        Xl        U R
                  R                  U l        UU l        [        U R                  U R
                  XU5      U l
        U R                  cw  U(       ap  U(       aP  U R                  R                  R                  U R
                  R                  [        U R                  / S9S9U l
        O[        SU R                   S35      eUb  UO[         U l        Ub  UO[         U l        Ub  UO[         U l        [(        TU ]U  UR-                  S5      UR-                  SS5      S	9  g)
z#Initialize the Composite Retriever.N)r   	pipelines)r!   requestzRetriever with name 'z' does not exist in project.callback_managerverboseF)r3   r4   )r   _clientr   _aclientr   projectr   r    
_persistedr   	retriever
retrieversupsert_retrieveridr   
ValueErrorr   _mode_rerank_top_n_rerank_configsuper__init__get)selfr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   	__class__s                     h/home/james-whalen/.local/lib/python3.13/site-packages/llama_cloud_services/index/composite_retriever.pyrB   %LlamaCloudCompositeRetriever.__init__   sF   6 "'W|T#w1C
 'LL,O
 	 LL--#*LL$,,I
 >>!i#!%!8!8!I!I#||+bI "J "
 !+DII;6RS 
 "-T4
-9-E\4/</Hmd#ZZ(:;JJy%0 	 	
    c                 @    U R                   R                  =(       d    / $ N)r9   r1   )rD   s    rF   retriever_pipelines0LlamaCloudCompositeRetriever.retriever_pipelines]   s    ~~''-2-rH   r1   c                    U R                   (       aI  U R                  R                  R                  U R                  R
                  US9U l        U R                  $ U R                  R                  SU0S9U l        U R                  $ N)r1   r1   )update)r8   r5   r:   update_retrieverr9   r<   copyrD   r1   s     rF   update_retriever_pipelines7LlamaCloudCompositeRetriever.update_retriever_pipelinesa   sr     ??!\\44EE!!Y F DN ~~ "^^00i8P0QDN~~rH   indexdescriptionpreset_retrieval_parametersc                 l   U=(       d    UR                   nU=(       d    UR                  R                  n[        UR                  UUUS9nU R
                  =(       d    /  Vs0 s H  ofR                   U_M     nnUUUR                   '   U R                  [        UR                  5       5      5      $ s  snf N)pipeline_idr   rV   rW   )	r   pipelinerW   r
   r<   rK   rS   listvaluesrD   rU   r   rV   rW   retriever_pipeliner[   #current_retriever_pipelines_by_names           rF   	add_index&LlamaCloudCompositeRetriever.add_indexm   s     !uzz'U5>>+U+U 	$ /#(C	
 6:5M5M5SQS5S/
5SMM8#5S 	, /

  	,##	
 ..4;;=>
 	
/
s   "B1c                     U R                   R                  =(       d    / nU Vs/ s H  nUR                  U:w  d  M  UPM     nn[        U5      [        U5      :X  a  gU R	                  U5        gs  snf NFT)r9   r1   r   lenrS   rD   r    current_retriever_pipeline_namesr[   new_retriever_pipeliness        rF   remove_index)LlamaCloudCompositeRetriever.remove_index   su    +/>>+C+C+Ir( =#
<}}$ < 	  #

 &'3/O+PP''(?@#
s
   A/A/c                 *  #    U R                   (       aQ  U R                  R                  R                  U R                  R
                  US9I S h  vN U l        U R                  $ U R                  R                  SU0S9U l        U R                  $  NA7frN   )r8   r6   r:   rP   r9   r<   rQ   rR   s     rF   aupdate_retriever_pipelines8LlamaCloudCompositeRetriever.aupdate_retriever_pipelines   s      ??#'==#;#;#L#L!!Y $M $ DN ~~ "^^00i8P0QDN~~s   ABBABc                   #    U=(       d    UR                   nU=(       d    UR                  R                  n[        UR                  UUUS9nU R
                  =(       d    /  Vs0 s H  ofR                   U_M     nnUUUR                   '   U R                  [        UR                  5       5      5      I S h  vN $ s  snf  N	7frY   )	r   r[   rW   r
   r<   rK   rl   r\   r]   r^   s           rF   async_add_index,LlamaCloudCompositeRetriever.async_add_index   s      !uzz'U5>>+U+U 	$ /#(C	
 6:5M5M5SQS5S/
5SMM8#5S 	, /

  	,##	
 554;;=>
 
 	
/

s   A"C$B;:<C6C 7
Cc                   #    U R                   R                  =(       d    / nU Vs/ s H  nUR                  U:w  d  M  UPM     nn[        U5      [        U5      :X  a  gU R	                  U5      I S h  vN   gs  snf  N
7frd   )r9   r1   r   re   rl   rf   s        rF   aremove_index*LlamaCloudCompositeRetriever.aremove_index   s     +/>>+C+C+Ir( =#
<}}$ < 	  #

 &'3/O+PP../FGGG#
 	Hs!   $B A9A9/B 3A>4B composite_retrieval_nodec                     [        [        UR                  R                  UR                  R                  UR                  R
                  S9UR                  S9$ )N)r<   textmetadata)nodescore)r   r   rx   r<   rv   rw   ry   )rD   rt   s     rF    _result_nodes_to_node_with_score=LlamaCloudCompositeRetriever._result_nodes_to_node_with_score   sQ     +0033-2277166??
 +00
 	
rH   query_bundlec           	         Ub  UOU R                   nUb  UOU R                  nUb  UOU R                  nU R                  (       aF  U R                  R
                  R                  U R                  R                  UUUUR                  S9nOZU R                  R
                  R                  U R                  R                  UUUUR                  U R                  R                  S9nUR                   Vs/ s H  o`R                  U5      PM     nn[        U R                  UR                   U R                  R"                  5      n[%        Xx-   S SS9$ s  snf )N)r*   r+   r,   queryr!   r*   r+   r,   r~   r1   c                     U R                   $ rJ   ry   xs    rF   <lambda>8LlamaCloudCompositeRetriever._retrieve.<locals>.<lambda>       rH   Tkeyreverse)r>   r?   r@   r8   r5   r:   retriever9   r<   	query_strdirect_retriever7   r1   nodesrz   r   image_nodesr!   sorted	rD   r|   r*   r+   r,   resultrx   node_w_scoresimage_nodes_w_scoress	            rF   	_retrieve&LlamaCloudCompositeRetriever._retrieve   sC    'tTZZ'3'?|TEWEW*6MD<O<O 	 ??\\,,55!!)+",, 6 F \\,,<<<<??)+",,..22 = F EKLL
DPD11$7L 	 
  HLL&,,dnn.G.G 
 06GQU
 	

s   3Ec           	        #    Ub  UOU R                   nUb  UOU R                  nUb  UOU R                  nU R                  (       aN  U R                  R
                  R                  U R                  R                  UUUUR                  S9I S h  vN nObU R                  R
                  R                  U R                  R                  UUUUR                  U R                  R                  S9I S h  vN nUR                   Vs/ s H  o`R                  U5      PM     nn[        U R                  UR                   U R                  R"                  5      n[%        Xx-   S SS9$  N Nss  snf 7f)N)r*   r,   r+   r~   r   c                     U R                   $ rJ   r   r   s    rF   r   9LlamaCloudCompositeRetriever._aretrieve.<locals>.<lambda>"  r   rH   Tr   )r>   r?   r@   r8   r6   r:   r   r9   r<   r   r   r7   r1   r   rz   r   r   r!   r   r   s	            rF   
_aretrieve'LlamaCloudCompositeRetriever._aretrieve   s[     'tTZZ'3'?|TEWEW*6MD<O<O 	 ??==33<<!!+)",, =  F  ==33CC<<??)+",,..22 D  F EKLL
DPD11$7L 	 
  HMM6--t~~/H/H 
 06GQU
 	
-
s8   BE-E$A"E-2E&3E-E(AE-&E-(E-)
r6   r5   r>   r8   r@   r?   r   r7   r    r9   )NNN)%__name__
__module____qualname____firstlineno__r   r   strboolinthttpxClientAsyncClientr   r   r   rB   propertyr   r
   rK   r	   rS   r   r   ra   ri   rl   ro   rr   r   r   rz   r   r   r   __static_attributes____classcell__)rE   s   @rF   r   r      s    #&*&:$()-%*!%"&!%/3:>15&*04$(-?
 sm?
 sm	?
 sm?
 SM?
 "#?
 #?
 #?
 3-?
 #?
 ?
  u||,!?
" %U%6%67#?
& -.'?
( sm)?
*  -+?
, D>-?
. /?
0 
1?
 ?
B .T*;%< . .
/0
	
 #%)GK

 sm
 c]	

 &..C%D
 

6
 
 

/0
	
 #%)GK

 sm
 c]	

 &..C%D
 

6
 
 


(K

	

 26&*04'
!'
 -.'
 sm	'

  -'
 
m	'
X 26&*04'
!'
 -.'
 sm	'

  -'
 
m	'
 '
rH   r   )!typingr   r   r   r   llama_cloudr   r   r   r	   r
   r   r   &llama_cloud.resources.pipelines.clientr   $llama_index.core.base.base_retrieverr   llama_index.core.constantsr   $llama_index.core.ingestion.api_utilsr   r   llama_index.core.schemar   r   r   baser   	api_utilsr   r   r   r    rH   rF   <module>r      sL    & &    8 > ; H H H ! H
= H
rH   