
    i                     <    d dl mZ d dl mZ d dlmZ  G d d      Zy)    )BatchRequestCounts)MetadataLiteLLMBatchc                   2    e Zd ZdZe	 ddededdfd       Zy)	BedrockBatchesHandlerz
    Handler for Bedrock Batches.

    Specific providers/models needed some special handling.

    E.g. Twelve Labs Embedding Async Invoke
    Nbatch_idaws_region_namereturnr   c                     	
 ddl 
ddlm  fd	ddl}	
fd}|j                  j                         5 }|j                  |      }|j                         cddd       S # 1 sw Y   yxY w)av  
        Handle async invoke status check for AWS Bedrock.

        This is for Twelve Labs Embedding Async Invoke.

        Args:
            batch_id: The async invoke ARN
            aws_region_name: AWS region name
            **kwargs: Additional parameters

        Returns:
            dict: Status information including status, output_file_id (S3 URL), etc.
        r   N)BedrockEmbeddingc                    K           }  | j                   d	d d {   }ddlm} |d   d   d   |j                  d      xs d|d	   d
} ||d   d|d   |d   |d   |j                  d      |d   dk(  r|j                  d      nd t	        d|d   dk(  rdnd|d   dk(  rdnd      |ddd      }|S 7 w)N)invocation_arnr
   logging_objr   r   outputDataConfigs3OutputDataConfigs3UrifailureMessage modelArn)output_file_idfailure_message	model_arninvocationArnbatchstatus
submitTimelastModifiedTimeendTimefailed   	completed)totalr"   r    24hz/v1/embeddings)idobjectr   
created_atin_progress_atcompleted_at	failed_atrequest_countsmetadatacompletion_windowendpointinput_file_id )_get_async_invoke_statuslitellm.types.utilsr   getr   )
embedding_handlerstatus_responser   openai_batch_metadataresultr   r
   r	   kwargsr   s
        u/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/batches/handler.py_async_get_statuszLBedrockBatchesHandler._handle_async_invoke_status.<locals>._async_get_status%   s0     0 2 %O$5$N$N %' /'% 	% O 9 #22D"E(## $3#6#67G#H#NB,Z8:! ""?3&x0*<8./AB,00;"8,8 *--i81#28#<#KaQR / 9X E11 
 /"') %F* MOs   !C B>BC c                      j                         } j                  |        	 | j                                | j                          S # | j                          w xY wN)new_event_loopset_event_looprun_until_completeclose)new_loopr:   asyncios    r9   run_in_threadzHBedrockBatchesHandler._handle_async_invoke_status.<locals>.run_in_threadW   sK    --/H""8,!223D3FG  s   A
 
A)rB   $litellm.llms.bedrock.embed.embeddingr   concurrent.futuresfuturesThreadPoolExecutorsubmitr7   )r	   r
   r   r8   
concurrentrC   executorfuturer   r:   rB   s   ````    @@@r9   _handle_async_invoke_statusz1BedrockBatchesHandler._handle_async_invoke_status   sY    " 	I,	 ,	` 	"	! 224__]3F==? 544s   !A**A3r<   )__name__
__module____qualname____doc__staticmethodstrrL   r0       r9   r   r      s;     9=P#P#(+P#	P# P#rS   r   N)openai.types.batchr   r   OpenAIBatchMetadatar2   r   r   r0   rS   r9   <module>rV      s    1 > ,Z# Z#rS   