
    Cj"                     @   S r SSKrSSKrSSKrSSKJr  SSKJrJrJ	r	J
r
JrJrJr  SSKrSSKJr  SSKrSSKJr  SSK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!  SSK"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)J*r*J+r+J,r,  SSK-J.r.  SSK/J0r0J1r1J2r2J3r3J4r4  SSK5J6r6J7r7J8r8J9r9J:r:  \#" 5       r;\" 5       r<\%" SS9r=\" 5       r>\!" 5       r? S=S\.S\	\@\4   S\@S\AS\A4
S jjrB\7     S>S\
S   S\
S   S \@S\
S!   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S%\\	\@\4      S\34S& jj5       rC\7     S>S\
S   S\
S   S \@S\
S!   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S%\\	\@\4      S\\3\\\\34   4   4S' jj5       rD\7    S?S(\@S\
S)   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S\34S* jj5       rE  S@S(\@S\.S+\\A\R                  4   S,\GS-\,S.\HS\
S)   S/\\   4S0 jjrI\7    S?S(\@S\
S)   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S\\3\\\\34   4   4S1 jj5       rJ\7      SAS2\\@   S3\\K   S\2S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      4S4 jj5       rL\7     SBS2\\@   S3\\K   S\2S#\\	\@\@4      S$\\	\@\@4      4
S5 jj5       rM     SCS(\@S6\\@   S\
S7   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S\34S8 jjrN     SCS(\@S6\\@   S\\
S7   \@4   S"\\	\@\@4      S#\\	\@\@4      S$\\	\@\@4      S\\3\\\\34   4   4S9 jjrO SDS(\@S:\@SS;4S< jjrPg)Ez
Main File for Batches API implementation

https://platform.openai.com/docs/api-reference/batch

- create_batch()
- retrieve_batch()
- cancel_batch()
- list_batch()

    N)partial)Any	CoroutineDictLiteralOptionalUnioncast)BatchRequestCounts)verbose_logger)Logging)AnthropicBatchesHandler)AzureBatchesAPI)BedrockBatchesHandler)AsyncHTTPHandlerHTTPHandler)BaseLLMHTTPHandler)OpenAIBatchesAPI)VertexAIBatchPrediction)get_secret_str)CancelBatchRequestCreateBatchRequestFileExpiresAfterRetrieveBatchRequest)GenericLiteLLMParams) LIST_BATCHES_SUPPORTED_PROVIDERS+OPENAI_COMPATIBLE_BATCH_AND_FILES_PROVIDERSListBatchesSupportedProviderLiteLLMBatchLlmProviders)ProviderConfigManagerclientget_litellm_paramsget_llm_providersupports_httpx_timeout )gcs_bucket_nameoptional_paramskwargscustom_llm_providerdefault_timeoutreturnc                 f   U R                   =(       d    UR                  SU5      =(       d    Un[        U[        R                  5      (       aL  [        U5      SL a   UR                  =(       d    Un[        U5      $ [        UR                  =(       d    U5      $ Uc  [        U5      $ [        U5      $ )ay  
Resolve timeout value from various sources and handle httpx.Timeout objects.

Args:
    optional_params: GenericLiteLLMParams object containing timeout
    kwargs: Additional kwargs that may contain request_timeout
    custom_llm_provider: Provider name for httpx timeout support check
    default_timeout: Default timeout value to use

Returns:
    Resolved timeout as float
request_timeoutF)timeoutget
isinstancehttpxTimeoutr%   readfloat)r(   r)   r*   r+   r/   read_timeouts         f/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/batches/main.py_resolve_timeoutr8   @   s    & 	 	::'9	  '5==))!"56%?"<<:?L&& 899 _%% >    completion_window24hendpoint)z/v1/chat/completions/v1/embeddingsz/v1/completionsinput_file_id)openaiazure	vertex_aibedrockhosted_vllmmetadataextra_headers
extra_bodyoutput_expires_afterc                   #     [         R                  " 5       n	SUS'   [        [        U UUUUUUU4	0 UD6n
[        R
                  " 5       n[        UR                  U
5      nU	R                  SU5      I Sh  vN n[         R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  nUeSnAff = f7f)z
Async: Creates and executes a batch from an uploaded file of request

LiteLLM Equivalent of POST: https://api.openai.com/v1/batches
Tacreate_batchN)
asyncioget_event_loopr   create_batchcontextvarscopy_contextrunrun_in_executoriscoroutine	Exception)r:   r<   r>   r*   rD   rE   rF   rG   r)   loopfuncctxfunc_with_contextinit_responseresponsees                   r7   rI   rI   k   s     &%%'"&  
 
 &&(#CGGT2"2249JKK}--**H  %H L +
  sY   B>A2B* 6B&7$B* B(B* !B>"B* %B>&B* (B* *
B;4B66B;;B>c                 
    [        S10 UD6n	UR                  SS5      n
UR                  SS5      nUR                  SS5      nUR                  SS5      n Ub  [        USS9u  n    nUR                  SS	5      S
L n[        [        S10 UD65      n[        [        UR                  SS5      5      n[        XU5      nUR                  UUSU	R                  5       U
UUS0 S.U	R                  S
S9EUS9  [        U UUUUUS9nUb  [        [        U5      US'   Ub  [         R"                  " U[%        U5      S9nOSnUbh  [&        R)                  UUUU=(       d    0 U	R*                  U	R,                  UU[.        b%  [1        [.        [2        [4        45      (       a  [.        OSUUS9nU$ SnU[6        ;   Ga,  U	R*                  =(       dS    [8        R*                  =(       d<    [:        R<                  " S5      =(       d    [:        R<                  " S5      =(       d    SnU	R>                  =(       d7    [8        R>                  =(       d     [:        R<                  " SS5      =(       d    SnU	R,                  =(       dD    [8        R,                  =(       d-    [8        R@                  =(       d    [:        R<                  " S5      n[B        R)                  UUUUUU	RD                  US9nU$ US:X  Ga!  U	R*                  =(       d"    [8        R*                  =(       d    [G        S5      nU	RH                  =(       d"    [8        RH                  =(       d    [G        S5      nU	R,                  =(       dK    [8        R,                  =(       d4    [8        RJ                  =(       d    [G        S5      =(       d    [G        S5      nU	R                  S0 5      nUb  UR                  SS5        O[G        S 5        [L        R)                  UUUUUU	RD                  UUS!9nU$ US":X  a  U	R*                  =(       d    S#nU	RN                  =(       d"    [8        RN                  =(       d    [G        S$5      nU	RP                  =(       d"    [8        RP                  =(       d    [G        S%5      nU	RR                  =(       d    [G        S&5      n[T        R)                  UUUUUUU	RD                  US'9nU$ [8        RV                  RY                  S(R[                  U5      S)U[\        R^                  " S*S+[\        R`                  " S,S-S.9S/9S09e! [         a-  n[        R
                  " S[        U5       35         SnAGNSnAff = f! [         a  nUeSnAff = f)2z~
Creates and executes a batch from an uploaded file of request

LiteLLM Equivalent of POST: https://api.openai.com/v1/batches
litellm_call_idNproxy_server_request
model_infomodelr^   r*   zPlitellm.batches.main.py::create_batch() - Error inferring custom_llm_provider - rI   FTlitellm_logging_obj)r[   r\   r]   preset_cache_keystream_response)exclude_unsetr)   r^   userr(   litellm_paramsr*   )r:   r<   r>   rD   rE   rF   rG   r^   provider)provider_configrf   create_batch_dataheadersapi_baseapi_keylogging_obj	_is_asyncr"   r/   r^   OPENAI_BASE_URLOPENAI_API_BASEhttps://api.openai.com/v1OPENAI_ORGANIZATIONOPENAI_API_KEY)rl   rm   organizationrj   r/   max_retriesro   r@   AZURE_API_BASEAZURE_API_VERSIONAZURE_OPENAI_API_KEYAZURE_API_KEYrF   azure_ad_tokenAZURE_AD_TOKEN)ro   rl   rm   api_versionr/   rv   rj   rf   rA   r&   VERTEXAI_PROJECTVERTEXAI_LOCATIONVERTEXAI_CREDENTIALS)ro   rl   vertex_projectvertex_locationvertex_credentialsr/   rv   rj   zALiteLLM doesn't support custom_llm_provider={} for 'create_batch'n/a  Unsupported providerrL   "https://github.com/BerriAI/litellmmethodurlstatus_codecontentrequestmessager^   llm_providerrX    )1r   r0   r$   rR   r   	exceptionstrpopdictr
   LiteLLMLoggingObjr8   update_from_kwargs
model_dumpr   r   r!   get_provider_batches_configr    base_llm_http_handlerrL   rl   rm   r"   r1   r   r   r   litellmosgetenvru   
openai_keyopenai_batches_instancerv   r   r}   	azure_keyazure_batches_instancer   r   r   vertex_ai_batches_instance
exceptionsBadRequestErrorformatr2   ResponseRequest)r:   r<   r>   r*   rD   rE   rF   rG   r)   r(   r[   r\   r]   r^   _rY   ro   rf   r`   r/   _create_batch_requestri   rX   rl   ru   rm   r}   vertex_ai_projectvertex_ai_locationr   s                                 r7   rL   rL      s   &}.88 **%6=%zz*@$GZZd3
%zz'48		 !1(,"q!Q JJ6$>	2<V<=15vzz*?F2
 #?<OP..+668#2(<($(#% ",,4,@ !4 	/ 	
  !3/''!!
  +<@ "6=!"89 3OO%&9:O
 #O&,99 /-"7%+(11'///# )"6K9I+JKK  ! : H$ O"&"MM  (( /##/99.// 99.// /   ,, ''992D9 	   '' /??/%%/ 99-.	  /;;!)"7+77# < Hh W !G+(( 4##4!"23   ++ 7&&7!"56   '' 3??3$$3 ""893 "/2  ),,\2>J%/6/0-::#!'+77"7- ; 	Hb O !K/&//52H.. 6))6!"45   // 7**7!"56 
 "1!C!C "~&H 2>>#!0 2#5+77"7 ? 	H.  $$44[bb' 0 #2!MMEij 5  G  	$$bcfghcibjk 	`  s_   AU  T& (D=U  &D8U  D'U  CU  AU  &
U0"UU  UU   
U1*U,,U1batch_id)r?   r@   rA   rB   rC   	anthropicc                 z  #     [         R                  " 5       nSUS'   [        [        U UUUU40 UD6n[        R
                  " 5       n[        UR                  U5      n	UR                  SU	5      I Sh  vN n
[         R                  " U
5      (       a  U
I Sh  vN nU$ U
nU$  N/ N! [         a  nUeSnAff = f7f)zc
Async: Retrieves a batch.

LiteLLM Equivalent of GET https://api.openai.com/v1/batches/{batch_id}
Taretrieve_batchN)
rJ   rK   r   retrieve_batchrM   rN   rO   rP   rQ   rR   )r   r*   rD   rE   rF   r)   rS   rT   rU   rV   rW   rX   rY   s                r7   r   r   r  s      %%'$( ! 
 
 &&(#CGGT2"2249JKK}--**H  %H L*
  Y   B;A/B' 3B#4$B' B%B' B;B' "B;#B' %B' '
B81B33B88B;r/   rf   _retrieve_batch_requestro   rn   c                 ~   S nU[         ;   Ga,  UR                  =(       dS    [        R                  =(       d<    [        R                  " S5      =(       d    [        R                  " S5      =(       d    SnUR
                  =(       d7    [        R
                  =(       d     [        R                  " SS 5      =(       d    S n	UR                  =(       dD    [        R                  =(       d-    [        R                  =(       d    [        R                  " S5      n
[        R                  UUUU
U	UUR                  S9nU$ US:X  Ga!  UR                  =(       d"    [        R                  =(       d    [        S5      nUR                  =(       d"    [        R                  =(       d    [        S	5      nUR                  =(       dK    [        R                  =(       d4    [        R                  =(       d    [        S
5      =(       d    [        S5      n
UR                  S0 5      nUb  UR                  SS 5        O[        S5        [         R                  UUU
UUUR                  UUS9nU$ US:X  a  UR                  =(       d    SnUR"                  =(       d"    [        R"                  =(       d    [        S5      nUR$                  =(       d"    [        R$                  =(       d    [        S5      nUR&                  =(       d    [        S5      n[(        R                  UU UUUUUUR                  US9	nU$ US:X  a  UR                  =(       d4    [        R                  =(       d    [        S5      =(       d    [        S5      nUR                  =(       d9    [        R                  =(       d"    [        R                  =(       d    [        S5      n
[*        R                  UU UU
UUR                  S9nU$ [        R,                  R/                  SR1                  U5      SU[2        R4                  " SS[2        R6                  " SS S!9S"9S#9e)$Nrp   rq   rr   rs   rt   )ro   retrieve_batch_datarl   rm   ru   r/   rv   r@   rw   rx   ry   rz   rF   r{   r|   )ro   rl   rm   r}   r/   rv   r   rf   rA   r&   r~   r   r   )	ro   r   rl   r   r   r   r/   rv   rn   r   ANTHROPIC_API_BASEANTHROPIC_BASE_URLANTHROPIC_API_KEY)ro   r   rl   rm   r/   rv   a  LiteLLM doesn't support custom_llm_provider={} for 'retrieve_batch' without a `model` kwarg. Supported via this path: 'openai', 'azure', 'vertex_ai', 'anthropic'. 'bedrock' is supported but requires `model` to be passed so the provider config can be loaded.r   r   r   r   r   r   r   r   )r   rl   r   r   r   ru   rm   r   r   r   rv   r   r}   r   r0   r   r   r   r   r   r   anthropic_batches_instancer   r   r   r2   r   r   )r   r(   r/   rf   r   ro   r*   rn   rl   ru   rm   rX   r}   rF   r   r   r   s                    r7   8_handle_retrieve_batch_providers_without_provider_configr     s
    #HII $$ ++yy*++ yy*++ + 	 (( ##yy.5 	 	 ## ++!!+ yy)*	 	 +99 7%'33 : 
Z OI 
	'$$ 00./ 	 '' 3""312 	 ## //  / 45/ o. 	 %((r:
!NN+T2+,)88#'33 7) 9 	
T OA 
	+"++1r** 2%%201 	 ++ 3&&312 	
 -?? 
>"D
 .<<,.1'33# = 

` OK 
	+$$ 44234 23	 	 ## 33  3 12	 	 .<<'33 = 
. O   00q f(),^^.-=Cgh 1 
 	
r9   c                     [        S0 UD6nUR                  SS5      nUR                  =(       d    UR                  SS5      =(       d    Sn[        SSU0UD6n	Ub"  UR	                  USSUR                  5       U	US9  UbE  [        U[        R                  5      (       a&  [        U5      SL a  UR                  =(       d    Sn
U
nO3Ub+  [        U[        R                  5      (       d  [        U5      nOUc  Sn[        U UUS	9nUR                  S
S5      SL nUR                  SS5      nU R                  S5      (       a  SU ;   a  SU ;   aL  UR                  5       nUR                  SS5        [         R"                  " SU UR                  SS5      US.UD6$ SU ;   aK  UR                  5       nUR                  SS5        [         R$                  " SU UR                  S5      US.UD6$ UR                  SS5      nUb  [&        R(                  " U[+        U5      S9nOSnUb  [,        R/                  U UU	U=(       d    0 UR0                  UR2                  U=(       d    [5        U=(       d    U S3/ SSSSU -   SS9UUb  [        U[6        [8        45      (       a  UOSUUS9nU$ [;        U UUU	UUUUS9$ ! [<         a  nUeSnAff = f)z\
Retrieves a batch.

LiteLLM Equivalent of GET https://api.openai.com/v1/batches/{batch_id}
r`   Nr.   X  r*   rd   F     @r   rE   rF   r   Tr"   zarn:awsz	:bedrock:z:async-invoke/aws_region_namez	us-east-1)r   r   rn   z:model-invocation-job/r^   rg   z/unknownbatch_retrievebatch_retrieve_)r^   messagesstream	call_type
start_timer[   function_id)r   ri   rf   rk   rl   rm   rn   ro   r"   r/   r^   )r   r*   r(   rf   r   ro   r/   rn   r   )r   r0   r/   r#   r   r   r1   r2   r3   r%   r4   r5   r   r   
startswithcopyr   _handle_async_invoke_status#_handle_model_invocation_job_statusr!   r   r    r   r   rl   rm   r   r   r   r   rR   )r   r*   rD   rE   rF   r)   r(   r`   r/   rf   r6   r   ro   r"   async_kwargs
mij_kwargsr^   ri   rX   rY   s                       r7   r   r   2  s1    .88;A::!4<
 "))VVZZ8I3-OVSV+ 
 3

 *22 / : : <-$7 3  7EMM22&':;uD"<<.3L"G GU]])K)KGnG_G"6'!#
 JJ0%8D@	Hd+ y))kX.E8+%{{}  !2D9,HH %$*JJ/@+$N 3 #	  (83#[[]
0$7,PP %$*JJ/@$A 3 !	   &zz'483OO%&9:O
 #O&,;;! /-%+(11'/// 	$C&9%:(#C .#$5$@ 0 $ )"6K9I+JKK  3 < H6 O
 H 3+)$;+	
 		
  s,   FJ4 AJ4 *B9J4 $J4 4
K>K  Kafterlimitc                 z  #     [         R                  " 5       nSUS'   [        [        U UUUU40 UD6n[        R
                  " 5       n	[        U	R                  U5      n
UR                  SU
5      I Sh  vN n[         R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  nUeSnAff = f7f)z*
Async: List your organization's batches.
Talist_batchesN)
rJ   rK   r   list_batchesrM   rN   rO   rP   rQ   rR   )r   r   r*   rD   rE   rF   r)   rS   rT   rU   rV   rW   rX   rY   s                 r7   r   r     s     %%'"& 
 
 &&(#CGGT2"2249JKK}--**H  %H L*
  r   c                 	    [        S(0 UD6n[        S(SU0UD6nUR                  =(       dD    [        R                  =(       d-    [        R                  =(       d    [
        R                  " S5      nUR                  =(       d    UR                  SS5      =(       d    Sn	U	bE  [        U	[        R                  5      (       a&  [        U5      SL a  U	R                  =(       d    Sn
U
n	O3U	b+  [        U	[        R                  5      (       d  [        U	5      n	OU	c  Sn	UR                  SS5      S	L nU[         ;   a  UR"                  =(       dS    [        R"                  =(       d<    [
        R                  " S
5      =(       d    [
        R                  " S5      =(       d    SnUR$                  =(       d7    [        R$                  =(       d     [
        R                  " SS5      =(       d    Sn[&        R)                  UU UUUUU	UR*                  S9nU$ US:X  Ga   UR"                  =(       d"    [        R"                  =(       d    [-        S5      nUR.                  =(       d"    [        R.                  =(       d    [-        S5      nUR                  =(       dK    [        R                  =(       d4    [        R0                  =(       d    [-        S5      =(       d    [-        S5      nUR                  S0 5      nUb  UR                  SS5        O[-        S5        [2        R)                  UUUUU	UR*                  US9nU$ US:X  a  UR"                  =(       d    SnUR4                  =(       d"    [        R4                  =(       d    [-        S5      nUR6                  =(       d"    [        R6                  =(       d    [-        S5      nUR8                  =(       d    [-        S5      n[:        R)                  UU UUUUUU	UR*                  S9	nU$ [        R<                  R?                  SRA                  USRC                  [E        [F        5      5      5      S U[        RH                  " S!S"[        RJ                  " S#S$S%9S&9S'9e! [L         a  nUeSnAff = f))z2
Lists batches

List your organization's batches.
r*   rt   r.   r   NFr   r   Trp   rq   rr   rs   )ro   r   r   rl   rm   ru   r/   rv   r@   rw   rx   ry   rz   rF   r{   r|   )ro   rl   rm   r}   r/   rv   rf   rA   r&   r~   r   r   )	ro   r   r   rl   r   r   r   r/   rv   zELiteLLM doesn't support {} for 'list_batch'. Supported providers: {}.z, r   r   r   create_threadr   r   r   r   r   )'r   r#   rm   r   r   r   r   r/   r0   r1   r2   r3   r%   r4   r5   r   r   rl   ru   r   r   rv   r   r}   r   r   r   r   r   r   r   r   r   joinsortedr   r   r   rR   )r   r   r*   rE   rF   r)   r(   rf   rm   r/   r6   ro   rl   ru   rX   r}   r   r   r   rY   s                       r7   r   r     s3   B.88+ 
 3


 ## ++!!+ yy)*	 	 "))VVZZ8I3-OVSV 7EMM22&':;uD"<<.3L"G GU]])K)KGnG_GJJ6$>	"MM  (( /##/99.// 99.// /   ,, ''992D9 	  /;;#!)+77 < 	Hd Q !G+&//g73C3Cg~VfGgH++ 7&&7!"56   '' 3??3$$3 ""893 "/2  ),,\2>J%/6/0-::#!'+77- ; Hd S !K/&//52H.. 6))6!"45   // 7**7!"56 
 "1!C!C "~&H 2>>#!0 2#5+77 ? 
H2  $$44_ff'IIf%EFG 0 #2!MMFjk 5    s-   HQ2 D&Q2 5C	Q2 ?A3Q2 2
R<Q>>Rr^   )r?   r@   rA   c           	        #     [         R                  " 5       nSUS'   UR                  SS5      =(       d    Un[        [        U UUUUU40 UD6n[
        R                  " 5       n	[        U	R                  U5      n
UR                  SU
5      I Sh  vN n[         R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  nUeSnAff = f7f)zi
Async: Cancels a batch.

LiteLLM Equivalent of POST https://api.openai.com/v1/batches/{batch_id}/cancel
Tacancel_batchr^   N)rJ   rK   r   r   cancel_batchrM   rN   rO   rP   rQ   rR   )r   r^   r*   rD   rE   rF   r)   rS   rT   rU   rV   rW   rX   rY   s                 r7   r   r     s     %%'"& 

7D)2U 	
 	
 &&(#CGGT2"2249JKK}--**H  %H L*
  sY   CBC B?$C 4C5C :C;C >C?C C 
CCCCc                 	     Ub  [        UUS9u  pr  n[        S)0 UD6n	[        S)SU0UD6n
U	R                  =(       d    UR                  SS5      =(       d    SnUbE  [        U[        R                  5      (       a&  [        U5      SL a  UR                  =(       d    SnUnO3Ub+  [        U[        R                  5      (       d  [        U5      nOUc  Sn[        U UUS	9nUR!                  S
S5      SL nSnU["        ;   Ga,  U	R$                  =(       dS    [&        R$                  =(       d<    [(        R*                  " S5      =(       d    [(        R*                  " S5      =(       d    SnU	R,                  =(       d7    [&        R,                  =(       d     [(        R*                  " SS5      =(       d    SnU	R.                  =(       dD    [&        R.                  =(       d-    [&        R0                  =(       d    [(        R*                  " S5      n[2        R5                  UUUUUUU	R6                  S9nU$ US:X  Ga!  U	R$                  =(       d"    [&        R$                  =(       d    [9        S5      nU	R:                  =(       d"    [&        R:                  =(       d    [9        S5      nU	R.                  =(       dK    [&        R.                  =(       d4    [&        R<                  =(       d    [9        S5      =(       d    [9        S5      nU	R                  S0 5      nUb  UR!                  SS5        O[9        S5        [>        R5                  UUUUUU	R6                  UU
S9nU$ US:X  a  U	R$                  =(       d    SnU	R@                  =(       d"    [&        R@                  =(       d    [9        S5      nU	RB                  =(       d"    [&        RB                  =(       d    [9        S5      nU	RD                  =(       d    [9        S5      n[F        R5                  UU UUUUUU	R6                  S9nU$ [&        RH                  RK                  S RM                  U5      S!U[        RN                  " S"S#[        RP                  " S$S%S&9S'9S(9e! [         a-  n[        R                  " S[	        U5       35         SnAGNSnAff = f! [         a  nUeSnAff = f)*zb
Cancels a batch.

LiteLLM Equivalent of POST https://api.openai.com/v1/batches/{batch_id}/cancel
Nr_   zPlitellm.batches.main.py::cancel_batch() - Error inferring custom_llm_provider - r*   r.   r   Fr   r   r   Trp   rq   rr   rs   rt   )ro   cancel_batch_datarl   rm   ru   r/   rv   r@   rw   rx   ry   rz   rF   r{   r|   )ro   rl   rm   r}   r/   rv   r   rf   rA   r~   r   r   )ro   r   rl   r   r   r   r/   rv   zeLiteLLM doesn't support {} for 'cancel_batch'. Only 'openai', 'azure', and 'vertex_ai' are supported.r   r   r   r   r   r   r   r   r   ))r$   rR   r   r   r   r   r#   r/   r0   r1   r2   r3   r%   r4   r5   r   r   r   rl   r   r   r   ru   rm   r   r   r   rv   r   r}   r   r   r   r   r   r   r   r   r   r   r   )r   r^   r*   rD   rE   rF   r)   r   rY   r(   rf   r/   r6   _cancel_batch_requestro   rl   ru   rm   rX   r}   r   r   r   s                          r7   r   r     s   S		 /?(;0,1 /88+ 
 3


 "))VVZZ8I3-OVSV 7EMM22&':;uD"<<.3L"G GU]])K)KGnG_G 2'!!
 JJ6$>	"&"MM(( /##/99.// 99.// /   ,, ''992D9 	   '' /??/%%/ 99-.	  /;;#"7!)+77 < Hh W !G+(( 4##4!"23   ++ 7&&7!"56   '' 3??3$$3 ""893 "/2  ),,\2>J%/6/0-::#!'+77"7- ; 	Hb O !K/&//74H.. 6))6!"45   // 7**7!"56 
 "1!C!C "~&H 2>>#!!0 2#5+77 ? 	H.  $$44  G  G' 0 #2!MMEij 5  }  	$$bcfghcibjk 	V  sP   Q4 HR. -D'R. CR. AR. 4
R+>"R& R. &R++R. .
R?8R::R?r   r   c                    ^ ^^^^^	^
 SSK m
SSKJm  UUU UU4S jm	SSKnU	U
4S jnUR                  R                  5        nUR                  U5      nUR                  5       sSSS5        $ ! , (       d  f       g= f)z
Handle async invoke status check for AWS Bedrock.

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                  l  >#    T" 5       n U R                   " STTTS.TD6I S h  vN nSSKJn  SSKJn  UR                  SS5      nUR                  5       nSSS	S	S
.nUR                  US5      nSn US   S   S   nSS K	n	SSK
Jn
  U
" 5       R                  X5      u  nnnnnnU" US   SUU=(       d    [        U	R                  5       5      UUU[        SUS:X  a  SOSUS:X  a  SOSS9[        S0 UUR                  S5      =(       d    SUS   S.D6SSSS9nU$  N! [        [        4 a     Nf = f7f)N)invocation_arnr   rn   r   )BatchJobStatus)r   statusr&   	completedfailedin_progress)r   r   
inprogressr   outputDataConfigs3OutputDataConfigs3Uri)BedrockBatchesConfiginvocationArnbatch   )totalr   r   failureMessagemodelArn)output_file_idfailure_message	model_arnr;   r=   )idobjectr   
created_atin_progress_atcompleted_at	failed_atrequest_countsrD   r:   r<   r>   r   )_get_async_invoke_statuslitellm.types.llms.openair   litellm.types.utilsr   r0   lowerKeyError	TypeErrortime+litellm.llms.bedrock.batches.transformationr   _parse_timestamps_and_statusintr   r   )embedding_handlerstatus_responser   r   aws_status_rawaws_status_lowerstatus_mappingnormalized_statusoutput_s3_urir   r   r   r   r   r   r   resultr   r   r   r)   rn   s                    r7   _async_get_status6_handle_async_invoke_status.<locals>._async_get_statusf  s    ,. !2 J J !
#+#!
 	!
 
 	=4 ),,Xr:)//1 %'(	5
 -;,>,>h-

 	+,>?@TUM 	T !"??
	
 /$!  499;)%-0K?!Q-9qq
  &3'6':':;K'L'RPR!0!< $%/
4 W
> )$ 		s5   !D4DAD43D >BD4D1.D40D11D4c                     > TR                   " 5       n TR                  " U 5         U R                  T" 5       5      U R                  5         $ ! U R                  5         f = fN)new_event_loopset_event_looprun_until_completeclose)new_loopr  rJ   s    r7   run_in_thread2_handle_async_invoke_status.<locals>.run_in_thread  sK    ))+x(	../@/BCNNHNNs   A A)rJ   $litellm.llms.bedrock.embed.embeddingr   concurrent.futuresfuturesThreadPoolExecutorsubmitr  )r   r   rn   r)   
concurrentr  executorfuturer   r  rJ   s   ````    @@@r7   r   r   T  s[     EP Ph  
			.	.	0H/}} 
1	0	0s   !A,,
A:)r   )r?   NNNN)r?   NNN)r?   N)NNr?   NNN)NNr?   NN)Nr?   NNNr  )Q__doc__rJ   rM   r   	functoolsr   typingr   r   r   r   r   r	   r
   r2   openai.types.batchr   r   litellm._loggingr   *litellm.litellm_core_utils.litellm_loggingr   r   &litellm.llms.anthropic.batches.handlerr   "litellm.llms.azure.batches.handlerr   $litellm.llms.bedrock.batches.handlerr   &litellm.llms.custom_httpx.http_handlerr   r   *litellm.llms.custom_httpx.llm_http_handlerr   litellm.llms.openai.openair   &litellm.llms.vertex_ai.batches.handlerr   litellm.secret_managers.mainr   r   r   r   r   r   litellm.types.routerr   r   r   r   r   r   r    litellm.utilsr!   r"   r#   r$   r%   r   r   r   r   r   r   r5   r8   rI   rL   r   r3   r   boolr   r   r  r   r   r   r   r   r   r9   r7   <module>r0     s  
   	  G G G  1  + S J > F P I 7 J 7  6   +, (* 4RH 46 *,  #	()(cN( ( 	(
 (V  	)-.2+/590u~0QR0 0 !@	0 tCH~&0 DcN+0 c3h(0 #4S>20 0 0f  	)-.2+/59Ou~OQRO O !@	O tCH~&O DcN+O c3h(O #4S>2O <3\#9::;O Od 
 	)-.2+/(( M(
 tCH~&( DcN+( c3h(( ( (h 	!%QQ)Q 5%--'(Q 	Q
 2Q Q !MQ #Qh 
 	)-.2+/NN MN
 tCH~&N DcN+N c3h(N <3\#9::;N Nb 8@)-.2+/'C='C=' 6' tCH~&	'
 DcN+' c3h(' 'T 8@.2+/OC=OC=O 6O DcN+	O
 c3h(O Oh  CK)-.2+/++C=+ !!?@+ tCH~&	+
 DcN++ c3h(+ +`  OW)-.2+/aaC=a w'EFKLa tCH~&	a
 DcN+a c3h(a <3\#9::;aJ 6:rr$'rrr9   