
    >'h{                        d dl Z d dl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 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 ddlmZ ddlmZ 	 d dlZej>                  jA                  d      re!d dl"m#Z  e jH                  e jJ                  d      Z& G d d      Z' G d d      Z(y# e!$ r d dlZY =w xY w)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)jsonable_encoder)remove_none_from_dict)UnprocessableEntityError)CompositeRetrievalMode)CompositeRetrievalResult)HttpValidationError)ReRankConfig)	Retriever)RetrieverCreate)RetrieverPipelinez1..c                      e Zd ZdefdZdddddej                  e   dej                  e   dej                  e   dej                  e	   fd	Z
ddd
dej                  e   dej                  e   dede	fdZddd
dej                  e   dej                  e   dede	fdZddd
dedej                  e   dej                  e   de	fdZeeddedej                  e   dej                  ej                  e      de	fdZdeddfdZeeeddedej                  e   dej                  e   dej                  e   dedefdZddeeeeddej                  e   dej                  e   dej                  e   dej                  e   dej                  e   dedej                  ej                  e      defdZy)RetrieversClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     n/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/llama_cloud/resources/retrievers/client.py__init__zRetrieversClient.__init__!   
    -    Nname
project_idorganization_idr    r!   r"   returnc          
         | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        |||d      | j                   j                         d      }d|j                  cxk  rdk  r<n n9t        j                  t        j                  t           |j                               S |j                  d	k(  r1t!        t        j                  t"        |j                                     	 |j                         }t'        |j                  |
      # t$        $ r" t'        |j                  |j(                  
      w xY w)a  
        List Retrievers for a project.

        Parameters:
            - name: typing.Optional[str].

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.list_retrievers()
        GET/api/v1/retrieversr   <   paramsheaderstimeout   ,    status_codebodyr   httpx_clientrequesturllibparseurljoinget_base_urlr	   get_headersr1   pydanticparse_obj_astypingListr   jsonr
   r   r   r   textr   r    r!   r"   	_response_response_jsons         r   list_retrieversz RetrieversClient.list_retrievers$   s3   0 ((55==LL  D$8$8$E$E$G#H!JL_`($jet)uv((446 > 
	 )''-#-((Y)?AQRR  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   E +E-r!   r"   r5   c          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      t        |      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |
      # t"        $ r" t%        |j                  |j&                  
      w xY w)a  
        Create a new Retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - request: RetrieverCreate.
        ---
        from llama_cloud import RetrieverCreate
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.create_retriever(
            request=RetrieverCreate(
                name="string",
            ),
        )
        POSTr&   r'   rE   r(   r*   r?   r+   r,   r-   r.   r/   r0   r   r4   r5   r6   r7   r8   r9   r	   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   r!   r"   r5   rB   rC   s         r   create_retrieverz!RetrieversClient.create_retrieverM   s0   : ((55==LL  D$8$8$E$E$G#H!JL_`(
Wf)gh!'*((446 > 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	S   D: :+E%c          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      t        |      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |
      # t"        $ r" t%        |j                  |j&                  
      w xY w)a  
        Upsert a new Retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - request: RetrieverCreate.
        ---
        from llama_cloud import RetrieverCreate
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.upsert_retriever(
            request=RetrieverCreate(
                name="string",
            ),
        )
        PUTr&   r'   rE   r(   rH   r-   r.   r/   r0   rI   rJ   s         r   upsert_retrieverz!RetrieversClient.upsert_retriever|   s0   : ((55==LL  D$8$8$E$E$G#H!JL_`(
Wf)gh!'*((446 > 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrL   retriever_idc          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        ||d      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |
      # t         $ r" t#        |j                  |j$                  
      w xY w)a  
        Get a Retriever by ID.

        Parameters:
            - retriever_id: str.

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.get_retriever(
            retriever_id="string",
        )
        r%   r&   api/v1/retrievers/rE   r(   r)   r-   r.   r/   r0   r   r4   r5   r6   r7   r8   r9   r	   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   rP   r!   r"   rB   rC   s         r   get_retrieverzRetrieversClient.get_retriever   s1   4 ((55==LL  D$8$8$E$E$G#H!JN`am`nLop(
