
    Ji~}                        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eeeeddej                  e   dej                  e   dej                  e   dej                  ej                  e      dedej                  e   dej                  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ddeeeddedej                  e   dej                  e   dej                  e   dedej                  e   dej                  e   defdZy)RetrieversClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     y/var/www/html/BankruptcyAI-uat/bankruptcy-ai/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   r!   r"   mode	pipelinesrerank_configrerank_top_nrQ   rR   queryrS   rT   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.

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]]. The pipelines to use for retrieval.

            - query: str. The query to retrieve against.

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

            - rerank_top_n: typing.Optional[int].
        ---
        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,
            query="string",
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
        )
        rU   rQ   rR   rS   rT   rG   r&   api/v1/retrievers/retrieverE   r(   rH   r-   r.   r/   r0   OMITr   r4   r5   r6   r7   r8   r9   r	   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   r!   r"   rQ   rR   rU   rS   rT   _requestrB   rC   s              r   direct_retrievez RetrieversClient.direct_retrieve   s   V 3:51At#HVD $-H[!$(5H_%t#'3H^$((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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   r]   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    rR   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    rR   rN   r&   r_   r(   r?   r+   r,   r-   r.   r/   r0   rY   r   r4   r5   r6   r7   r8   r9   r   r:   r1   r;   r<   r   r?   r
   r   r   r   r@   r   r]   r    rR   r[   rB   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&   r_   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   r]   rB   rC   s       r   delete_retrieverz!RetrieversClient.delete_retrieverL  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(r!   r"   rQ   rS   rT   c          	      .   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        ||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.

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

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

            - query: str. The query to retrieve against.

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

            - rerank_top_n: typing.Optional[int].
        ---
        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,
            query="string",
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
        )
        rU   rQ   rS   rT   rG   r&   r_   	/retrieverE   r(   rH   r-   r.   r/   r0   rX   r   r]   r!   r"   rQ   rU   rS   rT   r[   rB   rC   s              r   retrievezRetrieversClient.retrievel  s   X 3:51At#HV$(5H_%t#'3H^$((55==LL  ''4467q9=OP\~]f;g )
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   E) )+F)__name__
__module____qualname__r   r   r=   Optionalstrr>   r   rD   r   rK   rO   rY   r   r   r   intr   r\   rb   rh   rn   rs    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d ,0048<EI7;-1DO OOC(DO  -	DO
 oo45DO ??6;;/@#ABDO DO |4DO ooc*DO 
"DOT ,004)O)O OOC(	)O
  -)O 
)O^ &*EI.O.O ooc"	.O
 ??6;;/@#AB.O 
.O`OS OT OH ,0048<7;-1EOEO OOC(	EO
  -EO oo45EO EO |4EO ooc*EO 
"E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eeeeddej                  e   dej                  e   dej                  e   dej                  ej                  e      dedej                  e   dej                  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ddeeeddedej                  e   dej                  e   dej                  e   dedej                  e   d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   rQ   rR   rU   rS   rT   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.

            - pipelines: typing.Optional[typing.List[RetrieverPipeline]]. The pipelines to use for retrieval.

            - query: str. The query to retrieve against.

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

            - rerank_top_n: typing.Optional[int].
        ---
        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,
            query="string",
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
        )
        rU   rQ   rR   rS   rT   rG   r&   rW   rE   r(   rH   Nr-   r.   r/   r0   rX   rZ   s              r   r\   z%AsyncRetrieversClient.direct_retrieve?  s    V 3:51At#HVD $-H[!$(5H_%t#'3H^$..;;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,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 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&   r_   rE   r(   r)   Nr-   r.   r/   r0   r`   ra   s         r   rb   z#AsyncRetrieversClient.get_retriever  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-rc   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    rR   rN   r&   r_   r(   re   Nr-   r.   r/   r0   rf   rg   s          r   rh   z&AsyncRetrieversClient.update_retriever  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",
        )
        rj   r&   r_   r(   rk   Nr-   r.   r/   r0   rl   rm   s       r   rn   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ro   c          	      J  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        ||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.

            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

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

            - query: str. The query to retrieve against.

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

            - rerank_top_n: typing.Optional[int].
        ---
        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,
            query="string",
            rerank_config=ReRankConfig(
                type=ReRankerType.SYSTEM_DEFAULT,
            ),
        )
        rU   rQ   rS   rT   rG   r&   r_   rq   rE   r(   rH   Nr-   r.   r/   r0   rX   rr   s              r   rs   zAsyncRetrieversClient.retrieve   s    X 3:51At#HV$(5H_%t#'3H^$..;;CCLL  ''4467q9=OP\~]f;g )
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#E3BF#E5 F#5+F  F#)rt   ru   rv   r   r   r=   rw   rx   r>   r   rD   r   rK   rO   rY   r   r   r   ry   r   r\   rb   rh   rn   rs   rz   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d ,0048<EI7;-1DO OOC(DO  -	DO
 oo45DO ??6;;/@#ABDO DO |4DO ooc*DO 
"DOT ,004)O)O OOC(	)O
  -)O 
)O^ &*EI.O.O ooc"	.O
 ??6;;/@#AB.O 
.O`O3 O4 OH ,0048<7;-1EOEO OOC(	EO
  -EO oo45EO EO |4EO ooc*EO 
"E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AnyrY   r   r|   rz   r   r   <module>r      s      ( & H 5 ? I D H > 0 ( 5 9&&t,"
 v{{6::s#QO QOhQO QOw  s   'B3 3	B?>B?