Wf)gh((446 > 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   D3 3+Er    	pipelinesrW   c                   i }|t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd|       t        |      | j                  j                         d      }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      # t"        $ r" t%        |j                  |j&                        w xY w)a  
        Update an existing Retriever.

        Parameters:
            - retriever_id: str.

            - name: typing.Optional[str].

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.update_retriever(
            retriever_id="string",
        )
        r    rW   rN   r&   rR   r(   r?   r+   r,   r-   r.   r/   r0   OMITr   r4   r5   r6   r7   r8   r9   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   rP   r    rW   _requestrB   rC   s          r   update_retrieverz!RetrieversClient.update_retriever   sT   4 24t#HVD $-H[!((55==LL  D$8$8$E$E$G#H!JN`am`nLop!(+((446 > 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   %E +E7c                 V   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       | j                   j                         d      }d|j                  cxk  rdk  ry |j                  d	k(  r1t        t        j                  t        |j                                     	 |j                         }t        |j                  |
      # t        $ r" t        |j                  |j                   
      w xY w)a@  
        Delete a Retriever by ID.

        Parameters:
            - retriever_id: str.
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.delete_retriever(
            retriever_id="string",
        )
        DELETEr&   rR   r(   r+   r,   r-   r.   Nr/   r0   r   r4   r5   r6   r7   r8   r9   r:   r1   r
   r;   r<   r   r?   r   r   r@   r   rP   rB   rC   s       r   delete_retrieverz!RetrieversClient.delete_retriever  s     ((55==LL  D$8$8$E$E$G#H!JN`am`nLop((446	 > 
	 )''-#- .  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   C= =+D(modererank_top_nrerank_configrf   rg   rh   queryc          	         d|i}|t         ur||d<   |t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd| d      t        |      | j                  j                         d	
      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  dk(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      # t"        $ r" t%        |j                  |j&                        w xY w)a  
        Retrieve data using a Retriever.

        Parameters:
            - retriever_id: str.

            - mode: typing.Optional[CompositeRetrievalMode]. The mode of composite retrieval.

            - rerank_top_n: typing.Optional[int].

            - rerank_config: typing.Optional[ReRankConfig]. The rerank configuration for composite retrieval.

            - query: str. The query to retrieve against.
        ---
        from llama_cloud import CompositeRetrievalMode, ReRankConfig, ReRankerType
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.retrieve(
            retriever_id="string",
            mode=CompositeRetrievalMode.ROUTING,
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
            query="string",
        )
        ri   rf   rg   rh   rG   r&   rR   	/retriever(   rY   r-   r.   r/   r0   r[   r   r4   r5   r6   r7   r8   r9   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   	r   rP   rf   rg   rh   ri   r]   rB   rC   s	            r   retrievezRetrieversClient.retrieve&  st   L 3:51At#HVt#'3H^$$(5H_%((55==LL  ''4467q9=OP\~]f;g "(+((446 > 
	 )''-#-(()A9>>CSTT  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   5E +Fr!   r"   rf   rg   rh   rW   c          	      @   d|i}|t         ur||d<   |t         ur||d<   |t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd      t        ||d	      t        |      | j                  j                         d
      }	d|	j                  cxk  rdk  r+n n(t        j                  t        |	j                               S |	j                  dk(  r1t!        t        j                  t"        |	j                                     	 |	j                         }
t'        |	j                  |
      # t$        $ r" t'        |	j                  |	j(                        w xY w)aK  
        Retrieve data using specified pipelines without creating a persistent retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - mode: typing.Optional[CompositeRetrievalMode]. The mode of composite retrieval.

            - rerank_top_n: typing.Optional[int].

            - rerank_config: typing.Optional[ReRankConfig]. The rerank configuration for composite retrieval.

            - query: str. The query to retrieve against.

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]]. The pipelines to use for retrieval.
        ---
        from llama_cloud import CompositeRetrievalMode, ReRankConfig, ReRankerType
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.retrievers.direct_retrieve(
            mode=CompositeRetrievalMode.ROUTING,
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
            query="string",
        )
        ri   rf   rg   rh   rW   rG   r&   api/v1/retrievers/retrieverE   r(   rH   r-   r.   r/   r0   r[   r   r4   r5   r6   r7   r8   r9   r	   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   r!   r"   rf   rg   rh   ri   rW   r]   rB   rC   s              r   direct_retrievez RetrieversClient.direct_retrievef  s   V 3:51At#HVt#'3H^$$(5H_%D $-H[!((55==LL  D$8$8$E$E$G#H!JLhi(
Wf)gh!(+((446 > 
	 )''-#-(()A9>>CSTT  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   E2 2+F)__name__
__module____qualname__r   r   r=   Optionalstrr>   r   rD   r   rK   rO   rU   r[   r   r^   rd   r   intr   r   rn   rt    r   r   r   r       s   .*; . &*+/04'O ooc"'O OOC(	'O
  -'O 
Y	'OX ,004	-O OOC(-O  -	-O
 !-O 
-Od ,004	-O OOC(-O  -	-O
 !-O 
-Of ,004)O)O OOC(	)O
  -)O 
)O^ &*EI.O.O ooc"	.O
 ??6;;/@#AB.O 
.O`OS OT OH 9=-17;>O>O oo45	>O
 ooc*>O |4>O >O 
">OF ,0048<-17;EIDO OOC(DO  -	DO
 oo45DO ooc*DO |4DO DO ??6;;/@#ABDO 
"DOr   r   c                      e Zd ZdefdZdddddej                  e   dej                  e   dej                  e   dej                  e	   fd	Z
ddd
dej                  e   dej                  e   dede	fdZddd
dej                  e   dej                  e   dede	fdZddd
dedej                  e   dej                  e   de	fdZeeddedej                  e   dej                  ej                  e      de	fdZdeddfdZeeeddedej                  e   dej                  e   dej                  e   dedefdZddeeeeddej                  e   dej                  e   dej                  e   dej                  e   dej                  e   dedej                  ej                  e      defdZy)AsyncRetrieversClientr   c                    || _         y r   r   r   s     r   r   zAsyncRetrieversClient.__init__  r   r   Nr   r    r!   r"   r#   c          
        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        |||d      | j                   j                         d       d{   }d|j                  cxk  rd	k  r<n n9t        j                  t        j                  t           |j                               S |j                  d
k(  r1t!        t        j                  t"        |j                                     	 |j                         }t'        |j                  |      7 # t$        $ r" t'        |j                  |j(                        w xY ww)a  
        List Retrievers for a project.

        Parameters:
            - name: typing.Optional[str].

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.list_retrievers()
        r%   r&   r'   r   r(   r)   Nr-   r.   r/   r0   r3   rA   s         r   rD   z%AsyncRetrieversClient.list_retrievers  sA    0 ..;;CCLL  D$8$8$E$E$G#H!JL_`($jet)uv((446 D 
 
	 )''-#-((Y)?AQRR  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BE<EBE<%E 5E<+E99E<rE   r5   c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      t        |      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Create a new Retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - request: RetrieverCreate.
        ---
        from llama_cloud import RetrieverCreate
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.create_retriever(
            request=RetrieverCreate(
                name="string",
            ),
        )
        rG   r&   r'   rE   r(   rH   Nr-   r.   r/   r0   rI   rJ   s         r   rK   z&AsyncRetrieversClient.create_retriever  s>    : ..;;CCLL  D$8$8$E$E$G#H!JL_`(
Wf)gh!'*((446 D 
 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	S+   BE4EBE4E -E4+E11E4c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      t        |      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Upsert a new Retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - request: RetrieverCreate.
        ---
        from llama_cloud import RetrieverCreate
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.upsert_retriever(
            request=RetrieverCreate(
                name="string",
            ),
        )
        rN   r&   r'   rE   r(   rH   Nr-   r.   r/   r0   rI   rJ   s         r   rO   z&AsyncRetrieversClient.upsert_retriever	  s>    : ..;;CCLL  D$8$8$E$E$G#H!JL_`(
Wf)gh!'*((446 D 
 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	Sr   rP   c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        ||d      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |      7 # t         $ r" t#        |j                  |j$                        w xY ww)a  
        Get a Retriever by ID.

        Parameters:
            - retriever_id: str.

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.get_retriever(
            retriever_id="string",
        )
        r%   r&   rR   rE   r(   r)   Nr-   r.   r/   r0   rS   rT   s         r   rU   z#AsyncRetrieversClient.get_retriever8  s?    4 ..;;CCLL  D$8$8$E$E$G#H!JN`am`nLop(
Wf)gh((446 D 
 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BE-D=BE-D? &E-?+E**E-rV   rW   c                  K   i }|t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd|       t        |      | j                  j                         d       d{   }d	|j                  cxk  rd
k  r+n n(t        j                  t        |j                               S |j                  dk(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Update an existing Retriever.

        Parameters:
            - retriever_id: str.

            - name: typing.Optional[str].

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.update_retriever(
            retriever_id="string",
        )
        r    rW   rN   r&   rR   r(   rY   Nr-   r.   r/   r0   rZ   r\   s          r   r^   z&AsyncRetrieversClient.update_retrieverc  sb    4 24t#HVD $-H[!..;;CCLL  D$8$8$E$E$G#H!JN`am`nLop!(+((446 D 
 
	 )''-#-((INN4DEE  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   B'F)E*BF/E ?F+FFc                 r  K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       | j                   j                         d       d{   }d|j                  cxk  rdk  ry |j                  d	k(  r1t        t        j                  t        |j                                     	 |j                         }t        |j                  |
      7 # t        $ r" t        |j                  |j                   
      w xY ww)aP  
        Delete a Retriever by ID.

        Parameters:
            - retriever_id: str.
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.delete_retriever(
            retriever_id="string",
        )
        r`   r&   rR   r(   ra   Nr-   r.   r/   r0   rb   rc   s       r   rd   z&AsyncRetrieversClient.delete_retriever  s      ..;;CCLL  D$8$8$E$E$G#H!JN`am`nLop((446	 D 
 
	 )''-#- .  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BD7DAD7 D	 0D7	+D44D7re   rf   rg   rh   ri   c          	      0  K   d|i}|t         ur||d<   |t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd| d      t        |      | j                  j                         d	
       d{   }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  dk(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Retrieve data using a Retriever.

        Parameters:
            - retriever_id: str.

            - mode: typing.Optional[CompositeRetrievalMode]. The mode of composite retrieval.

            - rerank_top_n: typing.Optional[int].

            - rerank_config: typing.Optional[ReRankConfig]. The rerank configuration for composite retrieval.

            - query: str. The query to retrieve against.
        ---
        from llama_cloud import CompositeRetrievalMode, ReRankConfig, ReRankerType
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.retrieve(
            retriever_id="string",
            mode=CompositeRetrievalMode.ROUTING,
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
            query="string",
        )
        ri   rf   rg   rh   rG   r&   rR   rk   r(   rY   Nr-   r.   r/   r0   rl   rm   s	            r   rn   zAsyncRetrieversClient.retrieve  s    L 3:51At#HVt#'3H^$$(5H_%..;;CCLL  ''4467q9=OP\~]f;g "(+((446 D 
 
	 )''-#-(()A9>>CSTT  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN#
  	Sy'<'<9>>RR	Ss+   B7F9E&:BF?E( F(+FFro   c          	      \  K   d|i}|t         ur||d<   |t         ur||d<   |t         ur||d<   |t         ur||d<   | j                  j                  j                  dt        j
                  j                  | j                  j                          dd      t        ||d	      t        |      | j                  j                         d
       d{   }	d|	j                  cxk  rdk  r+n n(t        j                  t        |	j                               S |	j                  dk(  r1t!        t        j                  t"        |	j                                     	 |	j                         }
t'        |	j                  |
      7 # t$        $ r" t'        |	j                  |	j(                        w xY ww)a[  
        Retrieve data using specified pipelines without creating a persistent retriever.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - mode: typing.Optional[CompositeRetrievalMode]. The mode of composite retrieval.

            - rerank_top_n: typing.Optional[int].

            - rerank_config: typing.Optional[ReRankConfig]. The rerank configuration for composite retrieval.

            - query: str. The query to retrieve against.

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]]. The pipelines to use for retrieval.
        ---
        from llama_cloud import CompositeRetrievalMode, ReRankConfig, ReRankerType
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.retrievers.direct_retrieve(
            mode=CompositeRetrievalMode.ROUTING,
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
            query="string",
        )
        ri   rf   rg   rh   rW   rG   r&   rq   rE   r(   rH   Nr-   r.   r/   r0   rr   rs   s              r   rt   z%AsyncRetrieversClient.direct_retrieve  s    V 3:51At#HVt#'3H^$$(5H_%D $-H[!..;;CCLL  D$8$8$E$E$G#H!JLhi(
Wf)gh!(+((446 D 
 
	 )''-#-(()A9>>CSTT  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	Ss+   CF,E<BF,E> %F,>+F))F,)ru   rv   rw   r   r   r=   rx   ry   r>   r   rD   r   rK   rO   rU   r[   r   r^   rd   r   rz   r   r   rn   rt   r{   r   r   r}   r}     s   .*< . &*+/04'O ooc"'O OOC(	'O
  -'O 
Y	'OX ,004	-O OOC(-O  -	-O
 !-O 
-Od ,004	-O OOC(-O  -	-O
 !-O 
-Of ,004)O)O OOC(	)O
  -)O 
)O^ &*EI.O.O ooc"	.O
 ??6;;/@#AB.O 
.O`O3 O4 OH 9=-17;>O>O oo45	>O
 ooc*>O |4>O >O 
">OF ,0048<-17;EIDO OOC(DO  -	DO
 oo45DO ooc*DO |4DO DO ??6;;/@#ABDO 
"DOr   r}   ))r=   urllib.parser6   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.jsonable_encoderr   core.remove_none_from_dictr	   !errors.unprocessable_entity_errorr
   types.composite_retrieval_moder    types.composite_retrieval_resultr   types.http_validation_errorr   types.re_rank_configr   types.retrieverr   types.retriever_creater   types.retriever_pipeliner   r;   __version__
startswithImportErrorpydantic.v1v1castAnyr[   r   r}   r{   r   r   <module>r      s      ( & H 5 ? I D H > 0 ( 5 9&&t,"
 v{{6::s#JO JOZJO JOi  s   'B3 3	B?>B?