
    i                    r   d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ d dlZd dlmZ d dlZd dlZd dlZd dl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)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJ d dlKmLZLmMZMmNZNmOZO d dlPmQZQmRZRmSZSmTZTmUZU d d lVmWZWmXZXmYZYmZZZ d d!l[m\Z\ d d"l]m^Z^ d d#l_m`Z`maZambZb d d$lcmdZdmeZemfZfmgZgmhZhmiZimjZj d d%lkmlZl d d&lmmnZn d d'lompZp d d(lmqZqmrZrmsZsmtZtmuZu d d)lvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z} d d*l~mZmZmZmZ d d+lmZ d d,lmZmZmZmZ d-d.lmZ er)d d/lmZ d d0lmZ d d1lmZ d d2lmZmZmZmZmZmZmZmZ eZneZ G d3 d4      Zy)5    N)TYPE_CHECKINGAnyAsyncIterator	CoroutineDictListLiteralOptionalTupleUnioncast)FileDeletedverbose_logger)!update_headers_with_filtered_beta))REALTIME_WEBSOCKET_MAX_MESSAGE_SIZE_BYTES)RealTimeStreaming)BaseAnthropicMessagesConfig)BaseAudioTranscriptionConfig)MockResponseIterator)BaseBatchesConfig)
BaseConfig)BaseContainerConfig)BaseEmbeddingConfig)BaseEvalsAPIConfig)BaseFilesConfig)$BaseGoogleGenAIGenerateContentConfig)BaseImageEditConfig)BaseImageGenerationConfig)BaseOCRConfigOCRResponse)BaseRealtimeConfig)BaseRerankConfig)BaseResponsesAPIConfig)BaseSearchConfigSearchResponse)BaseSkillsAPIConfig)BaseTextToSpeechConfig)BaseVectorStoreConfig)BaseVectorStoreFilesConfig)BaseVideoConfig)AsyncHTTPHandlerHTTPHandler_get_httpx_clientget_async_httpx_client)!BaseResponsesAPIStreamingIterator!MockResponsesAPIStreamingIteratorResponsesAPIStreamingIteratorResponsesWebSocketStreaming!SyncResponsesAPIStreamingIterator)ContainerFileListResponseContainerListResponseContainerObjectDeleteContainerResult)TwoStepFileUploadConfigAnthropicMessagesResponse)DeleteSkillResponseListSkillsResponseSkill)CreateBatchRequestCreateFileRequestFileContentRequestHttpxBinaryResponseContentOpenAIFileObjectResponseInputParamResponsesAPIResponse)RerankResponse)DeleteResponseResult)GenericLiteLLMParams)	CallTypesEmbeddingResponse	FileTypesLiteLLMBatchTranscriptionResponse)VectorStoreFileContentResponseVectorStoreFileCreateRequestVectorStoreFileDeleteResponseVectorStoreFileListQueryParamsVectorStoreFileListResponseVectorStoreFileObjectVectorStoreFileUpdateRequest)&VectorStoreCreateOptionalRequestParamsVectorStoreCreateResponse&VectorStoreSearchOptionalRequestParamsVectorStoreSearchResponse)VideoObject)CustomStreamWrapperImageResponseModelResponseProviderConfigManager   )get_shared_realtime_ssl_context)ClientSession)Logging)BasePassthroughConfig)CancelEvalResponseCancelRunResponseDeleteEvalResponseEvalListEvalsResponseListRunsResponseRunRunDeleteResponsec            )       W   e Zd Z	 	 d5dedededededeee	j                  f   d	ed
ededee   de	j                  fdZ	 	 d5dedededededeee	j                  f   d	ed
ededee   de	j                  fdZ	 	 	 	 	 d6dedededededeee	j                  f   deded
ededed	ededee   dee   dedee   ded   f$dZ	 	 	 	 	 	 	 d7dededee   deded
ededeee	j                  f   d	ededee   dedee   deeeef      deeeef      dee   ded   f"dZ	 	 	 d8dededededee   d edededed	edeee	j                  f   dedee   dedeeef   fd!Z	 	 	 	 d9dededededededeee	j                  f   d
eded	edededee   dee   dee   fd"Z	 	 	 	 d9dededededededed
edeee	j                  f   d	edededee   dee   dee   deee	j8                  f   f d#Zdedededefd$Z	 	 	 	 d:ded%ededed
edee   ded	ededee   deeeef      d&ee   deeeef      defd'Z 	 	 	 d;d(ededededede!ded
eded	edee   deeee	j                  f      deeeef      defd)Z"	 	 	 	 	 d<deded
ede#d*edeeee	j                  f      de$d+edeeeef      dee   dee   deeeef      de$fd,Z%	 	 	 d;ded(edede#d
ede$dededee   deeee	j                  f      deeeef      de$fd-Z&ded.e'ded	ed
edee   dee   deeeef      de(deeeeeedf   ee   f   fd/Z)de(ded0e	j                  de*d
ededee   de*fd1Z+	 	 	 	 	 d=ded.e'ded	ede*ded2e,d
edee   dee   dedeeeef      d3edeeeef      dee(   ded   dee*e-eee*f   f   f"d4Z.	 	 	 	 d>ded.e'ded	ede*ded2e,d
edee   dee   dedeeeef      deeeef      dee(   ded   de*f d5Z/ded6eeef   ded
edee   dee   deeeef      de0d	edeeeef   eeeef   df   fd7Z1ded6eeef   ded
edee   dee   deeeef      de0d	edeeeef   eeeef   df   fd8Z2de0ded0e	j                  d
ede3f
d9Z4	 	 	 	 	 d=ded6eeef   dedeee	j                  f   d
edee   dee   dedeeeef      d:edeeeef      dee0   d	ee   dee3e-eee3f   f   fd;Z5	 	 	 	 d>ded6eeef   dedeee	j                  f   d
edee   dee   dedeeeef      deeeef      dee0   d	ee   de3fd<Z6	 	 	 	 d?d=eee7e   f   dedeee	j                  f   d
edee   dee   dedeeeef      d>edeeeef      dee8   dee9e-eee9f   f   fd?Z:	 	 	 d;d=eee7e   f   dedeee	j                  f   d
edee   dee   dedeeeef      deeeef      dee8   de9fd@Z;	 	 	 	 	 	 d@dede7e   dAe<dBeded	e=d
edee   dCeeeef      dee   dee   dee   dDeeeef      dee>e?f   fdEZ@	 	 	 	 	 dAdede7e   dAe<dBeded+ed	e=d
edeeeef      dee   dee   dee   dDeeeef      dee>e-eeee>e?f   f   f   fdFZA	 	 	 	 	 	 	 	 dBded%eeeBf   dGeCdHeded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+ededJeeeef      ded   deeDeEe-eeeeDeEf   f   f   f dKZF	 	 	 	 	 	 	 dCded%eeeBf   dGeCdHeded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      dedJeeeef      ded   deeDeEf   fdLZG	 	 	 	 	 	 d@dMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deHfdNZI	 	 	 	 	 	 d@dMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deeHe-eeeHf   f   fdOZJ	 	 	 	 	 	 	 dDdMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deeDe-eeeDf   f   fdPZK	 	 	 	 	 	 dEdMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      ded   deDfdQZL	 	 	 	 	 	 	 	 	 	 	 dFdMedGeCd	e=d
edee   dRee   dSee   dTee7e      dUe,dVeMdW   dCeeeef      deeee	j                  f      deeeef      d+eded   deee-eeef   f   f dXZN	 	 	 	 	 	 	 	 	 	 dGdMedGeCd	e=d
edee   dRee   dSee   dTee7e      dUe,dVeMdW   dCeeeef      deeee	j                  f      deeeef      ded   defdYZO	 dHd0e	j                  dZed[edePee   ee   f   fd\ZQ	 	 	 dId]eRd	edeSdedee   dee   d
ed+edeeeef      deeee	j                  f      deeTe-eeeTf   f   fd^ZU	 	 dJd_eeeed`f   d	edeSdeded
edeeeef      deeee	j                  f      fdaZV	 	 	 	 d9dbdcd	eddddedee   dee   d
ded+edeedf      deeee	j                  f      dee   dedge-eedgf   f   fdhZW	 	 	 	 d9died	eddddedee   dee   d
ded+edeedf      deeee	j                  f      dee   dedge-eedgf   f   fdjZX	 	 	 	 d>d_eeeef   d	eddddeded
dedeedf      deeee	j                  f      dbedc   dee   fdkZY	 	 	 	 d>d_eeeef   d	eddddedee   d
dedeedf      deeee	j                  f      diee   dee   fdlZZ	 	 	 	 	 	 d@dMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deeDe-eeeDf   f   fdmZ[	 	 	 	 	 	 d@dMedGeCd	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deDfdnZ\	 	 	 	 	 	 d@ded%eedof   dGeCdHed	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deeDe-eeeDf   f   fdpZ]	 	 	 	 	 	 d@ded%eedof   dGeCdHed	e=d
edee   dCeeeef      dIeeeef      deeee	j                  f      deeeef      d+eded   deDfdqZ^	 	 	 dIdredeSd	eded
ed+edeeeef      deeee	j                  f      deeTe-eeeTf   f   fdsZ_	 	 dJdredeSd	eded
edeeeef      deeee	j                  f      deTfdtZ`	 	 	 dIdredeSd	eded
ed+edeeeef      deeee	j                  f      dedue-eeduf   f   fdvZa	 	 dJdredeSd	eded
edeeeef      deeee	j                  f      ddufdwZb	 	 	 dIdxee   deSd	eded
ed+edeeeef      deeee	j                  f      dee7eT   e-eee7eT   f   f   fdyZc	 	 dJdxee   deSd	eded
edeeeef      deeee	j                  f      de7eT   fdzZd	 	 	 dId{d|deSd	eded
ed+edeeeef      deeee	j                  f      ded}e-eed}f   f   fd~Ze	 	 dJd{d|deSd	eded
edeeeef      deeee	j                  f      dd}fdZfdedededeeef   fdZgd0edede7e   dAddBed
dedededDedee   fdZhd0edede7e   ded
dedededDedee   fdZidejdeee#eCekelemeneoe<epe0eqe8eresddetf   fdZu	 	 	 	 	 	 dEdeded
edevdedee   dee   dee   dee   dee   dJeeeef      fdZw	 	 	 	 	 dKdeded(eeef   d
edeee	j                  f   dee   dee   dCeeeef      deeeef      dee   de	j                  fdZx	 	 	 	 	 	 dEdededed
edeee	j                  f   dee   dee   deeeef      dCeeeef      deeeef      dee   de	j                  fdZy	 	 	 	 	 	 dEdeded
edGeeC   dee   dee   dee   dee   dJeeeef      dee   dDefdZz	 	 	 	 	 	 dLdededee   dekdeded	e=d
edeee	j                  f   dCeeeef      dIeeeef      deeeef      d+ededJeeeef      dee{e-eee{f   f   f dZ|	 	 	 	 	 dAdede'dee   dekdeded	e=d
edeee	j                  f   dCeeeef      dIeeeef      deeeef      dedJeeeef      de{fdZ}	 	 	 	 	 	 	 dMdededeldeded	ed
edeee	j                  f   dCeeeef      dIeeeef      deeeef      d+ededJeeeef      dee   dee{e-eee{f   f   f dZ~	 	 	 	 	 	 dNdededeldeded	ed
edeee	j                  f   dCeeeef      dIeeeef      deeeef      dedJeeeef      dee   de{fdZ	 	 	 	 	 	 	 dMdededeqdeded	e=d
edeee	j                  f   dCeeeef      dIeeeef      deeeef      d+ededJeeeef      dee   deee-eeef   f   f dZ	 	 	 	 	 	 dNdededddeded	e=d
edeee	j                  f   dCeeeef      dIeeeef      deeeef      dedJeeeef      dee   defdZ	 	 	 	 	 dAdedeqded	e=d
edeee	j                  f   dCeeeef      dee   deeeef      d+edee   deee-eeef   f   fdZ	 	 	 	 d>dedeqded	e=d
edeee	j                  f   dCeeeef      dee   deeeef      dee   defdZ	 	 	 	 	 	 dNdededeqdedCeeeef      dIeeeef      dee   d+edee   fdZ	 	 	 	 	 dKdededeqdedCeeeef      dIeeeef      dee   dee   fdZ	 	 	 	 	 d6dededeqdedCeeeef      dee   d+edee   fdZ	 	 	 	 d>dededeqdedCeeeef      dee   dee   fdZ	 	 	 	 	 d6dedeqdedCeeeef      dee   d+edee   fdZ	 	 	 	 d>dedeqdedCeeeef      dee   dee   fdZ	 	 	 	 	 	 dNdededeqdedCeeeef      dIeeeef      dee   d+edee   fdZ	 	 	 	 	 dKdededeqdedCeeeef      dIeeeef      dee   dee   fdZ	 	 	 	 	 	 dNdedededeqdedCeeeef      dIeeeef      dee   d+edee   fdZ	 	 	 	 	 dKdedededeqdedCeeeef      dIeeeef      dee   dee   fdZ	 	 	 	 	 	 dNdRee   dUee,   dVee   dedCeeeef      deeeef      dee   d+edee   fdZ	 	 	 	 	 dKdRee   dUee,   dVee   deqdedCeeeef      deeeef      dee   dee   fdZ	 	 	 	 d>dedeqdedCeeeef      dee   dee   fdZ	 	 	 	 	 	 dNdedeqdedCeeeef      dIeeeef      dee   d+edee   fdZ	 	 	 	 	 dKdedeqdedCeeeef      dIeeeef      dee   dee   fdZ	 	 	 	 dOdededdd	e=d
dedCeeeef      deee	j                  f   d+edeeeef      dede-eedf   f   fdZ	 	 	 dPdededdd	e=d
dedCeeeef      deee	j                  f   deeeef      ddfdÄZ	 	 	 	 	 	 	 	 dQddd	e=d
dedRee   dUee,   dVee   dCeeeef      deeeef      deee	j                  f   d+edeeeef      dede-eedf   f   fdńZ	 	 	 	 	 	 	 dRddd	e=d
dedRee   dUee,   dVee   dCeeeef      deeeef      deee	j                  f   deeeef      ddfdƄZ	 	 	 	 	 dSdeddd	e=d
dedCeeeef      deeeef      deee	j                  f   d+edeeeef      dede-eedf   f   fdȄZ	 	 	 	 dTdeddd	e=d
dedCeeeef      deeeef      deee	j                  f   deeeef      ddfdɄZ	 	 	 	 	 dSdeddd	e=d
dedCeeeef      deeeef      deee	j                  f   d+edeeeef      dede-eedf   f   fd˄Z	 	 	 	 dTdeddd	e=d
dedCeeeef      deeeef      deee	j                  f   deeeef      ddfd̄Z	 	 	 	 	 	 	 	 dQdeddd	e=d
dedRee   dUee,   dVee   dCeeeef      deeeef      deee	j                  f   d+edeeeef      dede-eedf   f   fd΄Z	 	 	 	 	 	 	 dRdeddd	e=d
dedRee   dUee,   dVee   dCeeeef      deeeef      deee	j                  f   deeeef      ddfdτZ	 	 	 	 dOdedreddd	e=d
dedCeeeef      deee	j                  f   d+edeeeef      deee-eeef   f   fdЄZ	 	 	 dPdedreddd	e=d
dedCeeeef      deee	j                  f   deeeef      defdфZ	 	 	 	 	 dUded=eee7e   f   dedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edefdՄZ	 	 	 	 	 dUded=eee7e   f   dedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdքZ	 	 	 	 	 dUdedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edefd؄Z	 	 	 	 	 dUdedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdلZ	 	 	 	 d>dedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      defdڄZ	 	 	 	 	 dUdedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdۄZ	 	 	 	 d>dRee   dSee   dUee,   dVee   demded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      fd܄Z	 	 	 	 	 dUdRee   dSee   dUee,   dVee   demded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+efd݄Z	 	 	 	 d>dededemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      defd߄Z	 	 	 	 	 dUdededemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZ	 	 	 	 d>dedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      fdZ	 	 	 	 	 dUdedemded	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+efdZddddddededended	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      defdZdddddddededended	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZddddddededended	e=d
edCeeeef      deeeef      deeee	j                  f      deeeef      defdZdddddddededended	e=d
edCeeeef      deeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZdddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      defdZddddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZdddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      defdZddddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZddddddedrededended	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      defdZdddddddedrededended	e=d
edCeeeef      dIeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZdddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      defdZddddddedredended	e=d
edCeeeef      deeee	j                  f      deeeef      d+edeee-eeef   f   fdZ	 	 	 	 	 	 	 	 dVdededeodededed	e=d
edCeeeef      dIeeeef      deeee	j                  f      d+edeeeef      dedJeeeef      dee   def"dZ	 	 	 	 	 	 	 dCdededeodededed	e=d
edCeeeef      dIeeeef      deeee	j                  f      dee   dedJeeeef      dee   def dZ	 	 	 dWded%ed ee   derdeded	ed
edeee	j                  f   dCeeeef      deeeef      d+eded}e-eed}f   f   fdZ	 	 dJded%ed ee   derdeded	ed
edeee	j                  f   dCeeeef      deeeef      dd}fdZƐdededePee   ee   f   fdZ	 	 	 	 	 dAdededd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded
e-eed
f   f   fdZ	 	 	 	 d>dededd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd
fdZ	 	 	 	 	 dAdededd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>dededd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfdZ	 	 	 	 	 dAdedd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded
e-eed
f   f   fdZ	 	 	 	 d>dedd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd
fdZ	 	 	 	 	 dAdedd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>dedd	ded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfdZ	 	 	 	 	 dAdededdded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>dededdded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfdZ	 	 	 	 	 dAdededdded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>dededdded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfdZ	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfdZ	 	 	 	 	 dAdededdded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   dede-eedf   f   fdZ	 	 	 	 d>dededdded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   ddfd Z	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded!e-eed!f   f   fd"Z	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd!fd#Z	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded$e-eed$f   f   fd%Z	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd$fd&Z	 	 	 	 	 dAdededdded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded'e-eed'f   f   fd(Z	 	 	 	 d>dededdded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd'fd)Z	 	 	 	 	 dAdededdded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded*e-eed*f   f   fd+Z	 	 	 	 d>dededdded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd*fd,Z	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded'e-eed'f   f   fd-Z	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd'fd.Z	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded/e-eed/f   f   fd0Z	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd/fd1Z	 	 	 	 	 dAdeddded	e=d
edCeeeef      deeee	j                  f      deeeef      d+eded   ded2e-eed2f   f   fd3Z	 	 	 	 d>deddded	e=d
edCeeeef      deeee	j                  f      deeeef      ded   dd2fd4Zy(X  BaseLLMHTTPHandlerFNasync_httpx_clientprovider_configapi_baseheadersdatatimeoutlitellm_paramslogging_objstreamsigned_json_bodyreturnc           	        K   |j                   }d}t        t        |d            D ]:  }	 |j                  |||
|
nt	        j
                  |      ||	|       d{   } n ||j                  ddi 	      |S 7 # t        j                  $ rO}|dz   |k(  }|j                  ||      }|r|s|j                  ||      }Y d}~| j                  ||      d}~wt        $ r}| j                  ||      d}~ww xY ww)
zbCommon implementation across stream + non-stream calls. Meant to ensure consistent error-handling.Nr^   urlrp   rq   rr   ru   rt   ers   r|   request_datar|   rn   No response from the API  error_messagestatus_coderp   'max_retry_on_unprocessable_entity_errorrangemaxpostjsondumpshttpxHTTPStatusError9should_retry_llm_api_inside_llm_translation_on_http_error/transform_request_on_unprocessable_entity_error_handle_error	Exceptionget_error_class)selfrm   rn   ro   rp   rq   rr   rs   rt   ru   rv   r   responseir|   hit_max_retryshould_retrys                    {/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.py_make_common_async_callz*BaseLLMHTTPHandler._make_common_async_call   s\     CC 	0 .2sBAFGAO!3!8!8 # ,7 )!ZZ-#! + "9 " 8 = H@ !118 2   K (( S !A)P P.hh  i    'WWd X  
 ,,q/,RR O((1o(NNOsR   'D1A=A;A= D;A==C>2CDCC>&C99C>>Dsync_httpx_clientc           	         |j                   }d }t        t        |d            D ]2  }	 |j                  |||
|
nt	        j
                  |      ||	|      } n ||j                  ddi       |S # t        j                  $ rO}|dz   |k(  }|j                  ||      }|r|s|j                  ||      }Y d }~| j                  ||      d }~wt        $ r}| j                  ||      d }~ww xY w)	Nr^   ry   r{   r}   r   r   r   r   r   )r   r   rn   ro   rp   rq   rr   rs   rt   ru   rv   r   r   r   r|   r   r   s                    r   _make_common_sync_callz)BaseLLMHTTPHandler._make_common_sync_call   sN    CC 	0 .2sBAFGAO,11 # ,7 )!ZZ-#! + 2 8 = H@ !118 2   3 (( S !A)P P.hh  i    'WWd X  
 ,,q/,RR O((1o(NNOs)   .A11C22C;CC2C--C2custom_llm_providermodelmodel_responsemessagesoptional_paramsencodingapi_keyclient	json_modeshared_sessionr`   c                   K   |Yt        j                  d|rt        |      nd         t        t	        j
                  |      d|j                  dd       i|      }n|}| j                  |||||||d|	|
       d {   }|j                  ||||	|||
||||      }| j                  |||
||	d||       d {   }||S |S 7 G7 w)Nz*Creating HTTP client with shared_session: 
ssl_verifyllm_providerparamsr   F)
rm   rn   ro   rp   rq   rr   rs   ru   rt   rv   r   raw_responser   rt   r   r~   r   r   rs   r   r   )r   r   r   r   rt   ru   r   kwargs)
r   debugidr/   litellmLlmProvidersgetr   transform_response#_call_agentic_chat_completion_hooks)r   r   rn   ro   rp   rq   rr   r   r   rt   r   r   rs   r   r   r   r   rv   r   rm   r   initial_responsefinal_responses                          r   async_completionz#BaseLLMHTTPHandler.async_completion  s2    * >  <SaR=Ogk<lm "8$112EF$n&8&8t&LM-" "(551+)#- 6 
 
 +==!)#+) > 
  $GG%+# 3!  H 	 
 	
 "0!;~QAQQM
6	
s$   A<C
>C?<C
;C<C
C
acompletionfake_streamc                 ^   |j                  dd      }|j                  dd       }|xs* t        j                  |t        j                  |            }|t        d| d|       |xs( |j                  dd      xs |j                  |||      }|j                  ||xs i |||||
	      }|j                  ||||||

      }|j                  ||||
|      }|i ||}|j                  ||||||||      \  }}|j                  |||||d       |
j                  dd      rd|j                  d<   |du r|du rH| j                  |||      }| j                  |||||||	||||t!        |t"              r|nd |
|||      S | j%                  ||||||	|||||||
||t!        |t"              r|nd |||      S |du r| j                  |||      }|j&                  du r|j)                  ||||||||||
      S | j+                  ||||||||||	||t!        |t,              r|nd |
||      \  }}t/        ||||      S |t!        |t,              st1        d|
j                  dd       i      }n|}| j3                  |||||||	|
|	      }|j5                  |||||||||
||      S )Nr   F
extra_bodyr   providerz%Provider config not found for model:  and provider: r   )r   r   ru   )r   rp   r   r   r   ro   rs   )ro   r   r   r   ru   rs   )r   r   r   rs   rp   rp   r   r~   ro   r   ru   r   r   complete_input_dictro   rp   inputr   additional_args(_websearch_interception_converted_streamT'websearch_interception_converted_stream)rq   rn   r   )r   r   ro   rp   r   rn   rr   rt   rq   r   r   rs   r   r   rv   )r   rn   ro   rp   rq   rr   r   r   rt   r   r   r   rs   r   r   r   rv   r   )
r   r   rt   ro   rp   rq   rv   r   r   r   )rn   ro   rp   rq   rv   original_datar   r   rt   rr   r   r   rs   r   r   completion_streamr   r   rt   r   r   )	r   rn   ro   rp   rq   rv   rr   rs   rt   r   )popr]   get_provider_chat_configr   r   
ValueErrorshould_fake_streamvalidate_environmentget_complete_urltransform_requestsign_requestpre_callr   model_call_details!_add_stream_param_to_request_bodyacompletion_stream_function
isinstancer,   r   has_custom_stream_wrapperget_sync_custom_stream_wrappermake_sync_callr-   rZ   r.   r   r   )r   r   r   ro   r   r   r   rt   r   rr   rs   r   ru   r   r   rp   r   rn   r   r   r   rq   rv   r   r   r   s                             r   
completionzBaseLLMHTTPHandler.completion[  sZ   * *--k5A	%4%8%8t%L
  $==g&:&:;N&O 	 "7woNaMbc 
  ""=%8111DV 2  	 "66Mr+) 7 
 #33+) 4 
 00+) 1 
 !)d)j)D$3$@$@+# %A 	%
!! 	'+$" 	 	
 H%P  **9 $~==$3 + > 
 77%%#(;$3# + + "-*VEU2V !#1'$3%5' 8  . ,,(;$3%###1 +#%$3#1% "-*VEU2V !'%5#1- -  2 T>99 /' : D
 88D@&EE(; +%#%5%!' F   *.)<)< /!!1"!'' )j.M -# /' *= *&w* '"3$7'	  >FK!@ 1$n&8&8t&LM! !'../+-)# / 

 11!)#+) 2 
 	
    r   c                    |t        |t              st        d|j                  dd       i      }n|}d}|du rd}| j	                  ||||||||||	
      }|du r;|j                  ||t        j                         |	|||
|d |
      }t        ||      }n"|j                  |j                         d|      }|	j                  |dd	d
|i       |t        |j                        fS )Nr   TF)
r   rn   ro   rp   rq   rv   rr   rs   ru   rt   
r   r   r   rt   r~   r   r   rs   r   r   r   r   )streaming_responsesync_streamr    first stream response receivedr   r   r   original_responser   )r   r-   r.   r   r   r   r   r\   r   get_model_response_iterator
iter_lines	post_calldictrp   )r   rn   ro   rp   rq   rv   r   r   r   rt   r   rs   rr   r   r   r   r   ru   r   r   r   s                        r   r   z!BaseLLMHTTPHandler.make_sync_callH  sC   $ >FK!@ 1 ."4"4\4"H! !'$F../+-)# / 
 $,;,N,N%&446'*! /-# -O -N &:-& !0 K K#+#6#6#8 # !L ! 	>2D9	 	 	
 !$x'7'7"888r   c                    K   |j                   du r#|j                  ||||||	||||
       d {   S | j                  ||||||	||||||
|||       d {   \  }}t        ||||      }|S 7 @7 w)NT)
r   r   rt   ro   rp   rq   r   r   r   rv   )r   r   rn   ro   rp   rq   r   rt   rr   r   r   rs   r   r   rv   r   )r   get_async_custom_stream_wrappermake_async_call_stream_helperrZ   )r   r   r   ro   r   rp   rn   rr   rt   rq   rs   r   r   r   r   rv   r   _response_headersstreamwrappers                      r   r   z.BaseLLMHTTPHandler.acompletion_stream_function  s     $ 44<(HH$7'!!#!1 I    6:5W5W 3+##)+- 6X 6
 0
,," ,/ 3#	
 I0
s!   -A4A0'A4A2A42A4c                   K   |3t        t        j                  |      d|
j                  dd      i      }n|}d}|du rd}| j	                  |||||||	|
||
       d{   }|du r;|j                  ||t        j                         |||||
d|
      }t        ||      }n!|j                  |j                         d	      }|j                  |d
dd|i       ||j                  fS 7 w)zm
        Helper function for making an async call with stream.

        Handles fake stream as well.
        Nr   r   r   TF)
rm   rn   ro   rp   rq   rv   rr   rs   ru   rt   r   r   )r   r   r   r   r   r   )r/   r   r   r   r   r   r\   r   r   aiter_linesr   rp   )r   r   r   rn   ro   rp   rq   r   rt   rr   rs   r   r   r   r   rv   rm   ru   r   r   r   s                        r   r   z0BaseLLMHTTPHandler.make_async_call_stream_helper  sM    . >!7$112EF$n&8&8t&LM"
 "($F551+-)# 6 
 
 $,;,N,N%&446'!! /-# -O -N &:-& !0 K K#+#7#7#9u !L ! 	>2D9	 	 	
 !("2"222U
s   AC, C*!B
C,c                 |    |du r$|j                         }|j                  dd       |S |j                  du rd|d<   |S )z
        Some providers like Bedrock invoke do not support the stream parameter in the request body, we only pass `stream` in the request body the provider supports it.
        Tru   N)copyr   %supports_stream_param_in_request_body)r   rq   rn   r   new_datas        r   r   z4BaseLLMHTTPHandler._add_stream_param_to_request_body  sF     $yy{HLL4(O@@DH!DNr   r   
aembeddingc                    t        j                  |t        j                  |            }|t	        d| d      |j                  |
|xs i |g ||      }|j                  ||
|||      }|j                  ||||      }|j                  ||
|||d       |d	u r| j                  |||||||	||
||||
      S |t        |t              st        d|j                  dd       i      }n|}	 |j                  ||t        j                   |      |      }|j'                  |||	||
|||      S # t"        $ r}| j%                  ||      d }~ww xY w)Nr   	Provider z does not support embeddingr   rp   r   r   r   rs   ro   r   r   r   rs   )r   r   r   rp   r   r   T)r~   ro   rp   r   r   rn   r   rt   r   rr   r   r   rs   r   r   rz   rp   rq   rr   r   r   r   r   rt   r   r~   r   rs   )r]   get_provider_embedding_configr   r   r   r   r   transform_embedding_requestr   r   r   r-   r.   r   r   r   r   r   r   transform_embedding_response)r   r   r   rr   r   rt   ro   r   rs   r   r   r   r   rp   rn   rq   r   r   r|   s                      r   	embeddingzBaseLLMHTTPHandler.embedding/  s     0MM'"6"67J"K
 "/00KL  "66Mr+) 7 
 #33+) 4 
 ::+	 ; 
 	'+$" 	 	
 ??!!$7 /-' /- #    >FK!@ 1$n&8&8t&LM! !'	(--ZZ%	 . H ;;!)#+) < 	
 		
  	$$ / %  	s   0(D1 1	E:EEr~   c           
      R  K   |t        |t              s3t        t        j                  |      d|
j                  dd       i      }n|}	 |j                  ||||       d {   }|j                  |||||||	|
      S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   rz   rp   r   rr   r   r   )
r   r,   r/   r   r   r   r   r   r   r   )r   r~   ro   rp   r   r   rn   r   rt   r   rs   r   rr   r   rm   r   r|   s                    r   r   zBaseLLMHTTPHandler.aembedding  s       >F4D!E!7$112EF$n&8&8t&LM"
 "(	K/44!	 5  H ;;!)#%+) < 	
 		
  	K$$q/$JJ	Ks<   AB'B #B$B (B'B 	B$BB$$B'optional_rerank_params	_is_asyncc                    |j                  |
|	xs i ||      }	|j                  |||      }|j                  |||	      }|j                  |j	                  dd      |
|||	d       |du r| j                  ||||||||	|
||	      S |t        |t              st               }n|}	 |j                  ||	t        j                  |      |
      }|j                  |||||
|      S # t        $ r}| j                  ||      d }~ww xY w)N)r   rp   r   r   )ro   r   r   )r   r  rp   queryr   r   r   T)r   r~   r   rn   rt   r   ro   rp   r   rr   r   r   r   r   r   r   rt   r   r~   )r   r   transform_rerank_requestr   r   arerankr   r-   r.   r   r   r   r   r   transform_rerank_response)r   r   r   rt   rn   r  rr   r   r  rp   r   ro   r   rq   r   r   r|   s                    r   rerankzBaseLLMHTTPHandler.rerank  s     "66Mr2	 7 
 #332 4 
 77#9 8 
 	(,,Wb9'+$" 	 	
 <<!$7 /'-!     >FK!@ 1 3 &	(--ZZ%	 . H 88!)# 9 
 	
  	$$ / %  	s   *(C) )	D
2DD
c                 N  K   |t        |t              s t        t        j                  |            }n|}	 |j                  ||t        j                  |      |
       d {   }|j                  |||||	|      S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   r   r  )r   r,   r/   r   r   r   r   r   r   r   r  )r   r   r~   r   rn   rt   r   ro   rp   r   rr   r   rm   r   r|   s                  r   r
  zBaseLLMHTTPHandler.arerank  s      >F4D!E!7$112EF" "(	K/44ZZ-	 5  H 88!)#% 9 
 	
  	K$$q/$JJ	Ks:   5B%+B #A?$B (B%?B 	B"
BB""B%
audio_filec
                    ddl m}
 |	j                  ||xs i |g ||      }|	j                  |||||      }|	j	                  ||||      }t        ||
      s#t        d|	j                  j                   d      |j                  }|j                  }|j                  |j                  dd	      ||xs i ||d
       ||||fS )z
        Shared logic for preparing audio transcription requests.
        Returns: (headers, complete_url, data, files)
        r   )AudioTranscriptionRequestDatar   r   )r   r  r   rs   r   z* must return AudioTranscriptionRequestDatar  r   r   r   )8litellm.llms.base_llm.audio_transcription.transformationr  r   r   %transform_audio_transcription_requestr   r   	__class____name__rq   filesr   r   )r   r   r  r   rs   rt   r   ro   rp   rn   r  complete_urltransformed_resultrq   r  s                  r   $_prepare_audio_transcription_requestz7BaseLLMHTTPHandler._prepare_audio_transcription_requestF  s   "	
 "66Mr+) 7 
 '77+) 8 
 -RR!+)	 S 
 ,.KLO55>>??ij  "&&"(( 	!%%gr2'+zr(" 	 	
 dE11r   r   c                 &    |j                  |      S )z<Shared logic for transforming audio transcription responses.)r   )&transform_audio_transcription_response)r   rn   r   r   r   rt   r   r   s           r   '_transform_audio_transcription_responsez:BaseLLMHTTPHandler._transform_audio_transcription_response  s      EE! F 
 	
r   max_retriesatranscriptionc                    |t        d| d|       |du r | j                  |||||||||	|
|||||      S | j                  ||||||	|
||	      \  }}}}|t        |t              s
t               }	 |j                  |||||t        |t              r|nd |      }| j                  |||||||	      S # t        $ r}| j                  ||      d }~ww xY w)	N$No provider config found for model: r   T)r   r  r   rs   r   rr   r  rt   r   ro   r   r   rp   rn   r   	r   r  r   rs   rt   r   ro   rp   rn   rz   rp   rq   r  r   rr   r   rn   r   r   r   rt   r   r   )r   async_audio_transcriptionsr  r   r-   r.   r   r   r   r   r  )r   r   r  r   rs   r   rr   r  rt   r   ro   r   r   r  rp   rn   r   r  rq   r  r   r|   s                         r   audio_transcriptionsz'BaseLLMHTTPHandler.audio_transcriptions  sd   & "6ug_M`Lab  T!22% /--''!$7 /- 3  0 55!+)#+ 6 

	
 >FK!@&(F	K{{ !Mjt.DD$ # 	H ;;+)#+ < 
 	
  	K$$q/$JJ	Ks   4+B7 7	C CCc                   K   |t        d| d|       | j                  ||||||	|
||	      \  }}}}|t        |t              s4t	        t        j                  |      d|j                  dd       i|      }n|}	 |j                  |||||t        |t              r|nd |       d {   }| j                  |||||||	      S 7 # t        $ r}| j                  ||      d }~ww xY ww)	Nr   r   r!  r   r   r"  r   r#  )r   r  r   r,   r/   r   r   r   r   r   r   r   r  )r   r   r  r   rs   r   rr   r  rt   r   ro   r   r   rp   rn   r   r  rq   r  rm   r   r|   s                         r   r$  z-BaseLLMHTTPHandler.async_audio_transcriptions  sW    $ "6ug_M`Lab  55!+)#+ 6 

	
 >F4D!E!7$112EF$n&8&8t&LM-" "(	K/44 !Mjt.DD$ 5 	 	H ;;+)#+ < 
 	
	  	K$$q/$JJ	Ks<   A;C/>.C ,C	-C 1C/	C 	C,C''C,,C/documentc
                    ddl m}
 |j                  |||xs i ||	      }|j                  ||||	      }|j	                  ||||      }t        ||
      s#t        d|j                  j                   d      t        |j                  t              s!t        dt        |j                               |j                  }|j                  d	||||d
       |||dfS )zp
        Shared logic for preparing OCR requests.
        Returns: (headers, complete_url, data, files)
        r   OCRRequestDatar   ro   rp   r   rs   ro   r   r   rs   r   r'  r   rp   r    must return OCRRequestData(Expected dict data for OCR request, got OCR document processingr   r   N)(litellm.llms.base_llm.ocr.transformationr*  r   r   transform_ocr_requestr   r   r  r  rq   r   typer   r   r   r'  r   rt   r   ro   rp   rn   rs   r*  r  r  rq   s                 r   _prepare_ocr_requestz'BaseLLMHTTPHandler._prepare_ocr_request=  s*     	L!66Mr) 7 
 '77+)	 8 
 -BB+	 C 
 ,n=O55>>??Z[ 
 ,1148:4@R@W@W;X:YZ  "&& 	+'+(" 	 	
 dD00r   c
                   K   ddl m}
 |j                  |||xs i ||	      }|j                  ||||	      }|j	                  ||||       d{   }t        ||
      s#t        d|j                  j                   d      t        |j                  t              s!t        d	t        |j                               |j                  }|j                  d
||||d       |||dfS 7 w)z
        Async version of _prepare_ocr_request for providers that need async transforms.
        Returns: (headers, complete_url, data, files)
        r   r)  r+  r,  r-  Nr   r.  r/  r0  r   r   )r1  r*  r   r   async_transform_ocr_requestr   r   r  r  rq   r   r3  r   r4  s                 r   _async_prepare_ocr_requestz-BaseLLMHTTPHandler._async_prepare_ocr_request  s9      	L!66Mr) 7 
 '77+)	 8 
 $3#N#N+	 $O $
 
 ,n=O55>>??Z[ 
 ,1148:4@R@W@W;X:YZ  "&& 	+'+(" 	 	
 dD00A
s   AC+C)BC+c                 *    |j                  |||      S )z,Shared logic for transforming OCR responses.r   r   rt   )transform_ocr_response)r   rn   r   r   rt   s        r   _transform_ocr_responsez*BaseLLMHTTPHandler._transform_ocr_response  s%     55!# 6 
 	
r   aocrc                    |t        d| d|       |i }|
du r| j                  |||||||||	|||      S | j                  |||||||||	      \  }}}}|	t        |	t              s
t               }		 |	j                  ||||      }| j                  ||||	      S # t        $ r}| j                  ||      d}~ww xY w)
z#
        Sync OCR handler.
        Nr   r   T)r   r'  r   rr   rt   r   ro   r   r   rp   rn   rs   	r   r'  r   rt   r   ro   rp   rn   rs   r  r   )rn   r   r   rt   )
r   	async_ocrr5  r   r-   r.   r   r   r   r<  )r   r   r'  r   rr   rt   r   ro   r   r   r=  rp   rn   rs   r  rq   r  r   r|   s                      r   ocrzBaseLLMHTTPHandler.ocr  s@   & "6ug_M`Lab  !N4<>>! /'!$7 /- "    .2-F-F+#+) .G 
.
*tU >FK!@&(F		K{{ 	 # H +++#	 , 
 	
  	K$$q/$JJ	Ks   5B 	C (B;;C c                   K   |t        d| d|       |i }| j                  |||||||
||	       d{   \  }
}}}|	t        |	t              s t	        t        j                  |            }n|	}	 |j                  ||
||       d{   }|j                  |||       d{   S 7 w7 "# t        $ r}| j                  ||      d}~ww xY w7 ,w)	z$
        Async OCR handler.
        Nr   r   r?  r  r  r   r:  )r   r8  r   r,   r/   r   r   r   r   r   async_transform_ocr_response)r   r   r'  r   rr   rt   r   ro   r   r   rp   rn   rs   r  rq   r  rm   r   r|   s                      r   r@  zBaseLLMHTTPHandler.async_ocr   s=    $ "6ug_M`Lab  !N 483R3R+#+) 4S 
4
 
.
*tU >F4D!E!7$112EF" "(		K/44 	 5  H %AA!# B 
 
 	
?
.
*  	K$$q/$JJ	K
sQ   5CB/=C6B3 B1B3 C*C+C1B3 3	C<CCCr  asearchc                 h   |t        d|       |	du r| j                  |||||||||
|
      S |j                  |||
xs i       }
|j                  ||      }|j	                  |||      }|j                  t        |t              r|n
t        |      ||||
d	       |t        |t              s
t               }|j                         }	 |d
k(  r|j                  ||
      }n|j                  ||
||      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY w)z&
        Sync Search handler.
        N'No provider config found for provider: T)
r  r   rr   rt   r   ro   r   r   rp   rn   r   ro   rp   r  r   ro   r   rq   r   r   GETrz   rp   r  r   r   rt   )r   async_searchr   transform_search_requestr   r   r   strr-   r.   get_http_methodr   r   r   r   transform_search_response)r   r  r   rr   rt   r   ro   r   r   rD  rp   rn   rq   r  http_methodr   r|   s                    r   searchzBaseLLMHTTPHandler.search`  s   " "9:M9NO  d?$$ /'!$7 / %   "66Mr 7 
 77+ 8 
 '77+ 8 
 	%eS1%s5z'+(" 	 	
 >FK!@&(F &557	Ke# "::$# &  ";;$##	 '  88!# 9 
 	
  	K$$q/$JJ	Ks   .D 	D1D,,D1c                   K   |
t        d|       |
j                  |||	xs i       }	|
j                  ||      }|
j                  |||      }|j	                  t        |t              r|n
t        |      ||||	d       |t        |t              sdd	lm	} t        |j                  
      }n|}|
j                         j                         }	 |dk(  r|j                  ||	       d{   }n|j                  ||	||       d{   }|
j%                  ||      S 7 57 # t         $ r}| j#                  ||
      d}~ww xY ww)z'
        Async Search handler.
        NrF  rG  rH  rI  r   r   r   )httpxSpecialProviderr  rJ  rK  r  r   rL  )r   r   rN  r   r   r   rO  r,   litellm.types.llms.custom_httprU  r/   SearchrP  upperr   r   r   r   rQ  )r   r  r   rr   rt   r   ro   r   r   rp   rn   rq   r  rU  rm   rR  r   r|   s                     r   rM  zBaseLLMHTTPHandler.async_search  s      "9:M9NO 
 "66Mr 7 
 77+ 8 
 '77+ 8 
 	%eS1%s5z'+(" 	 	
 >F4D!EK!7188" "( &557==?	Ke# "4!7!7$# "8 "  "4!8!8$##	 "9 "  88!# 9 
 	
  	K$$q/$JJ	KsN   CED* 0D&1D* D(D* E&D* (D* *	E3EEE"anthropic_messages_provider_config*anthropic_messages_optional_request_paramsextra_headersr   c                 v  K   ddl m} |t        |t              s%t	        t
        j                  j                        }n|}|xs i }t        t        t
        j                  j                  j                     |j                  dd             }|j                  ||      }|j                  dd       }|j                  dd       }i }|r|j                  |       |r|j                  |       |r|j                  |       |j!                  |xs i |||t#        |      |
|      \  }}t%        ||	      }|j'                  ||t#        |      d i d
||       |j                  d      }|r0ddlm}m} |D cg c]  } ||      s| }}|D ]  } |||      } |j/                  |||||      }||_        |j2                  j                  |       |j5                  ||
|t#        |      t#        |      |      }|j7                  |t#        |      |||
|d|      \  }}|j9                  dt;        j<                  |      dgd|t?        |      |d       	 |jA                  |||xs t;        j<                  |      |xs d|       d {   }|jC                          ||j2                  d<   |r|jI                  ||||      }!|!}"n|jK                  |||      }"| jM                  |"||||||xs d||	       d {   }#|#|#S |"S c c}w 7 # tD        $ r} | jG                  | |      d } ~ ww xY w7 5w)Nr   )ProviderSpecificHeaderUtilsr  provider_specific_header)r^  r   rp   r[  )rp   r   r   r   rs   r   ro   )rp   r   )preset_cache_keystream_response)r   r   r   rs   r   additional_drop_params)delete_nested_valueis_nested_path)r   r   rZ  rs   rp   )ro   r   r   r   rs   ru   Fr   user)rolecontentr   r   r   )rz   rp   rq   ru   rt   r   httpx_response)r   rg  request_bodylitellm_logging_objr:  )	r   r   r   rY  rZ  rt   ru   r   r   )'8litellm.litellm_core_utils.get_provider_specific_headersr]  r   r,   r/   r   r   	ANTHROPICr   r
   typesutilsProviderSpecificHeaderr   get_provider_specific_headersupdate'validate_anthropic_messages_environmentr   r   update_from_kwargs0litellm.litellm_core_utils.dot_notation_indexingrb  rc  $transform_anthropic_messages_requestru   r   r   r   r   r   r   rO  r   raise_for_statusr   r   %get_async_streaming_response_iterator%transform_anthropic_messages_response_call_agentic_completion_hooks)$r   r   r   rY  rZ  r   rs   rt   r   r[  r   ro   ru   r   r]  rm   r^  provider_specific_headersforwarded_headersextra_headers_from_kwargsmerged_headersrp   ra  rb  rc  pnested_pathspathrh  request_urlrv   r   r|   r   r   r   s$                                       r    async_anthropic_messages_handlerz3BaseLLMHTTPHandler.async_anthropic_messages_handler  s"     	
 >F4D!E!7$11;;" "( 2#'W]]((??@JJ148$
 
 (EE)A$7 F  	" #JJy$7$*JJ$E!!!"34$!!";<$!!";< /VV"(bF/ W 
	
 4&9
 	&& !KL$(#% =
 !4 	' 
	
 "0!3!34L!M!
 (>S'=!PQARA'=LS$=P>>: % :^^7a) _ 
 $&&--l; 9II   / J 	
 %G$S$S  &  %T %
!! 	"tzz,/GHI'3," 	 	
	/44%AL)A' 5  H %%' <D&&'78  B h h')$/	 !i !  1Agg%'  h    $BB%/Q7a#?U 3  C 
 
 

 "0!;~QAQQE Tj  	$$%G %  	2

s\   E5L97LL	CL94L LL #AL9L7L9L 	L4L//L44L9c                 z    |r/| j                  ||||t        |	t              r|	nd||||
|||      S t        d      )z9
        LLM HTTP Handler for Anthropic Messages
        N)r   r   rY  rZ  r   r   rs   rt   r   ro   ru   r   z<anthropic_messages_handler is not implemented for sync calls)r  r   r,   r   )r   r   r   rY  rZ  r   r  rs   rt   r   r   ro   ru   r   s                 r   anthropic_messages_handlerz-BaseLLMHTTPHandler.anthropic_messages_handler  s]    , 88!3U;e!+F4D!Ev4$7-'! 9   WXXr   responses_api_provider_config$response_api_optional_request_paramsr   litellm_metadatac                    |r1| j                  |||||||||	|
t        |t              r|nd|||      S |t        |t              st	        d|j                  dd      i      }n|}|j                  |j                  di       xs i ||      }|r|j                  |       |j                  dd      }|j                  |j                  t        |      	      }|j                  |||||
      }|	r|j                  |	       d|i}	 |j                  |       t        |      |d<   |j                  |d|||d       	 |r|du r| j                  |||      \  }}|j                  ||||
xs t!        |j                  dd            |      }|du r+t#        |||||||t$        j&                  j(                        S t+        |||||||t$        j&                  j(                        S |j                  ||||
xs t!        |j                  dd                  }	 |j/                  |||      S # t        $ r Y $w xY w# t        $ r}| j-                  ||      d}~ww xY w)a  
        Handles responses API requests.
        When _is_async=True, returns a coroutine instead of making the call directly.

        Keeps the pre-transform request context for streaming so post-call hooks/metadata
        (added for Responses API parity with chat) receive the original params instead of
        the provider-shaped body that caused them to be skipped before.
        N)r   r   r  r  r   rs   rt   r[  r   rr   r   r   r  r   r   r   r[  rp   r   rs   ru   Fro   rs   r   r   r  rs   rp   r   rs   r   r   r   Tru   rq   r   rr   r   rz   rp   r   rr   ru   r   r   rt   r  r  r   r~   	call_typer  r   r:  )async_response_api_handlerr   r,   r-   r.   r   r   rp  r   ro   r   transform_responses_api_requestr   r   _prepare_fake_stream_requestr   floatr1   rI   	responsesvaluer4   r   transform_response_api_response)r   r   r   r  r  r   rs   rt   r[  r   rr   r   r  r   r  r   r   rp   ru   ro   rq   request_contextr   r|   s                           r   response_api_handlerz'BaseLLMHTTPHandler.response_api_handler  s,   B 22.K5Y$7-'+%!+F4D!Ev4'!1- 3  " >FK!@ 1$n&8&8t&LM! !'/DD8<<_bQWUW) E 
 NN=) 699(EJ0AA#,,/ B 

 -LL1U) M 
 KK
#
 ,3E*:	""#GH
 -1,@() 	'+$" 	 	
5	$&#'#D#D%!$/ $E $LFD -11 ## UAEEiQRST! 2  $&<!)#$/6S)9,?%4"+"5"5";";	 	 9% +2O%5(;!0'1177	 	 -11 ## UAEEiQRST 2  -LL!# M 
 	
Q  		D  	$$ = %  	s7   H1  A>I ?*I *2I 1	H>=H>	I"
II"c                   K   |t        |t              sYt        j                  d|rt	        |      nd        t        t        j                  |      d|j                  dd      i|      }n|}|j                  |j                  di       xs i ||      }|r|j                  |       |j                  dd      }|j                  |j                  t        |      	      }|j                  |||||
      }|	r|j                  |	       d|i}	 |j                  |       t        |      |d<   |j!                  |d|||d       	 |r|du r| j#                  |||      \  }}|j%                  ||||
xs t'        |j                  dd            |       d{   }|du r+t)        |||||||t*        j,                  j.                        S t1        |||||||t*        j,                  j.                        S |j%                  ||||
xs t'        |j                  dd                   d{   }	 |j5                  |||      S # t        $ r Y 4w xY w7 7 +# t        $ r}| j3                  ||      d}~ww xY ww)n
        Async version of the responses API handler.
        Uses async HTTP client to make requests.
        Nz<Creating HTTP client for responses API with shared_session: r   r   r[  r  ru   Fr  r  r   rs   r   r   r   Tr  rr   r   r  r  r  r   r:  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   r  r   r   r  r   r  r1   rI   r  r  r2   r   r  )r   r   r   r  r  r   rs   rt   r[  r   rr   r   r   r  r   rm   rp   ru   ro   rq   r  r   r|   s                          r   r  z-BaseLLMHTTPHandler.async_response_api_handler  s+    * >F4D!E  NesrR`Oay}N~ "8$112EF$n&8&8t&LM-" "(/DD8<<_bQWUW) E 
 NN=) 699(EJ0AA#,,/ B 

 -LL1U) M 
 KK
#
 ,3E*:	""#GH
 -1,@() 	'+$" 	 	
8	$&#'#D#D%!$/ $E $LFD "4!8!8 ## UAEEiQRST! "9 "  $&<!)#$/6S)9,?%4"+"5"5";";	 	 5% +2O%5(;!0'1177	 	 "4!8!8 ## UAEEiQRST "9 "  -LL!# M 
 	
W  		6D  	$$ = %  	s   DJI
 "&J	AI I2I J*I :J;5I 0I1I 5J
	IJIJI I 	I?'I::I??Jresponse_idc                   K   |	t        |	t              sYt        j                  d|rt	        |      nd        t        t        j                  |      d|j                  dd      i|      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  t         d	|||d
       	 |j#                  ||||       d{   }|j)                  ||      S 7 # t$        $ r}| j'                  ||      d}~ww xY ww)zt
        Async version of the delete response API handler.
        Uses async HTTP client to make requests.
        Nz>Creating HTTP client for delete_response with shared_session: r   r   Noner  r  r  ro   rs   rp   r   r   r   r  r   rL  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   %transform_delete_response_api_requestr   r   deleter   r   &transform_delete_response_api_responser   r  r  rs   rt   r   r[  r   rr   r   r  r   rm   rp   ro   rz   rq   r   r|   s                      r   !async_delete_response_api_handlerz4BaseLLMHTTPHandler.async_delete_response_api_handler<	  s    $ >F4D!E  PguQSTbQc{  QA  B "8$112EF$n&8&8t&LM-" "(/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2WW#)	 X 
	T 	'+$" 	 	
		/66tW 7  H -SS!# T 
 	
  	$$ = %  	s<   C3E6D( D&D( E&D( (	E	1EE		Ec                 F   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  t        d	|||d
       	 |j                  ||||      }|j!                  ||      S # t        $ r}| j                  ||      d}~ww xY wr  
r  r  rs   rt   r   r[  r   rr   r   r   Nr   r   r  r  r  r  r   r   r   r  r   rL  )r  r   r-   r.   r   r   rp  r   ro   r   r  r   r   r  r   r   r  r   r  r  rs   rt   r   r[  r   rr   r   r  r   r   rp   ro   rz   rq   r   r|   s                      r   delete_response_api_handlerz.BaseLLMHTTPHandler.delete_response_api_handler	  s   $ 99'.K-'$7+%- :   >FK!@ 1$n&8&8t&LM! !'/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2WW#)	 X 
	T 	'+$" 	 	
		(//tW 0 H -SS!# T 
 	
  	$$ = %  	   C? ?	D DD c                 <   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  d	d	|||d
       	 |j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY w)zq
        Get a response by ID
        Uses GET /v1/responses/{response_id} endpoint in the responses API
        r  Nr   r   r  r  r  r  r   r   r   rz   rp   r   r   rL  )async_get_responsesr   r-   r.   r   r   rp  r   ro   r   "transform_get_response_api_requestr   r   r   #transform_get_response_api_responser  s                      r   get_responsesz BaseLLMHTTPHandler.get_responses	  s   $ ++'.K-'$7+%- ,   >FK!@ 1$n&8&8t&LM! !'/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2TT#)	 U 
	T 	'+$" 	 	
	(,,gd,SH -PP!# Q 
 	
  	$$ = %  	s   C: :	DDDc                   K   |	t        |	t              sYt        j                  d|
rt	        |
      nd        t        t        j                  |      d|j                  dd      i|
      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  d	d	|||d
       	 |j                  |||       d{   }|j'                  ||      S 7 # t         $ r0}t        j"                  d|        | j%                  ||      d}~ww xY ww)z0
        Async version of get_responses
        Nz<Creating HTTP client for get_responses with shared_session: r   r   r  r  r  r  r   r   r   r  zError retrieving response: r   rL  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   r  r   r   	exceptionr   r  )r   r  r  rs   rt   r   r[  r   rr   r   r   rm   rp   ro   rz   rq   r   r|   s                     r   r  z&BaseLLMHTTPHandler.async_get_responses.
  s      >F4D!E  NesrR`Oay}N~ "8$112EF$n&8&8t&LM-" "(/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2TT#)	 U 
	T 	'+$" 	 	

	/33 4  H -PP!# Q 
 	
  	$$'B1#%FG$$ = %  	s<   C/E2D# 	D!
D# E!D# #	E,+EEEafterbeforeincludelimitorder)ascdescc                 N   |r| j                  |||||||||	|
||||      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||||||	|
	      \  }}|j                  dd|||d	
       	 |j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)r  r  rs   rt   r   r  r  r  r  r  r[  rr   r   r   r   r   r  r  r  	r  ro   rs   rp   r  r  r  r  r  r   r   r   r  r   rL  ) async_list_responses_input_itemsr   r-   r.   r   r   rp  r   ro   r   "transform_list_input_items_requestr   r   r   #transform_list_input_items_response)r   r  r  rs   rt   r   r  r  r  r  r  r[  rr   r   r  r   r   rp   ro   rz   r   r   r|   s                          r   list_responses_input_itemsz-BaseLLMHTTPHandler.list_responses_input_items|
  s   $ 88'.K-'$7+- 9  " >FK!@ 1$n&8&8t&LM! !'/DD!'Rvn E 
 NN=)0AA#,,/ B 

 4VV#) W 

V 	'-$" 	 	
	Y(,,gf,UH -PP!# Q 
 	
  	Y$$q:W$XX	Ys   D 	D$DD$c                   K   |t        |t              sYt        j                  d|rt	        |      nd         t        t        j                  |      d|j                  dd       i|      }n|}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||||||	|
	      \  }}|j                  dd|||d	
       	 |j                  |||       d {   }|j%                  ||      S 7 # t         $ r}| j#                  ||      d }~ww xY ww)Nz?Creating HTTP client for list_input_items with shared_session: r   r   r  r  r  r  r   r   r   r  r   rL  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   r  r   r   r   r  )r   r  r  rs   rt   r   r  r  r  r  r  r[  rr   r   r   rm   rp   ro   rz   r   r   r|   s                         r   r  z3BaseLLMHTTPHandler.async_list_responses_input_items
  s    " >F4D!E  QhvRTUcRd  }A  RB  C "8$112EF$n&8&8t&LM-" "(/DD!'Rvn E 
 NN=)0AA#,,/ B 

 4VV#) W 

V 	'-$" 	 	
	Y/33 4  H -PP!# Q 
 	
  	Y$$q:W$XX	Ys<   C4E7D( D&D( E&D( (	E	1EE		Eupload_url_locationupload_url_keyc                     |dk(  r|j                   j                  d      }|dfS 	 |j                         }|j                  |      }||r|fS dfS # t        $ r Y yw xY w)a  
        Extract upload URL from initial file creation response.

        Args:
            response: HTTP response from initial file creation request
            upload_url_location: Where to find URL ('headers' or 'body')
            upload_url_key: Key name for URL in response body (default: 'upload_url')

        Returns:
            Tuple of (upload_url, response_data)
            - upload_url: The extracted upload URL, or None if not found
            - response_data: Parsed response body (for 'body' location), or None
        rp   zX-Goog-Upload-URLNNN)rp   r   r   r   )r   r   r  r  
upload_urlresponse_datas         r   !_extract_upload_url_from_responsez4BaseLLMHTTPHandler._extract_upload_url_from_response  su    & )+!))--.ABJt##" (*..~>
!J=HHDHH "!"s   &A A 	AAcreate_file_datac           
         |j                  ||dg i |      }|j                  ||di ||      }|t        d      |j                  d||i       }|r| j	                  |||||||	|
      S |	t        |	t              st               }n|	}t        |t              rd|v r	 |j                  |i ||d   d	   t        j                  |d   d
         |
      }| j                  ||j                  dd	      |j                  dd            \  }}|st        d      |d   j                  dd      j                         } t        ||      ||d   d	   |d   d
   |
      }|r||d<   nPt        |t              rVd|v rRd|vrNt%        t&        t(        t*        f   |      } t        ||d   j                               |d   |d	   |d
   |
      }nt        |t(              st        |t,              rlt        |t,              r|j/                  d      }|j0                  j3                         }|dk(  r|j5                  ||||
      }nt|j                  ||||
      }n^t        |t              r7d|v r3t%        t&        t(        t*        f   |      }|j                  ||||
      }nt        dt7        |             t        |      }d|vr||d<   |j9                  d|||      S # t         $ r}| j#                  ||      d}~ww xY w)G
        Creates a file using Gemini's two-step upload process
        r   r   ro   r   r   r   rs   rq   Nz$api_base is required for create_file)r   r  rs   r   )transformed_requestrs   rn   rp   ro   rt   r   rr   initial_requestrp   rq   r   r  r  r  r   r  r  -Failed to get upload URL from initial requestupload_requestmethodPOSTinitial_file_responser   rz   utf-8PUTfilerz   rp   r  rr   &Unsupported transformed_request type: r   r   rt   rs   )r   get_complete_file_urlr   transform_create_file_requestasync_create_filer   r-   r.   r   r   r   r   r  r   lowergetattrr   r   r   r   rO  r   bytesdecodefile_upload_http_methodrX  putr3  transform_create_file_response)r   r  rs   rn   rp   ro   r   rt   r  r   rr   r  r   r   r  initial_response_dataupload_methodupload_responser|   presigned_requestrR  file_requestlitellm_params_with_urls                          r   create_filezBaseLLMHTTPHandler.create_file>  s   " "66) 7 
 #88)! 9 
 CDD .KK-)	 L 
 ))$7- /!' * 	 	 >FK!@ 1 3 & *D1!%88/#4#9#9 !-.?@K $78I$J6$RS# $: $  ::-(;(?(?-y) $7#:#:(,$ ; ) "$%TUU ((89==hOUUW  #L'*;]"K"/0@A)L,-=>vF#	# )>SN#:; *D1//!)<< !%T#s(^5H Ig!#4X#>#D#D#F &e,))4&v.O +S1Z6

 -u5&9&@&@&I# *AAGGIKe#"3"7"7 #,#	 #8 # #4"8"8 #,#	 #9 # +T2vAT7T  S#X0CDL/44"	 5 O 8>Q9R8ST  #'~"6~-4<#L1==(#2	 > 
 	
G  (($3 )  s    CK# #	L,K??Lr  r9   c	                   K   |t        |t              st        |j                        }	n|}	|j	                  dd|||d       t        |t
              rd|v r	 |	j                  |i ||d   d   t        j                  |d   d         |	       d{   }
| j                  |
|j                  d
d      |j                  dd            \  }}|st        d      |d   j                  dd      j                         } t        |	|      ||d   d   |d   d   |	       d{   }|r||d<   n2t        |t
              r^d|v rZd|vrVt%        t&        t(        t*        f   |      } t        |	|d   j                               |d   |d   |d   |	       d{   }nt        |t(              st        |t,              r[|j.                  j1                         }|dk(  r|	j3                  ||||	       d{   }ng|	j                  ||||	       d{   }nIt        |t
              r"d|v r|	j                  ||||       d{   }nt        dt5        |             |j7                  d|||      S 7 7 X# t        $ r0}t        j                   d|        | j#                  ||      d}~ww xY w7 !7 7 7 zw)r  Nr  r   r   r   r  rp   rq   r   r  r  r  r  r  r  r  r  r  zError creating file: r   rz   r  r  r  r  r  )r   r,   r/   r   r   r   r   r   r   r  r   r   r  r  r   r   r  r   r   r   rO  r   r  r  rX  r  r3  r  )r   r  rs   rn   rp   ro   rt   r   rr   rm   r   r  r  r  r  r|   r  rR  s                     r   r  z$BaseLLMHTTPHandler.async_create_file  s     >F4D!E!7,@@" "(
 	':$" 	 	
 *D1!%880);)@)@ !-.?@K $78I$J6$RS# *A * $  ::-(;(?(?-y) $7#:#:(,$ ; ) "$%TUU ((89==hOUUW  )S0BM(R"/0@A)L,-=>vF#	) # )>SN#:; *D1//!)<< !%T#s(^5H I%G"$5h$?$E$E$G% &e,))4&v.% O +S1Z6
 *AAGGIKe#(:(>(> #,#	 )? ) # );(?(? #,#	 )@ ) # +T2vAT7T %7$;$;)	 %< % O 8>Q9R8ST  ==(#)	 > 
 	
G$>#  ((+@)DE(($3 )  "##s   AK;J I<BJ 'I?(J 3A*KJ>AK:K;KK1K
K1K<J ?J 	J;+J66J;;KKKKcreate_batch_datar?   r   LiteLLMLoggingObj)r-   r,   rL   c                    |t        d      |j                  |||g i |      }|j                  |||i ||      }|t        d      |j                  |||i       }|r| j	                  |||||||	|
|	      S |	t        |	t              st               }n|	}	 t        |t              r5d|v r1 t        ||d   j                               |d	   |d
   |d   |
      }nAt        |t              r|j                  |i |ddi||
      }n|j                  ||||
      }i |d|i}|j!                  ||||      S # t        $ r0}t        j                  d|        | j                  ||      d}~ww xY w)zP
        Creates a batch using provider-specific batch creation process
        Nz"model is required for create_batchr   r  z%api_base is required for create_batch)r   r  rs   r   )	r  rs   rn   rp   ro   rt   r   rr   r  r  rz   rp   rq   r   Content-Typeapplication/jsonr  Error creating batch: r   original_batch_requestr  )r   r   get_complete_batch_urltransform_create_batch_requestasync_create_batchr   r-   r.   r   r  r  r   r   r   r  r   transform_create_batch_response)r   r  rs   rn   rp   ro   r   rt   r  r   rr   r   r  r   batch_responser|   litellm_params_with_requests                    r   create_batchzBaseLLMHTTPHandler.create_batch  s7   $ =ABB!66) 7 
 #99)" : 
 DEE .LL/)	 M 
 **$7- /!'"3 + 
 
 >FK!@ 1 3 &#	.5 33"%':8'D'J'J'L" ,E2/	:,V4#" /6!2!7!7 KwK8JK,#	 "8 " "3!7!7 #,#	 "8 "'
'
$&7'
#
 >>'#6	 ? 
 	
  	$$'=aS%AB$$ / %  	s   BD= =	E6+E11E6batch_idc                    |j                  |||      }|r| j                  |||||||	|
||
      S |	t        |	t              st	               }n|	}	 t        |t
              rSd|v rO|d   j                         }|d   |d   d}|dk7  r|j                  d	      |d	   |d	<    t        ||      di |}nMt        |t
              r|r|j                  |i |d
di|      }n |st        d      |j                  ||      }|j                  ||||      S # t        $ r0}t        j                  d|        | j                  ||      d}~ww xY w)zI
        Retrieve a batch using provider-specific configuration.
        )r  r   rs   )
r  rs   rn   rp   ro   rt   r   rr   r  r   Nr  rz   rp   rK  r   rq   r  r  r  0api_base is required for non-pre-signed requestsError retrieving batch: r   r   ) transform_retrieve_batch_requestasync_retrieve_batchr   r-   r.   r   r  r   r  r   r   r   r  r   !transform_retrieve_batch_response)r   r  rs   rn   rp   ro   r   rt   r  r   rr   r   r  r   r  request_kwargsr  r|   s                     r   retrieve_batchz!BaseLLMHTTPHandler.retrieve_batch   s   $ .NN*) O 
 ,,$7- /!'! -   >FK!@ 1 3 &%	.5 33 -X6<<>.u529=" U?':'>'>v'F'R-@-HN6*!C):F!C!Un!U/68!2!6!6 KwK8JK. "7 "  $%WXX!2!6!6 # "7 " @@'#)	 A 
 	
  	$$'?s%CD$$ / %  	s   B0D 	E +EEc                   K   |t        |t              st        |j                        }n|}|j	                  dd|||d       	 t        |t
              r=d|v r9 t        ||d   j                               |d   |d   |d	   |
       d{   }nQt        |t
              r$|j                  |i |ddi||       d{   }n|j                  ||||
       d{   }i |d|	xs i i}|j                  |
|||      S 7 w7 E7 )# t        $ r0}t        j                  d|        | j                  ||      d}~ww xY ww)z/
        Async version of create_batch
        Nr  r   r   r   r  rz   rp   rq   r   r  r  r  r  r   r  r  )r   r,   r/   r   r   r   r  r  r   r   r   r  r   r  )r   r  rs   rn   rp   ro   rt   r   rr   r  r   rm   r  r|   r  s                  r   r  z%BaseLLMHTTPHandler.async_create_batchY  s      >F4D!E!7,@@" "(
 	':$" 	 	
#	.5 33(w&(;H(E(K(K(M( ,E2/	:,V4#( " /6'9'>'> KwK8JK,#	 (? ( " (:'>'> #,#	 (? ( "'
'
$&7&=2'
#
 >>'#6	 ? 
 	
K"""  	$$'=aS%AB$$ / %  	sa   AEAD D3D DD  D
!D %!ED D 
D 	E+E  EEc           	        K   |t        |t              st        |j                        }n|}|j	                  dd||||	d       	 t        |t
              r[d|v rW|d   j                         }|d   |d   d	}|d
k7  r|j                  d      |d   |d<    t        ||      di | d{   }n]t        |t
              r%|r#|j                  |i |ddi|       d{   }n(|st        d      |j                  ||	       d{   }|j                  |
|||      S 7 w7 D7 # t        $ r0}t        j                  d|        | j                  ||      d}~ww xY ww)z1
        Async version of retrieve_batch
        Nr  r   )r   ro   rp   r  r   r  rz   rp   rK  r   rq   r  r  r  r  r  r   r  r  )r   r,   r/   r   r   r   r  r   r  r   r   r   r  r   r  )r   r  rs   rn   rp   ro   rt   r   rr   r  r   rm   r  r   r  r|   s                   r   r  z'BaseLLMHTTPHandler.async_retrieve_batch  s      >F4D!E!7,@@" "(
 	':$"$	 	 		
'	.5 33 -X6<<>.u529=" U?':'>'>v'F'R-@-HN6*'Jw/A6'J ($( " /68'9'='= KwK8JK. (> ( "  $%WXX'9'='= # (> ( " @@'#)	 A 
 	
3"
""  	$$'?s%CD$$ / %  	sa   AE'A%D+ -D%.4D+ "D'#(D+ D)D+ E'%D+ 'D+ )D+ +	E$4+EE$$E'c                 >   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  |d	|||d
       	 |j                  ||||      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY wr  )!async_cancel_response_api_handlerr   r-   r.   r   r   rp  r   ro   r   %transform_cancel_response_api_requestr   r   r   r   &transform_cancel_response_api_responser  s                      r   cancel_response_api_handlerz.BaseLLMHTTPHandler.cancel_response_api_handler  s   $ 99'.K-'$7+%- :   >FK!@ 1$n&8&8t&LM! !'/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2WW#)	 X 
	T 	'+" 	 	
		(--tW . H -SS!# T 
 	
  	$$ = %  	s   C; ;	DDDc                   K   |	t        |	t              sYt        j                  d|rt	        |      nd        t        t        j                  |      d|j                  dd      i|      }n|	}|j                  |xs i d|      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||      \  }}|j                  |d	|||d
       	 |j!                  ||||       d{   }|j'                  ||      S 7 # t"        $ r}| j%                  ||      d}~ww xY ww)zt
        Async version of the cancel response API handler.
        Uses async HTTP client to make requests.
        Nz>Creating HTTP client for cancel_response with shared_session: r   r   r  r  r  r  r   r   r   r  r   rL  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   r  r   r   r   r   r  r  s                      r   r  z4BaseLLMHTTPHandler.async_cancel_response_api_handlerX  s    $ >F4D!E  PguQSTbQc{  QA  B "8$112EF$n&8&8t&LM-" "(/DD!'Rvn E 
 NN=)0AA#,,/ B 

 2WW#)	 X 
	T 	'+" 	 	
		/44tW 5  H -SS!# T 
 	
  	$$ = %  	s<   C/E2D$ 
D"D$ E"D$ $	E-E  EErD   c                 F   |r| j                  |||||||||	|
||      S |t        |t              st        d|j	                  dd      i      }n|}|j                  |xs i ||      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||||      \  }}|j                  |d|||d	
       	 |j                  ||||
      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY w)z8
        Handler for the compact responses API.
        )r   r   r  r  rs   rt   r   r[  r   rr   r   r   Nr   r   r  r  r   r   r  ro   rs   rp   r   r   r   r  r   rL  )"async_compact_response_api_handlerr   r-   r.   r   r   rp  r   ro   r   &transform_compact_response_api_requestr   r   r   r   'transform_compact_response_api_response)r   r   r   r  r  rs   rt   r   r[  r   rr   r   r  r   r   rp   ro   rz   rq   r   r|   s                        r   compact_response_api_handlerz/BaseLLMHTTPHandler.compact_response_api_handler  s   & ::.K5Y-'$7+%- ;   >FK!@ 1$n&8&8t&LM! !'/DD!'Ru^ E 
 NN=)0AA#,,/ B 
 *PP1U) Q 
	
 	'+" 	 	
		(--tW . H -TT!# U 
 	
  	$$ = %  	r  c                   K   |t        |t              sYt        j                  d|rt	        |      nd        t        t        j                  |      d|j                  dd      i|      }n|}|j                  |xs i ||      }|r|j                  |       |j                  |j                  t        |            }|j                  ||||||      \  }}|j                  |d|||d	
       	 |j!                  ||||
       d{   }|j'                  ||      S 7 # t"        $ r}| j%                  ||      d}~ww xY ww)zD
        Async version of the compact response API handler.
        Nz?Creating HTTP client for compact_response with shared_session: r   r   r  r  r  r   r   r   r  r   rL  )r   r,   r   r   r   r/   r   r   r   r   rp  r   ro   r   r  r   r   r   r   r  )r   r   r   r  r  rs   rt   r   r[  r   rr   r   r  r   rm   rp   ro   rz   rq   r   r|   s                        r   r  z5BaseLLMHTTPHandler.async_compact_response_api_handler   s    & >F4D!E  QhvRTUcRd  }A  RB  C "8$112EF$n&8&8t&LM-" "(/DD!'Ru^ E 
 NN=)0AA#,,/ B 
 *PP1U) Q 
	
 	'+" 	 	
		/44tW 5  H -TT!# U 
 	
  	$$ = %  	s<   C1E
4D& D$D& E
$D& &	E/EEE
file_idc	           	         |r| j                  |||||||      S |t        |t              st               }	n|}	|j	                  |i |      \  }
}|j                  |j                  d      |dg i |      }|j                  dd|
||d       	 |	j                  |
||	      }|j                  |||      S # t        $ r}| j                  ||
      d}~ww xY w)z.
        Retrieve file metadata by ID
        r  rn   rs   rp   rt   r   rr   Nr  r   rs   r   r   r   ro   rp   r  r   r  r   r   rt   rs   )async_retrieve_filer   r-   r.   transform_retrieve_file_requestr   r   r   r   r    transform_retrieve_file_responser   r  rn   rs   rp   rt   r  r   rr   r   rz   r   r   r|   s                 r   retrieve_filez BaseLLMHTTPHandler.retrieve_fileR  s@    ++ /-' ,   >FK!@ 1 3 & &EE) F 
V "66"&&y1) 7 
 	"" 	 	
	K(,,gf,UH ??!#) @ 
 	
  	K$$q/$JJ	K   B8 8	CCCc                   K   |t        |t              st        |j                        }n|}|j	                  |i |      \  }	}
|j                  |j                  d      |dg i |      }|j                  dd|	||d       	 |j                  |	||
	       d{   }|j                  |||      S 7 # t        $ r}| j                  ||
      d}~ww xY ww)z4
        Async retrieve file metadata by ID
        Nr  r  r   r   r   r  r   r  r   r  )r   r,   r/   r   r  r   r   r   r   r   r  r   r  rn   rs   rp   rt   r   rr   rm   rz   r   r   r|   s                r   r  z&BaseLLMHTTPHandler.async_retrieve_file  s.     >F4D!E!7,@@" "( &EE) F 
V "66"&&y1) 7 
 	"" 	 	
	K/33 4  H ??!#) @ 
 	
  	K$$q/$JJ	K<   BCB6 B4B6  C4B6 6	C?CCCr   c	           	         |r| j                  |||||||      S |t        |t              st               }	n|}	|j	                  |i |      \  }
}|j                  |j                  d      |dg i |      }|j                  dd|
||d       	 |	j                  |
||	      }|j                  |||      S # t        $ r}| j                  ||
      d}~ww xY w)z%
        Delete a file by ID
        r  Nr  r   r   r   r  r   r  r   r  )async_delete_filer   r-   r.   transform_delete_file_requestr   r   r   r  r   r   transform_delete_file_responser  s                 r   delete_filezBaseLLMHTTPHandler.delete_file  s@    )) /-' *   >FK!@ 1 3 & &CC) D 
V "66"&&y1) 7 
 	"" 	 	
	K(//CQW/XH ==!#) > 
 	
  	K$$q/$JJ	Kr  c                   K   |t        |t              st        |j                        }n|}|j	                  |i |      \  }	}
|j                  |j                  d      |dg i |      }|j                  dd|	||d       	 |j                  |	||
|	       d{   }|j                  |||      S 7 # t        $ r}| j                  ||
      d}~ww xY ww)z+
        Async delete a file by ID
        Nr  r  r   r   r   r  r   rz   rp   r   rr   r   r  )r   r,   r/   r   r"  r   r   r   r  r   r   r#  r  s                r   r!  z$BaseLLMHTTPHandler.async_delete_file  s/     >F4D!E!7,@@" "( &CC) D 
V "66"&&y1) 7 
 	"" 	 	
	K/66 7  H ==!#) > 
 	
  	K$$q/$JJ	Ks<   BCB7 B5B7 !C5B7 7	C CCCpurposec	           	         |r| j                  |||||||      S |t        |t              st               }	n|}	|j	                  |i |      \  }
}|j                  |j                  d      |dg i |      }|j                  dd|
||d       	 |	j                  |
||	      }|j                  |||      S # t        $ r}| j                  ||
      d}~ww xY w)z 
        List all files
        )r'  rn   rs   rp   rt   r   rr   Nr'  r   rs   r   r   r   ro   rp   r'  r   r  r   r  )async_list_filesr   r-   r.   transform_list_files_requestr   r   r   r   r   transform_list_files_response)r   r'  rn   rs   rp   rt   r  r   rr   r   rz   r   r   r|   s                 r   
list_fileszBaseLLMHTTPHandler.list_filesR  s?    (( /-' )   >FK!@ 1 3 & &BB) C 
V "66"&&y1) 7 
 	"" 	 	
	K(,,gf,UH <<!#) = 
 	
  	K$$q/$JJ	Kr  c                   K   |t        |t              st        |j                        }n|}|j	                  |i |      \  }	}
|j                  |j                  d      |dg i |      }|j                  dd|	||d       	 |j                  |	||
	       d{   }|j                  |||      S 7 # t        $ r}| j                  ||
      d}~ww xY ww)z&
        Async list all files
        Nr  r)  r   r   r   r*  r   r  r   r  )r   r,   r/   r   r,  r   r   r   r   r   r-  )r   r'  rn   rs   rp   rt   r   rr   rm   rz   r   r   r|   s                r   r+  z#BaseLLMHTTPHandler.async_list_files  s-     >F4D!E!7,@@" "( &BB) C 
V "66"&&y1) 7 
 	"" 	 	
	K/33 4  H <<!#) = 
 	
  	K$$q/$JJ	Kr  file_content_requestrA   rB   c	           	         |r| j                  |||||||      S |t        |t              st               }	n|}	|j	                  |i |      \  }
}|j                  |j                  d      |dg i |      }|j                  dd|
||j                  d      d	       	 |	j                  |
||
      }|j                  |||      S # t        $ r}| j                  ||      d}~ww xY w)z-
        Retrieve file content by ID
        )r0  rn   rs   rp   rt   r   rr   Nr0  r   rs   r   r   r   r  r  r   r  r   r  )async_retrieve_file_contentr   r-   r.   transform_file_content_requestr   r   r   r   r   transform_file_content_response)r   r0  rn   rs   rp   rt   r  r   rr   r   rz   r   r   r|   s                 r   retrieve_file_contentz(BaseLLMHTTPHandler.retrieve_file_content  sJ     33%9 /-' 4   >FK!@ 1 3 & &DD!5) E 
V "66"&&y1) 7 
 	"/33I> 	 	
	K(,,gf,UH >>!#) ? 
 	
  	K$$q/$JJ	Ks   C 	C(C##C(c           	        K   |t        |t              st        |j                        }n|}|j	                  |i |      \  }	}
|j                  |j                  d      |dg i |      }|j                  dd|	||j                  d      d	       	 |j                  |	||

       d{   }|j                  |||      S 7 # t        $ r}| j                  ||      d}~ww xY ww)z3
        Async retrieve file content by ID
        Nr  r2  r   r   r   r  r  r   r  r   r  )r   r,   r/   r   r4  r   r   r   r   r   r5  )r   r0  rn   rs   rp   rt   r   rr   rm   rz   r   r   r|   s                r   r3  z.BaseLLMHTTPHandler.async_retrieve_file_content  s8     >F4D!E!7,@@" "( &DD!5) E 
V "66"&&y1) 7 
 	"/33I> 	 	
	K/33 4  H >>!#) ? 
 	
  	K$$q/$JJ	Ks<   BC)C *C+C /C)C 	C&C!!C&&C)c                 B    |du rd}|j                  dd       ||fS ||fS )zI
        Handles preparing a request when `fake_stream` is True.
        TFru   N)r   )r   ru   rq   r   s       r   r  z/BaseLLMHTTPHandler._prepare_fake_stream_requestT  s3     $FHHXt$4<t|r   r   c
                   K   ddl m}
 ddlm} t        j
                  |j                  xs g z   }|j                  dg       }|D ]s  }	 t        ||      rd|j                  |||||||	       d{   \  }}|r?|	r|	j                         ni }||d<   |j                  |||||||||	       d{   }|c S u ||j                   j                  dd      nd}|rLddlm} ddl m}
 ddlm} ddlm}  |
j.                  d       t        |t0              r | |||            }|S y7 7 {# t        $ r6}t        |d	d
      } |
j                  d||t        |             Y d}~#d}~ww xY ww)a?  
        Call agentic completion hooks for all custom loggers (Anthropic Messages API).

        1. Call async_should_run_agentic_loop to check if agentic loop is needed
        2. If yes, call async_run_agentic_loop to execute the loop

        Returns the response from agentic loop, or None if no hook runs.
        r   r   CustomLoggertoolsr   r   r   r<  ru   r   r   Nr   )	r<  r   r   r   rY  rZ  rt   ru   r   litellm_call_idunknownzYLiteLLM.AgenticHookError: Exception in agentic completion hooks [call_id=%s model=%s]: %sr   F)r   )#FakeAnthropicMessagesStreamIteratorr:   zZWebSearchInterception: No tool call made, converting non-streaming response to fake streamr   )litellm._loggingr   "litellm.integrations.custom_loggerr;  r   	callbacksdynamic_success_callbacksr   r   async_should_run_agentic_loopr   async_run_agentic_loopr   r  r  rO  r   typingr   Nlitellm.llms.anthropic.experimental_pass_through.messages.fake_stream_iteratorr@  8litellm.types.llms.anthropic_messages.anthropic_responser;   r   r   )r   r   r   r   rY  rZ  rt   ru   r   r   r   r;  rD  r<  callback
should_run
tool_callskwargs_with_provideragentic_responser|   _call_idwebsearch_converted_streamr   r@  r;   r   s                             r   rx  z1BaseLLMHTTPHandler._call_agentic_completion_hooksc  s    ( 	4C%%)N)N)TRTU	:>>wK!H-h5
 'DD!)#!)#%,?% E  "" " AGv{{}B, 0 -1 2:1P1P","'%-%-?aGq(3#)#7 2Q 
2 
,(  0/I "r & **..95  	# &#7 !N  l (D)A!";XF #"]"
,  ";0A9M(((0F sU   AE/'D-/D)0?D-/D+0D-5A4E/)D-+D--	E,6+E'!E/'E,,E/c	                   K   ddl m}	 ddlm}
 t        j
                  |j                  xs g z   }|j                  dg       }|D ]  }	 t        ||
      rpt        |d      s|j                  |||||||       d{   \  }}|r>|r|j                         ni }||d<   |j                  ||||||||	       d{   }|c S  ||j                   j                  dd      nd}|r4ddl m}	 ddlm}  |	j&                  d       t        |d      r
 ||      }|S y7 7 c# t        $ r)} |	j                  d
t        |              Y d}~
d}~ww xY ww)ab  
        Call agentic chat completion hooks for all custom loggers (Chat Completions API).

        1. Call async_should_run_chat_completion_agentic_loop to check if agentic loop is needed
        2. If yes, call async_run_chat_completion_agentic_loop to execute the loop

        Returns the response from agentic loop, or None if no hook runs.
        r   r   r:  r<  -async_should_run_chat_completion_agentic_loopr=  Nr   )r<  r   r   r   r   rt   ru   r   zFLiteLLM.AgenticHookError: Exception in chat completion agentic hooks: r   F)#convert_model_response_to_streamingzaWebSearchInterception: No tool call made, converting non-streaming chat completion to fake streamchoices)rB  r   rC  r;  r   rD  rE  r   r   hasattrrS  r   &async_run_chat_completion_agentic_loopr   r  rO  r   )litellm.llms.base_llm.base_model_iteratorrT  r   )r   r   r   r   r   rt   ru   r   r   r   r;  rD  r<  rK  rL  rM  rN  rO  r|   rQ  rT  r   s                         r   r   z6BaseLLMHTTPHandler._call_agentic_chat_completion_hooks  s    & 	4C%%)N)N)TRTU	##GR0!H/h5" "Q ! 'TT!)#!)#%,?% U  "" " AGv{{}B, 0 -1 #+"Q"Q&0&+)1)10?,7'-'; #R 	# 	 )  0/W "v & **..95  	# &7 !N  s
 x+A(K""E$	  (((\]`ab]c\de sa   AED! E!D!<D=>D!;D<D!AED!D!!	E*EEEEr|   rb   r   c                    t        |dd      }t        |dd       }t        |t        j                        r-|j                  j
                  }|j                  j                  }nt        |dt        |            }t        |dd       }||rt        |dd       }|rt        |d      rt        |d|      }|rt        |      }ni }|ddl
m}  ||||      |j                  |||	      )
Nr   i  rp   textr   r   )BaseLLMException)r   messagerp   r   )r  r   r   r   r   rZ  r   rO  rV  r   )litellm.llms.base_llm.chat.transformationr[  r   )r   r|   rn   r   error_headers
error_texterror_responser[  s           r   r   z BaseLLMHTTPHandler._handle_error>  s    0 a49d3a../J**00K FCF3J J5 ^#NItDMgnf= DJ /MM"R"'"%  --$#! . 
 	
r   	websocketuser_api_key_dictc           
        K   dd l }ddlm} |j                  |||      }|j	                  |||      }	 t               }|j                  d      rC|du r?t        j                  t        j                        }d|_
        t        j                  |_        |j                  ||t        |      4 d {   }d }|j                         r,|j!                  |      }|r|j#                  |       d {    i }|r||d<   t%        |t'        ||      ||||
|      }|r||_        |j)                          d {    d d d       d {    y 7 7 ]7 7 # 1 d {  7  sw Y   y xY w# |j*                  j,                  $ rQ}t/        j0                  d	|        |j3                  |j4                  t7        |      
       d {  7   Y d }~y d }~wt8        $ r}t/        j0                  d	|        	 |j3                  ddt7        |       
       d {  7   nD# t:        $ r3}dt7        |      v sdt7        |      v rnt9        d|       Y d }~nd }~ww xY wY d }~y Y d }~y d }~ww xY ww)Nr   ClientConnectionrp   r   r   wss://Fadditional_headersmax_sizesslr  )rb  r~   zError connecting to backend: codereason  Internal server error: already completedwebsocket.close*Unexpected error while closing WebSocket: )
websocketswebsockets.asyncio.clientre  r   r   r_   
startswithrk  
SSLContextPROTOCOL_TLS_CLIENTcheck_hostname	CERT_NONEverify_modeconnectr   requires_session_configurationsession_configuration_requestsendr   r   bidirectional_forward
exceptionsInvalidStatusCoder   r  closer   rO  r   RuntimeError)r   r   ra  rt   rn   rp   ro   r   r   rr   rb  r  rt  re  rz   ssl_context
backend_ws_session_config_request_datarealtime_streamingr|   close_errors                         r   async_realtimez!BaseLLMHTTPHandler.async_realtimev  s~     	>..xH!66 7 
:	9;K~~h'K5,@!nnS-D-DE-2**---'!))#*B	 *  
  26"AAC&5&S&S'O '(ooo>>>02#8HM"45%6):6#&7!.&" #GV&D(>>@@@=   ?  A=   @ $$66 	E$$'DQC%HI//q}}SV/DDD 	$$'DQC%HIoo(?Ax&H &      
&#k*::>OSVT ?  $D[MR  

 	s   2I+A;E' 0E
1E' 4:E.E/AE4E5E9E' EE' 	I+
E' EEE' E$EE$ E' #I+$E' 'I( AGGGI+I(I#1"HHHI#	I#)II#II#
I+#I((I+api_versionc                    K   |	t        |	t              s%t        t        j                  j
                        }n|	}|1|j                  ||xs d|
      }|j                  i |xs d|      }n|j                  d       d}d| d	d
d}|r|j                  |       |j                  |d|||d       	 |j                  ||||       d{   S 7 # t        $ r}|| j                  ||       d}~ww xY ww)z
        Forward POST /v1/realtime/client_secrets to upstream provider.

        Uses provider_config (BaseRealtimeHTTPConfig) for URL construction and
        header auth when available; falls back to the legacy OpenAI-style defaults.
        Nr  r   ro   r   r  rf  /z/v1/realtime/client_secretsBearer r  zrealtime=v1)Authorizationr  zOpenAI-Betar   r   r  r   )r   r,   r/   r   r   OPENAIr   r   rstriprp  r   r   r   r   )r   ro   r   r~   rt   rr   rn   r   r[  r   r  rm   rz   rp   r|   s                  r   $async_realtime_client_secret_handlerz7BaseLLMHTTPHandler.async_realtime_client_secret_handler  sW    & >F4D!E!7$1188" "(&!22!"+ 3 C '6&J&J%+2w 'K 'G __S)**EFC#*7)!4 2,G NN=)'3" 	 	
	+00!	 1      	*(($3 )   	s<   B5C>8C CC C>C 	C; C66C;;C>openai_ephemeral_keysdp_bodysession_configc                   K   |
t        |
t              s%t        t        j                  j
                        }n|
}|+|j                  ||xs d|      }|j                  |      }n|j                  d       d}dd	| i}|	r|j                  |	       |xs i }d
|vrd|d
<   d|vr|r||d<   t        |t              r|j                  d      n|}d|dfdt        j                  |      dfd}|j                  dd|||d       	 |j                  ||||       d{   S 7 # t         $ r}|| j#                  ||       d}~ww xY ww)a  
        Forward POST /v1/realtime/calls (SDP exchange) to upstream provider.

        Uses provider_config (BaseRealtimeHTTPConfig) for URL construction and
        header auth when available; falls back to the legacy OpenAI-style defaults.

        OpenAI's GA realtime API expects multipart/form-data with:
          - sdp: the SDP offer (text)
          - session: JSON string with {"type": "realtime", "model": "...", ...}
        Nr  r   r  )ephemeral_keyr  z/v1/realtime/callsr  r  r3  realtimer   r  z
text/plainr  )sdpsessionrealtime_sdp_offer)ro   rp   r  r   r  r   )r   r,   r/   r   r   r  get_realtime_calls_urlget_realtime_calls_headersr  rp  r  r  r   r   r   r   r   r   )r   ro   r  r  rt   rr   rn   r   r  r[  r   r  rm   rz   rp   session_datasdp_textr  r|   s                      r   async_realtime_calls_handlerz/BaseLLMHTTPHandler.async_realtime_calls_handler  s    0 >F4D!E!7$1188" "(&!88!"+ 9 C '6&P&P2 'Q 'G __S)**<=C7+?*@!AG NN=) &+%#-L ,&5$)L!/9(E/J8??7+PX (L1djj68JK

 	&"' 	 	
	+00	 1      	*(($3 )   	s<   DED* #D($D* 'E(D* *	E3E		EEc                 x  K   ||j                         s1ddlm}  |d|||||	||||
d	|}|j                          d{    yddl}ddlm} t               }|j                  i ||      }|rd| |d<   |j                  |i 	      }|j                  d
d      j                  dd      }	 t               }|j                  d      rC|du r?t        j                  t        j                        }d|_        t        j"                  |_        |j'                  d|xs d||ddid       |j)                  ||t*        |      4 d{   }i }|	r|	|d<   t-        |t/        ||      |||      }|j1                          d{    ddd      d{    y7 X7 S7 7 # 1 d{  7  sw Y   yxY w# |j2                  j4                  $ rQ}t7        j8                  d|        |j;                  |j<                  t?        |             d{  7   Y d}~yd}~wt@        $ r}t7        j8                  d|        	 |j;                  ddt?        |              d{  7   nD# tB        $ r3}dt?        |      v sdt?        |      v rntA        d|       Y d}~nd}~ww xY wY d}~yY d}~yd}~ww xY ww) a  
        Handles Responses API WebSocket mode.

        For providers with native websocket support (OpenAI, Azure):
        - Opens a persistent WebSocket to the provider's /v1/responses endpoint
        - Proxies response.create events bidirectionally for lower-latency agentic workflows

        For providers without native websocket support (all others):
        - Uses ManagedResponsesWebSocketHandler which makes HTTP streaming calls
        - Forwards events over the websocket connection
        Nr   ) ManagedResponsesWebSocketHandler)	ra  r   rt   rb  r  r   ro   rr   r   rd  r  r  r  r  zhttps://rg  zhttp://zws://Fr   moderesponses_websocket)ro   rp   r   r   rh  r  )ra  r  rt   rb  r~   z*Error connecting to responses WS backend: rl  zError in responses WS: ro  rp  rq  rr  rs  r  )"supports_native_websocket$litellm.responses.streaming_iteratorr  runrt  ru  re  rH   r   r   replacer_   rv  rk  rw  rx  ry  rz  r{  r   r|  r   r3   r   r  r  r  r   r  r  r   rO  r   r  )r   r   ra  rt   r  ro   r   rr   rb  r  r   r   r  handlerrt  re  rs   rp   http_urlws_urlr  r  r  	streamingr|   r  s                             r   async_responses_websocketz,BaseLLMHTTPHandler.async_responses_websockete  s    4 *10JJL 7 #'"3!1!$7 G ++->-//DD) E 

 )0	':GO$0AA B 
 !!*h7??	7S4	9;K  *{e/C!nnS-D-DE-2**---'  2 &&,24I+J! !  "))#*B	 *  
 02#8HM"457'#$4jA +&7!.	  55777!  M  L  8!   $ $$66 	E$$'QRSQT%UV//q}}SV/DDD 	$$'>qc%BCoo(?Ax&H &      &#k*::>OSVT ? #D[MR  	 	s   >J: FA,J:.BF6 FF6 7F!FF!F6 FF6 J:F6 F!F6 !F3'F*(F3/F6 2J:3F6 6J7AHHHJ:J7'J2 "I)"I%#I)(J2)	J%2)J J2 J%%J2(
J:2J77J:imagepromptimage_edit_provider_config"image_edit_optional_request_paramsc                    |r1| j                  |||||||||
||	t        |t              r|nd||      S |t        |t              st	        d|j                  dd      i      }n|}|j                  |j                  |j                  di       xs i |      }|
r|j                  |
       |j                  ||j                  t        |            }|j                  ||||||      \  }}|j                  |d	|||d
       	 |j                         r|j                  |||||	      }n|j                  ||||	      }|j%                  |||      S # t         $ r}| j#                  ||      d}~ww xY w)z

        Handles image edit requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r   r  r  r  r  r   rs   rt   r[  r   rr   r   r   r  r   r   r[  r   rp   r   r   ro   rs   r   r  r  r  rs   rp   r   r   r   rz   rp   rq   r  rr   r  r   r:  )async_image_edit_handlerr   r,   r-   r.   r   r   r   rp  r   ro   r   transform_image_edit_requestr   use_multipart_form_datar   r   r   transform_image_edit_response)r   r   r  r  r  r  r   rs   rt   rr   r[  r   r   r  r   r  r   rp   ro   rq   r  r   r|   s                          r   image_edit_handlerz%BaseLLMHTTPHandler.image_edit_handler  s   . 00+E3U$7-'+%!+F4D!Ev4'!1 1  " >FK!@ 1$n&8&8t&LM! !',AA"**6::?BOUSU B 
 NN=)->>#,,/ ? 
 1MM/Q) N 
e 	',$" 	 	
	)AAC,11 ## 2  -11 ##	 2  *GG!# H 
 	
  	$$ : %  	s   <E 	E7E22E7c                   K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }n|}|j                  |j                  |j                  di       xs i |      }|
r|j                  |
       |j                  ||j                  t        |            }|j                  ||||||      \  }}|j                  |d|||d	
       	 |j                         r|j                  |||||	       d{   }n|j                  ||||	       d{   }|j%                  |||      S 7 67 # t         $ r}| j#                  ||      d}~ww xY ww)zk
        Async version of the image edit handler.
        Uses async HTTP client to make requests.
        Nr   r   r[  r  r  r  r   r   r   r  r  r   r:  )r   r,   r/   r   r   r   r   r   rp  r   ro   r   r  r   r  r   r   r   r  )r   r   r  r  r  r  r   rs   rt   rr   r[  r   r   r   r  rm   rp   ro   rq   r  r   r|   s                         r   r  z+BaseLLMHTTPHandler.async_image_edit_handlerQ  s    * >F4D!E!7$112EF$n&8&8t&LM"
 "(,AA"**6::?BOUSU B 
 NN=)->>#,,/ ? 
 1MM/Q) N 
e 	'+$" 	 	
	)AAC!3!8!8 ## "9 "  "4!8!8 ##	 "9 "  *GG!# H 
 	
-  	$$ : %  	sN   C&E1))E E	E 0E1E 5E1	E E 	E.E))E..E1 image_generation_provider_config(image_generation_optional_request_paramsc                 z   |r1| j                  ||||||||	|
|t        |t              r|nd|||      S |t        |t              st	        d|j                  dd      i      }n|}|j                  ||j                  di       xs i |g |t        |            }|	r|j                  |	       |j                  ||j                  dd      |j                  dd      |t        |      	      }|j                  |||t        |      |
      }|j                  |d|||d       	 |j                         r|j                  |||ddi|      }n|j                  ||||      }|j!                  ||t#        j$                         |||t        |      d      }|S # t        $ r}| j                  ||      d}~ww xY w)z
        Handles image generation requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r   r  r  r  r   rs   rt   r[  r   rr   r   r   r  r   r   r   r[  r   ro   r   r   ro   r   r   rs   r   r  r   rs   rp   r   r   r   noner  r  r   r   r   r   rt   r~   r   rs   r   )async_image_generation_handlerr   r,   r-   r.   r   r   r   rp  r   "transform_image_generation_requestr   r  r   r   r   #transform_image_generation_responser   r[   )r   r   r  r  r  r   rs   rt   rr   r[  r   r   r  r   r  r   r   rp   ro   rq   r   r|   r   s                          r   image_generation_handlerz+BaseLLMHTTPHandler.image_generation_handler  sO   , 661Q9a$7-'+%!+F4D!Ev4'!1 7  " >FK!@ 1$n&8&8t&LM! !'2GG<@@RTU D/ H 
 NN=)3DD#''
D9"&&y$7D/ E 
 0RRD/ S 
 	'+$" 	 	
	/GGI,11 #!2,# 2  -11 ##	 2  -PP%&446'! H#N3 Q 	 	 '  	$$ @ %  	s   %>F 	F:"F55F:c                 l  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }n|}|j                  ||j                  di       xs i |g |t        |            }|	r|j                  |	       |j                  ||j                  dd      |j                  dd      |t        |            }|j                  |||t        |      |	      }|j                  |d
|||d       	 |j                         r!|j                  |||dd
i|       d{   }n|j                  ||||       d{   }|j!                  ||t        j"                         |||t        |      d      }|S 7 X7 <# t        $ r}| j                  ||      d}~ww xY ww)zq
        Async version of the image generation handler.
        Uses async HTTP client to make requests.
        Nr   r   r[  r   ro   r   r  r  r   r   r   r  r  r  r   r  )r   r,   r/   r   r   r   r   r   rp  r   r  r   r  r   r   r   r  r[   )r   r   r  r  r  r   rs   rt   rr   r[  r   r   r   r  r   rm   rp   ro   rq   r   r|   r   s                         r   r  z1BaseLLMHTTPHandler.async_image_generation_handler2  s%    * >F4D!E!7$112EF$n&8&8t&LM"
 "(2GG<@@RTU D/ H 
 NN=)3DD#''
D9"&&y$7D/ E 
 0RRD/ S 
 	'+$" 	 	
	/GGI!3!8!8 #!2,# "9 "  "4!8!8 ##	 "9 "  -PP%&446'! H#N3 Q 	 	 G  	$$ @ %  	sN   DF4+F 3F4F FF 6F4F F 	F1F,,F11F4 video_generation_provider_config(video_generation_optional_request_paramsc                    |r1| j                  ||||||||	|
|t        |t              r|nd|||      S |t        |t              st	        d|j                  dd      i      }n|}|j                  |xs |j                  dd      |j                  di       xs i ||      }|	r|j                  |	       |j                  ||j                  dd      t        |      	      }|j                  ||||||
      \  }}}|j                  |d|||d       	 |r%t        |      dkD  r|j                  |||||      }n|j                  ||||      }|j!                  |||||      S # t        $ r}| j                  ||      d}~ww xY w)z
        Handles video generation requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r   r  r  r  r   rs   rt   r[  r   rr   r   r   r  r   r   r   r   r[  r   rp   r   rs   ro   r  )r   r  $video_create_optional_request_paramsrs   rp   ro   r   r   r   r   r  r  r   r   r   rt   r   r~   )async_video_generation_handlerr   r,   r-   r.   r   r   rp  r   r   transform_video_create_requestr   lenr   r   r   transform_video_create_response)r   r   r  r  r  r   rs   rt   rr   r[  r   r   r  r   r  r   r   rp   ro   rq   r  r   r|   s                          r   video_generation_handlerz+BaseLLMHTTPHandler.video_generation_handler  s+   , 661Q9a$7-'+%!+F4D!Ev4'!1 7  " >FK!@ 1$n&8&8t&LM! !'2GGB~11)TB<@@RTU ) H 
 NN=)3DD#''
D9/ E 
 -KK1Y) L 
		
 	'+$" 	 	
	Ua,11 ## 2  -11 ##	 2  0OO!# 3 P 
 	
  	$$ @ %  	s   <E* *	F3FFr+   c                   K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }n|}|j                  |xs |j                  dd      |j                  di       xs i ||      }|	r|j                  |	       |j                  ||j                  dd      t        |            }|j                  ||||||	      \  }}}|j                  |d
|||d       	 |t        |      dk(  r|j                  ||||       d{   }n|j                  |||||       d{   }|j!                  |||||      S 7 97 # t        $ r}| j                  ||      d}~ww xY ww)zq
        Async version of the video generation handler.
        Uses async HTTP client to make requests.
        Nr   r   r   r[  r  ro   r  )r   r  ro   r  rs   rp   r   r   r   r   r  r  r   r  )r   r,   r/   r   r   r   r   rp  r   r   r  r   r  r   r   r   r  )r   r   r  r  r  r   rs   rt   rr   r[  r   r   r   r  r   rm   rp   ro   rq   r  r   r|   s                         r   r  z1BaseLLMHTTPHandler.async_video_generation_handler  s    * >F4D!E!7$112EF$n&8&8t&LM"
 "(2GGB~11)TB<@@RTU ) H 
 NN=)3DD#''
D9/ E 
 -KK1Y) L 
		
 	'+$" 	 	
	}E
a!3!8!8 ##	 "9 "  "4!8!8 ## "9 "  0OO!# 3 P 
 	
+  	$$ @ %  	sN   C8F;(E! #E$E! EE! FE! E! !	F*E==FFvideo_idvideo_content_provider_configvariantc                 L   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|j                  |xs i d||      }|r|j                  |       |j                  d|j	                  dd      t        |            }|j                  |||||	      \  }}	 |r|j                  |||
      }n|j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY w)z9
        Handle video content download requests.
        )
r  r  r   rs   rt   rr   r[  r   r   r  Nr   r   r   rp   r   r   rs   ro   r  r  ro   rs   rp   r  rz   rp   r   r  rL  r   )async_video_content_handlerr   r-   r.   r   r   rp  r   r   transform_video_content_requestr    transform_video_content_responser   r   )r   r  r  r   rs   rt   rr   r[  r   r   r  r  r   rp   ro   rz   rq   r   r|   s                      r   video_content_handlerz(BaseLLMHTTPHandler.video_content_handler  s   " 33!.K$7-'+ 4   >FK!@ 1$n&8&8t&LM! !'/DD!'R)	 E 
 NN=)0AA#''
D9/ B 
 2QQ) R 
	T	 ,11# 2  -00# 1  1QQ%' R  
  	$$ = %  	s   =D 	D#DD#c                 ~  K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|j                  |xs i d||      }|r|j                  |       |j                  d|j                  dd      t        |            }|j                  |||||
      \  }}	 |r|j                  |||	       d{   }n|j                  |||
       d{   }|j                  ||       d{   S 7 <7 !7 # t        $ r}| j                  ||      d}~ww xY ww)zF
        Async version of the video content download handler.
        Nr   r   r   r  ro   r  r  r  r  rL  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   &async_transform_video_content_responser   r   )r   r  r  r   rs   rt   rr   r[  r   r   r  rm   rp   ro   rz   rq   r   r|   s                     r   r  z.BaseLLMHTTPHandler.async_video_content_handler  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(/DD!'R)	 E 
 NN=)0AA#''
D9/ B 
 2QQ) R 
	T	 !3!8!8# "9 "  "4!7!7# "8 "  7]]%' ^   
  	$$ = %  	s`   B:D==D DD 3D4D DD D=D D D 	D:"D55D::D=video_remix_provider_configc                 ~   |
r| j                  |||||||||	||      S |t        |t              st        d|j	                  dd      i      }n|}|j                  |xs |j	                  dd      |xs i d      }|r|j                  |       |j                  d|j	                  dd      t        |      	      }|j                  ||||||
      \  }}|j                  |d||||d       	 |j                  ||||	      }|j                  |||      S # t        $ r}| j                  ||      d}~ww xY w)z
        Handler for video remix requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        )r  r  r  r   rs   rt   r[  r   rr   r   r   Nr   r   r   r   r  ro   r  r  r  ro   rs   rp   r   r   ro   rp   r  r   r  r   rt   r   r   )async_video_remix_handlerr   r-   r.   r   r   rp  r   r   transform_video_remix_requestr   r   transform_video_remix_responser   r   )r   r  r  r  r   rs   rt   r[  r   rr   r  r   r   r   rp   ro   rz   rq   r   r|   s                       r   video_remix_handlerz&BaseLLMHTTPHandler.video_remix_handler.  s   & 11!,G$7-'+% 2   >FK!@ 1$n&8&8t&LM! !'-BBB~11)TB!'R C 
 NN=).??#''
D9/ @ 
 0MM)! N 
	T 	'+"$	 	 		
	(--	 . H /MM%'$7 N    	$$ ; %  	s   2(D 	D<$D77D<c           	        K   |
t        |
t              s3t        t        j                  |      d|j                  dd      i      }n|
}|j                  |xs |j                  dd      |xs i d      }|r|j                  |       |j                  d|j                  dd      t        |            }|j                  ||||||	      \  }}|j                  |d||||d
       	 |j                  ||||	       d{   }|j                  |||      S 7 # t        $ r}| j                  ||      d}~ww xY ww)z;
        Async version of the video remix handler.
        Nr   r   r   r   r  ro   r  r  r  r   r  r  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   r   r  r   r   )r   r  r  r  r   rs   rt   r[  r   rr   r   r   rm   rp   ro   rz   rq   r   r|   s                      r   r  z,BaseLLMHTTPHandler.async_video_remix_handler  s    " >F4D!E!7$112EF$n&8&8t&LM"
 "(-BBB~11)TB!'R C 
 NN=).??#''
D9/ @ 
 0MM)! N 
	T 	'+"$	 	 		
	/44	 5  H /MM%'$7 N    	$$ ; %  	s<   C'E*D DD ED 	D>&D99D>>Enamevideovideo_provider_configc                    |	r| j                  |||||||||
|
      S |
t        |
t              st        d|j	                  dd       i      }n|
}|j                  |xs |j	                  dd       |xs i d      }|r|j                  |       |j                  d|j	                  dd       t        |            }|j                  |||||	      \  }}|j                  |dd
|i||d       	 |j                  ||||      }|j                          |j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)
r  r  r  r   rs   rt   r[  rr   r   r   r   r   r   r   r  ro   r  r  r  ro   rs   rp   r  r   r   r  rL  r   )$async_video_create_character_handlerr   r-   r.   r   r   rp  r   r   (transform_video_create_character_requestr   r   ru  )transform_video_create_character_responser   r   )r   r  r  r  r   rs   rt   r[  rr   r  r   r   r   rp   ro   rz   
files_listr   r|   s                      r   video_create_character_handlerz1BaseLLMHTTPHandler.video_create_character_handler  s    <<&;$7-'+ =   >FK!@ 1$n&8&8t&LM! !''<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 "JJ) K 
	
 	(.~" 	 	
	Q(-- 	 . H %%'(RR%' S    	Q$$q:O$PP	Qs   17D) )	E
2EE
c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }n|	}|j                  |
xs |j                  dd       |xs i d      }|r|j                  |       |j                  d|j                  dd       t        |            }|j                  |||||      \  }}|j                  |dd	|i||d
       	 |j                  ||||       d {   }|j                          |j                  ||      S 7 '# t        $ r}| j!                  ||      d }~ww xY ww)Nr   r   r   r   r  ro   r  r  r  r   r   r  rL  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   r   ru  r  r   r   )r   r  r  r  r   rs   rt   r[  rr   r   r   rm   rp   ro   rz   r  r   r|   s                     r   r  z7BaseLLMHTTPHandler.async_video_create_character_handler9  s     >F4D!E!7$112EF$n&8&8t&LM"
 "('<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 "JJ) K 
	
 	(.~" 	 	
	Q/44 	 5  H %%'(RR%' S    	Q$$q:O$PP	Qs<   C'E*D, D*&D, )E*D, ,	E5EEEcharacter_idc                    |r| j                  ||||||||	|
	      S |	t        |	t              st        d|j	                  dd       i      }n|	}|j                  |
xs |j	                  dd       |xs i d      }|r|j                  |       |j                  d|j	                  dd       t        |            }|j                  ||||	      \  }}|j                  |d||d
       	 |j	                  |||      }|j                          |j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)	r  r  r   rs   rt   r[  rr   r   r   r   r   r   r   r  ro   r  r  ro   rs   rp   ro   rp   r   r  rL  r   )!async_video_get_character_handlerr   r-   r.   r   r   rp  r   r   %transform_video_get_character_requestr   ru  &transform_video_get_character_responser   r   )r   r  r  r   rs   rt   r[  rr   r  r   r   r   rp   ro   rz   r   r   r|   s                     r   video_get_character_handlerz.BaseLLMHTTPHandler.video_get_character_handler  s    99)&;$7-'+ : 
 
 >FK!@ 1$n&8&8t&LM! !''<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 ,QQ%)	 R 
V 	),A 	 	
	Q(,,gf,UH%%'(OO%' P    	Q$$q:O$PP	Qs   ,6D# #	E,D??Ec
                   K   |t        |t              s3t        t        j                  |      d|j                  dd       i      }
n|}
|j                  |	xs |j                  dd       |xs i d      }|r|j                  |       |j                  d|j                  dd       t        |            }|j                  ||||      \  }}|j                  |d||d	
       	 |
j                  |||       d {   }|j                          |j                  ||      S 7 '# t        $ r}| j                  ||      d }~ww xY ww)Nr   r   r   r   r  ro   r  r  r  r   r  rL  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   ru  r  r   r   )r   r  r  r   rs   rt   r[  rr   r   r   rm   rp   ro   rz   r   r   r|   s                    r   r  z4BaseLLMHTTPHandler.async_video_get_character_handler  s     >F4D!E!7$112EF$n&8&8t&LM"
 "('<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 ,QQ%)	 R 
V 	),A 	 	

	Q/33 4  H %%'(OO%' P  	  	Q$$q:O$PP	Qs<   C#E&D' =D%>&D' $E%D' '	E0EEEc                    |
r| j                  |||||||||	||      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs |j	                  dd       |xs i d      }|r|j                  |       |j                  d|j	                  dd       t        |            }|j                  ||||||	      \  }}|j                  |d||||d
       	 |j                  ||||	      }|j                          |j                  |||      S # t        $ r}| j                  ||      d }~ww xY w)N)r  r  r  r   rs   rt   r[  r   rr   r   r   r   r   r   r   r  ro   r  r  r  ro   rs   rp   r   r  r   r  r  r   )async_video_edit_handlerr   r-   r.   r   r   rp  r   r   transform_video_edit_requestr   r   ru  transform_video_edit_responser   r   )r   r  r  r  r   rs   rt   r[  r   rr   r  r   r   r   rp   ro   rz   rq   r   r|   s                       r   video_edit_handlerz%BaseLLMHTTPHandler.video_edit_handler  s    00!&;$7-'+% 1   >FK!@ 1$n&8&8t&LM! !''<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 *FF)! G 
	T 	'+"$	 	 		
	Q(--	 . H %%'(FF%'$7 G  
  	Q$$q:O$PP	Qs   28D+ +	E4EEc           	        K   |
t        |
t              s3t        t        j                  |      d|j                  dd       i      }n|
}|j                  |xs |j                  dd       |xs i d      }|r|j                  |       |j                  d|j                  dd       t        |            }|j                  ||||||      \  }}|j                  |d||||d	
       	 |j                  ||||	       d {   }|j                          |j                  |||      S 7 (# t        $ r}| j!                  ||      d }~ww xY ww)Nr   r   r   r   r  ro   r  r  r  r   r  r  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   r   ru  r  r   r   )r   r  r  r  r   rs   rt   r[  r   rr   r   r   rm   rp   ro   rz   rq   r   r|   s                      r   r  z+BaseLLMHTTPHandler.async_video_edit_handlerX  s     >F4D!E!7$112EF$n&8&8t&LM"
 "('<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 *FF)! G 
	T 	'+"$	 	 		
	Q/44	 5  H %%'(FF%'$7 G    	Q$$q:O$PP	Qs<   C'E*D- D+'D- *E+D- -	E6E		EEsecondsc                    |r| j                  |||||||||	|
||      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs |j	                  dd       |xs i d      }|r|j                  |       |j                  d|j	                  dd       t        |            }|j                  |||||||		      \  }}|j                  |d||||d
       	 |j                  ||||
      }|j                          |j                  |||      S # t        $ r}| j                  ||      d }~ww xY w)N)r  r  r	  r  r   rs   rt   r[  r   rr   r   r   r   r   r   r   r  ro   r  r  r  r	  ro   rs   rp   r   r  r   r  r  r   )async_video_extension_handlerr   r-   r.   r   r   rp  r   r   !transform_video_extension_requestr   r   ru  "transform_video_extension_responser   r   )r   r  r  r	  r  r   rs   rt   r[  r   rr   r  r   r   r   rp   ro   rz   rq   r   r|   s                        r   video_extension_handlerz*BaseLLMHTTPHandler.video_extension_handler  s     55!&;$7-'+% 6   >FK!@ 1$n&8&8t&LM! !''<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 *KK)! L 
	T 	'+"$	 	 		
	Q(--	 . H %%'(KK%'$7 L  
  	Q$$q:O$PP	Qs   48D- -	E6E		Ec           	        K   |t        |t              s3t        t        j                  |      d|j                  dd       i      }n|}|j                  |xs |j                  dd       |xs i d      }|r|j                  |       |j                  d|j                  dd       t        |            }|j                  |||||||	      \  }}|j                  |d||||d	
       	 |j                  ||||
       d {   }|j                          |j                  |||      S 7 (# t        $ r}| j!                  ||      d }~ww xY ww)Nr   r   r   r   r  ro   r  r  r  r   r  r  r   )r   r,   r/   r   r   r   r   rp  r   r   r  r   r   ru  r  r   r   )r   r  r  r	  r  r   rs   rt   r[  r   rr   r   r   rm   rp   ro   rz   rq   r   r|   s                       r   r  z0BaseLLMHTTPHandler.async_video_extension_handler  s     >F4D!E!7$112EF$n&8&8t&LM"
 "('<<B~11)TB!'R = 

 NN=)(99#''
D9/ : 
 *KK)! L 
	T 	'+"$	 	 		
	Q/44	 5  H %%'(KK%'$7 L    	Q$$q:O$PP	Qs<   C(E+D. D,'D. +E,D. .	E7E

EEextra_queryc                     |r| j                  |||||||||	|
||      S ddl}|j                  | j                  |||||||||	|
|            S )z2
        Handler for video list requests.
        )r  r  r  video_list_provider_configr   rs   rt   r[  r  rr   r   r   r   N)r  r  r  r  r   rs   rt   r[  r  rr   r   )async_video_list_handlerasyncior  )r   r  r  r  r  r   rs   rt   r[  r  rr   r  r   r   r  s                  r   video_list_handlerz%BaseLLMHTTPHandler.video_list_handlerD  s    & 00+E$7-'+' 1    ;;--/I(;#1 +"/ +#! .  r   r  c           	      ^  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }n|}|j                  ||xs i d|      }|r|j                  |       |j                  d|j                  dd      t        |            }|j                  |||||||	      \  }}|j                  dd|||d	
       	 |j                  |||       d{   }|j                  |||      S 7 # t        $ r}| j                  ||      d}~ww xY ww)z:
        Async version of the video list handler.
        Nr   r   r   r  ro   r  ro   rs   rp   r  r  r  r  ro   rp   r   r   r  r  r   )r   r,   r/   r   r   r   r   rp  r   r   transform_video_list_requestr   transform_video_list_responser   r   )r   r  r  r  r  r   rs   rt   r[  r  rr   r   r   rm   rp   ro   rz   r   r   r|   s                       r   r  z+BaseLLMHTTPHandler.async_video_list_handlerz  s    $ >F4D!E!7$112EF$n&8&8t&LM"
 "(,AA!'R)	 B 
 NN=)->>#''
D9/ ? 
 1MM)# N 
V 	"  	 	
	/33 4  H .KK%'$7 L    	$$ : %  	s<   CD-D	 .D/D	 D-D	 		D*D%%D**D-video_delete_provider_configc
                 T  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|j                  |	|xs i d      }|r|j                  |       |j                  d|j                  dd      t        |            }|j                  ||||      \  }}|j                  dd|||d	
       	 |
j                  |||       d{   }|j                  ||      S 7 # t        $ r}| j                  ||      d}~ww xY ww)z<
        Async version of the video delete handler.
        Nr   r   r   r  ro   r  r  ro   rs   rp   )ro   rp   r  r   rz   rp   rr   rL  r   )r   r,   r/   r   r   r   r   rp  r   r   transform_video_delete_requestr   r  transform_video_delete_responser   r   )r   r  r  r   rs   rt   r[  rr   r   r   rm   rp   ro   rz   rq   r   r|   s                    r   async_video_delete_handlerz-BaseLLMHTTPHandler.async_video_delete_handler  s     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#''
D9/ A 
 1OO)	 P 
	T 	"$ 	 	
	/66 7  H 0OO%' P    	$$ < %  	s<   CD(D *D+D D(D 	D%D  D%%D(video_status_provider_configc                 |   |	r| j                  |||||||||
|
      S |
t        |
t              st        d|j	                  dd      i      }n|
}|j                  ||xs i d|      }|r|j                  |       |j                  d|j	                  dd      t        |            }|j                  ||||	      \  }}|j                  dd||||d
       	 |r|j                  |||      }n|j	                  ||      }|j                  |||      S # t        $ r}| j                  ||      d}~ww xY w)z
        Handler for video status requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        )
r  r#  r   rs   rt   r[  r   rr   r   r   Nr   r   r   r  ro   r  r  ro   rp   r  rq   r   r  rK  r  r   )async_video_status_handlerr   r-   r.   r   r   rp  r   r   'transform_video_status_retrieve_requestr   r   (transform_video_status_retrieve_responser   r   )r   r  r#  r   rs   rt   r[  r   rr   r  r   r   r   rp   ro   rz   rq   r   r|   s                      r   video_status_handlerz'BaseLLMHTTPHandler.video_status_handler  s   $ 22!-I$7-'+% 3   >FK!@ 1$n&8&8t&LM! !'.CC!'R)	 D 
 NN=)/@@#''
D9/ A 
 )PP)	 Q 
	
 	"$	 	 		
	 ,11# 2  -00# 1  -UU!) +(; V   	$$ < %  	s   =D 	D;#D66D;c           	        K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|j                  |
|xs i d|      }|r|j                  |       |j                  d|j                  dd      t        |            }|j                  ||||      \  }}|j                  dd||||d	
       	 |r|j                  |||       d{   }n|j                  ||       d{   }|j                  |||      S 7 47 # t        $ r}| j                  ||      d}~ww xY ww)z<
        Async version of the video status handler.
        Nr   r   r   r  ro   r  r  r%  r   r  rK  r  r   )r   r,   r/   r   r   r   r   rp  r   r   r'  r   r   r(  r   r   )r   r  r#  r   rs   rt   r[  r   rr   r   r   rm   rp   ro   rz   rq   r   r|   s                     r   r&  z-BaseLLMHTTPHandler.async_video_status_handler  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R)	 D 
 NN=)/@@#''
D9/ A 
 )PP)	 Q 
	
 	"$	 	 		
	 !3!8!8# "9 "  "4!7!7# "8 " 
 -UU!) +(; V   	$$ < %  	sN   CED' .D#/D' 
D%D' "E#D' %D' '	E0EEEcontainer_create_request_paramscontainer_provider_configr7   c
           
      h   |r| j                  ||||||||	      S |	t        |	t              st        d|j	                  dd       i      }
n|	}
|j                  |xs i |j	                  dd             }d|d<   |r|j                  |       |j                  |j	                  dd       t        |      	      }|j                  ||||
      }|j                  |d|||d       	 |
j                  ||||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)r  r+  r,  rs   rt   r[  rr   r   r   r   r   rp   r   r  r  ro   r  r  (container_create_optional_request_paramsrs   rp   r   r   r   r  rL  r   )async_container_create_handlerr   r-   r.   r   r   rp  r   r   "transform_container_create_requestr   r   #transform_container_create_responser   r   )r   r  r+  r,  rs   rt   r[  rr   r  r   r   rp   ro   rq   r   r|   s                   r   container_create_handlerz+BaseLLMHTTPHandler.container_create_handler  s    660O*C-'+ 7 	 	 >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 
 #5NN=) -==#''
D9/ > 
 )KK5T)	 L 
 	'+$" 	 	
	(--	 . H -PP%' Q  
  	$$ 9 %  	s   ('D 	D1D,,D1c	                   K   |t        |t              s8t        t        j                  j
                  d|j                  dd       i      }	n|}	|j                  |xs i |j                  dd             }
d|
d<   |r|
j                  |       |j                  |j                  dd       t        |            }|j                  ||||
	      }|j                  |d
|||
d       	 |	j                  ||
||       d {   }|j                  ||      S 7 # t        $ r}| j!                  ||      d }~ww xY ww)Nr   r   r   r.  r  r  ro   r  r/  r   r   r   r  rL  r   )r   r,   r/   r   r   r  r   r   rp  r   r   r2  r   r   r3  r   r   )r   r  r+  r,  rs   rt   r[  rr   r   rm   rp   ro   rq   r   r|   s                  r   r1  z1BaseLLMHTTPHandler.async_container_create_handler:  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 
 #5NN=) -==#''
D9/ > 
 )KK5T)	 L 
 	'+$" 	 	
	/44	 5  H -PP%' Q    	$$ 9 %  	s<   C%D>(D  DD D>D 	D;#D66D;;D>r6   c                 l   |
r| j                  |||||||||	|
      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs i |j	                  dd             }|r|j                  |       |j                  |j	                  dd       t        |            }|j                  |||||||      \  }}|j                  d	d	|||d
       	 |j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)
r,  rs   rt   r  r  r  r[  r  rr   r   r   r   r   r.  ro   r  r  r   r  r   r  rL  r   )async_container_list_handlerr   r-   r.   r   r   rp  r   r    transform_container_list_requestr   !transform_container_list_responser   r   )r   r,  rs   rt   r  r  r  r[  r  rr   r  r   r   rp   ro   rz   r   r   r|   s                      r   container_list_handlerz)BaseLLMHTTPHandler.container_list_handler  s    44*C-'+' 5   >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0PP)# Q 
V 	"  	 	
	(,, - H -NN%' O  
  	$$ 9 %  	s   +&D 	D3D..D3c           	        K   |
t        |
t              s8t        t        j                  j
                  d|j                  dd       i      }n|
}|j                  |xs i |j                  dd             }|r|j                  |       |j                  |j                  dd       t        |            }|j                  |||||||      \  }}|j                  dd|||d	
       	 |j                  |||       d {   }|j                  ||      S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   r   r.  ro   r  r  r   r  r   r  rL  r   )r   r,   r/   r   r   r  r   r   rp  r   r   r8  r   r9  r   r   )r   r,  rs   rt   r  r  r  r[  r  rr   r   rm   rp   ro   rz   r   r   r|   s                     r   r7  z/BaseLLMHTTPHandler.async_container_list_handler  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0PP)# Q 
V 	"  	 	
	/33 4  H -NN%' O    	$$ 9 %  	s<   C&D>)D  DD D>D 	D;#D66D;;D>container_idc
           
         |r| j                  ||||||||	      S |	t        |	t              st        d|j	                  dd       i      }
n|	}
|j                  |xs i |j	                  dd             }|r|j                  |       |j                  |j	                  dd       t        |            }|j                  ||||      \  }}|r|j                  |       |j                  d	d	||||d
       	 |
j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY wN)r<  r,  rs   rt   r[  r  rr   r   r   r   r   r.  ro   r  r<  ro   rs   rp   r   ro   rp   r   r<  r   r  rL  r   ) async_container_retrieve_handlerr   r-   r.   r   r   rp  r   r   $transform_container_retrieve_requestr   %transform_container_retrieve_responser   r   r   r<  r,  rs   rt   r[  r  rr   r  r   r   rp   ro   rz   r   r   r|   s                    r   container_retrieve_handlerz-BaseLLMHTTPHandler.container_retrieve_handler/  s    88)*C-'+' 9 	 	 >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0TT%)	 U 
V MM+& 	"  ,	 	 		
	(,, - H -RR%' S  
  	$$ 9 %  	   :&D! !	E*D==Ec	           	        K   |t        |t              s8t        t        j                  j
                  d|j                  dd       i      }	n|}	|j                  |xs i |j                  dd             }
|r|
j                  |       |j                  |j                  dd       t        |            }|j                  ||||
      \  }}|r|j                  |       |j                  dd||
||d	
       	 |	j                  ||
|       d {   }|j                  ||      S 7 # t        $ r}| j                  ||      d }~ww xY wwNr   r   r   r.  ro   r  r?  r   r@  r   r  rL  r   )r   r,   r/   r   r   r  r   r   rp  r   r   rB  r   rC  r   r   r   r<  r,  rs   rt   r[  r  rr   r   rm   rp   ro   rz   r   r   r|   s                   r   rA  z3BaseLLMHTTPHandler.async_container_retrieve_handler  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0TT%)	 U 
V MM+& 	"  ,	 	 		
	/33 4  H -RR%' S    	$$ 9 %  	<   C7E:D+ D)D+ (E)D+ +	E4EEEr8   c
           
         |r| j                  ||||||||	      S |	t        |	t              st        d|j	                  dd       i      }
n|	}
|j                  |xs i |j	                  dd             }|r|j                  |       |j                  |j	                  dd       t        |            }|j                  ||||      \  }}|r|j                  |       |j                  d	d	||||d
       	 |
j                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY wr>  )async_container_delete_handlerr   r-   r.   r   r   rp  r   r   "transform_container_delete_requestr   r  #transform_container_delete_responser   r   rD  s                    r   container_delete_handlerz+BaseLLMHTTPHandler.container_delete_handler  s    66)*C-'+' 7 	 	 >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0RR%)	 S 
V MM+& 	"  ,	 	 		
	(// 0 H -PP%' Q  
  	$$ 9 %  	rF  c	           	        K   |t        |t              s8t        t        j                  j
                  d|j                  dd       i      }	n|}	|j                  |xs i |j                  dd             }
|r|
j                  |       |j                  |j                  dd       t        |            }|j                  ||||
      \  }}|r|j                  |       |j                  dd||
||d	
       	 |	j                  ||
|       d {   }|j                  ||      S 7 # t        $ r}| j!                  ||      d }~ww xY wwrH  )r   r,   r/   r   r   r  r   r   rp  r   r   rM  r   r  rN  r   r   rI  s                   r   rL  z1BaseLLMHTTPHandler.async_container_delete_handler0  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0RR%)	 S 
V MM+& 	"  ,	 	 		
	/66 7  H -PP%' Q    	$$ 9 %  	rJ  r5   c                 p   |r| j                  |||||||||	|
|      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs i |j	                  dd             }|r|j                  |       |j                  |j	                  dd       t        |            }|j                  ||||||||	      \  }}|j                  d	d	|||d
       	 |j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)r<  r,  rs   rt   r  r  r  r[  r  rr   r   r   r   r   r.  ro   r  r<  ro   rs   rp   r  r  r  r  r   r  r   r  rL  r   )!async_container_file_list_handlerr   r-   r.   r   r   rp  r   r   %transform_container_file_list_requestr   &transform_container_file_list_responser   r   )r   r<  r,  rs   rt   r  r  r  r[  r  rr   r  r   r   rp   ro   rz   r   r   r|   s                       r   container_file_list_handlerz.BaseLLMHTTPHandler.container_file_list_handler}  s   " 99)*C-'+' :   >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0UU%)# V 	
V 	"  	 	
	(,, - H -SS%' T  
  	$$ 9 %  	s   -&D 	D5D00D5c           
        K   |t        |t              s8t        t        j                  j
                  d|j                  dd       i      }n|}|j                  |xs i |j                  dd             }|r|j                  |       |j                  |j                  dd       t        |            }|j                  ||||||||	      \  }}|j                  dd|||d	
       	 |j                  |||       d {   }|j                  ||      S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   r   r.  ro   r  rR  r   r  r   r  rL  r   )r   r,   r/   r   r   r  r   r   rp  r   r   rT  r   rU  r   r   )r   r<  r,  rs   rt   r  r  r  r[  r  rr   r   rm   rp   ro   rz   r   r   r|   s                      r   rS  z4BaseLLMHTTPHandler.async_container_file_list_handler  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 0UU%)# V 	
V 	"  	 	
	/33 4  H -SS%' T    	$$ 9 %  	s<   C'D?*D DD D?D 	D<$D77D<<D?c
           
      d   |r| j                  ||||||||	      S |	t        |	t              st        d|j	                  dd       i      }
n|	}
|j                  |xs i |j	                  dd             }|r|j                  |       |j                  |j	                  dd       t        |            }|j                  |||||      \  }}|j                  d	d	|||d
       	 |
j	                  |||      }|j                  ||      S # t        $ r}| j                  ||      d }~ww xY w)N)r<  r  r,  rs   rt   r[  rr   r   r   r   r   r.  ro   r  r<  r  ro   rs   rp   r   r  r   r  rL  r   )$async_container_file_content_handlerr   r-   r.   r   r   rp  r   r   (transform_container_file_content_requestr   )transform_container_file_content_responser   r   )r   r<  r  r,  rs   rt   r[  rr   r  r   r   rp   ro   rz   r   r   r|   s                    r   container_file_content_handlerz1BaseLLMHTTPHandler.container_file_content_handler,  s    <<)*C-'+ = 	 	 >FK!@ 1$n&8&8t&LM! !' ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 &NN%) O 
	
 	"  	 	
	(,, - H -VV%' W  
  	$$ 9 %  	s   '&D 	D/D**D/c	                 |  K   |t        |t              s8t        t        j                  j
                  d|j                  dd       i      }	n|}	|j                  |xs i |j                  dd             }
|r|
j                  |       |j                  |j                  dd       t        |            }|j                  |||||
      \  }}|j                  dd||
|d	
       	 |	j                  ||
|       d {   }|j                  ||      S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   r   r.  ro   r  rY  r   r  r   r  rL  r   )r   r,   r/   r   r   r  r   r   rp  r   r   r[  r   r\  r   r   )r   r<  r  r,  rs   rt   r[  rr   r   rm   rp   ro   rz   r   r   r|   s                   r   rZ  z7BaseLLMHTTPHandler.async_container_file_content_handler  s     >F4D!E!7$1188$n&8&8t&LM"
 "( ,@@!'R"&&y$7 A 

 NN=) -==#''
D9/ > 
 &NN%) O 
	
 	"  	 	
	/33 4  H -VV%' W    	$$ 9 %  	s<   C$D<'D >D?D D<D 	D9!D44D99D<vector_store_id#vector_store_search_optional_paramsvector_store_provider_configc           
      r  K   |t        |t              s3t        t        j                  |      d|j                  dd       i      }n|}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }t        |d      r,|j                  |||||t        |             d {   \  }}n#|j                  |||||t        |            \  }}t        |      }|j                  |xs i        |j                  ||||      \  }}|j                  dd|||d	
       |t!        j"                  |      n|}	 |j%                  ||||
       d {   }|j+                  ||      S 7 7 # t&        $ r}| j)                  ||      d }~ww xY ww)Nr   r   rp   rs   r  &atransform_search_vector_store_requestr_  r  r`  ro   ri  rs   rp   r   r~   ro   r   r   r   r   r   r   ri  )r   r,   r/   r   r   r   r   rp  r   ro   r   rV  rd  %transform_search_vector_store_requestr   r   r   r   r   r   r   &transform_search_vector_store_response)r   r_  r  r`  ra  r   rs   rt   r[  r   rr   r   r  rm   rp   ro   rz   rh  all_optional_paramsrv   r~   r   r|   s                          r   !async_vector_store_search_handlerz4BaseLLMHTTPHandler.async_vector_store_search_handler  s<     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 
 (*R
 3YY /4W!$/#N3 Z   -RR /4W!$/#N3 S  /3>.B""#F#L"M$@$M$M/%	 %N %
!! 	'3$" 	 	
 )9(@DJJ|$FV 		X/44!	 5  H ,RR + S 
 	
kX  	X$$q:V$WW	XsI   CF7	F
BF7F 7F8F <F7F 	F4F//F44F7c                    |r| j                  |||||||||	|
|      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }|j                  |||||t        |            \  }}t        |      }|j                  |xs i        |j                  ||||      \  }}|j                  dd|||d	
       |t        j                  |      n|}	 |j                  |||      }|j%                  ||      S # t         $ r}| j#                  ||      d }~ww xY w)N)r_  r  r`  ra  rs   rt   r   r[  r   rr   r   r   r   rc  r  re  rf  r   r   r   )rz   rp   rq   r   rg  )rk  r   r-   r.   r   r   rp  r   ro   r   rh  r   r   r   r   r   r   r   ri  )r   r_  r  r`  ra  r   rs   rt   r[  r   rr   r   r  r   rp   ro   rz   rh  rj  rv   r~   r   r|   s                          r   vector_store_search_handlerz.BaseLLMHTTPHandler.vector_store_search_handler5   s   " 99 /4W-I-'$7+% :   >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 
 )NN+0S +/ O 
	
 /3>.B""#F#L"M$@$M$M/%	 %N %
!! 	'3$" 	 	
 )9(@DJJ|$FV 		X(--! . H ,RR + S 
 	
  	X$$q:V$WW	Xs   /E 	E7E22E7#vector_store_create_optional_paramsc                 @  K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }|j                  ||      \  }}|j                  dd|||d       	 |j                  ||||	       d {   }|j!                  |      S 7 # t        $ r}| j                  ||
      d }~ww xY ww)Nr   r   rc  r  rn  ro   r   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   %transform_create_vector_store_requestr   r   r   r   &transform_create_vector_store_response)r   rn  ra  r   rs   rt   r[  r   rr   r   r  rm   rp   ro   rz   rh  r   r|   s                     r   !async_vector_store_create_handlerz4BaseLLMHTTPHandler.async_vector_store_create_handler   sl     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 
 )NN0S O 
	
 	'3$" 	 	
	X/44|W 5  H ,RR S 
 	
  	X$$q:V$WW	Xs<   CD	C: !C8"C: &D8C: :	DDDDc                 2   |
r| j                  |||||||||		      S |	t        |	t              st        d|j	                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }|j                  ||      \  }}|j                  dd|||d	       	 |j                  |||
      }|j                  |      S # t        $ r}| j                  ||      d }~ww xY w)N)	rn  ra  rs   rt   r   r[  r   rr   r   r   r   rc  r  rp  r   r   r   r  r   rA  )rs  r   r-   r.   r   r   rp  r   ro   r   rq  r   r   r   r   rr  )r   rn  ra  r   rs   rt   r[  r   rr   r   r  r   rp   ro   rz   rh  r   r|   s                     r   vector_store_create_handlerz.BaseLLMHTTPHandler.vector_store_create_handler   s    994W-I-'$7+% : 
 
 >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 
 )NN0S O 
	
 	'3$" 	 	
	X(--| . H ,RR S 
 	
  	X$$q:V$WW	Xs   C5 5	D>DDc
                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }
n|	}
|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }|j                  dd||d       	 |
j                  ||	       d {   }|j                  |      S 7 # t        $ r}| j                  ||
      d }~ww xY ww)Nr   r   rc  r  r  r   r  r   rK  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   r   r   r   rr  r   r_  ra  r   rs   rt   r[  r   rr   r   rm   rp   ro   rz   r   r|   s                   r   #async_vector_store_retrieve_handlerz6BaseLLMHTTPHandler.async_vector_store_retrieve_handler$!  sG     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-$" 	 	
	X/33W3MMH ,RR S 
 	
	 N 	X$$q:V$WW	Xs<   B6D9C( C&C( D&C( (	D	1DD		Dc                    |
r| j                  |||||||||		      S |	t        |	t              st        d|j	                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }|j                  dd||d	       	 |j	                  ||
      }|j                  |      S # t        $ r}| j                  ||      d }~ww xY w)N	r_  ra  rs   rt   r   r[  r   rr   r   r   r   rc  r  r  r   r  r   rK  r   rA  )rx  r   r-   r.   r   r   rp  r   ro   r   r   r   r   rr  r   r_  ra  r   rs   rt   r[  r   rr   r   r  r   rp   ro   rz   r   r|   s                    r   vector_store_retrieve_handlerz0BaseLLMHTTPHandler.vector_store_retrieve_handlerX!  se    ;; /-I-'$7+% < 
 
 >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-$" 	 	
	X(,,g,FH ,RR S 
 	
  	X$$q:V$WW	Xs   ?C$ $	D-D  Dc                 N  K   |t        |t              s3t        t        j                  |      d|j                  dd       i      }n|}|j                  |	xs i |      }|	r|j                  |	       |j                  |j                  t        |            }|}i }|||d<   |||d<   |||d<   |||d<   |j                  d	d	|||d
       	 |j                  |||       d {   }|j                         S 7 # t        $ r}| j                  ||      d }~ww xY ww)Nr   r   rc  r  r  r  r  r  r   r  r   r  r   )r   r,   r/   r   r   r   r   rp  r   ro   r   r   r   r   r   )r   r  r  r  r  ra  r   rs   rt   r[  r   rr   r   rm   rp   ro   rz   r   r   r|   s                       r   async_vector_store_list_handlerz2BaseLLMHTTPHandler.async_vector_store_list_handler!  sz     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 

 !##F7O%F8#F7O#F7O$"  	 	
	X/33 4  H }}  	X$$q:V$WW	Xs<   CD%D *C?+D /D%?D 	D"
DD""D%c                 H   |r| j                  |||||||||	|
||      S |t        |t              st        d|j	                  dd       i      }n|}|j                  |	xs i |      }|	r|j                  |	       |j                  |j                  t        |            }|}i }|||d<   |||d<   |||d<   |||d	<   |j                  d
d
|||d       	 |j	                  |||      }|j                         S # t        $ r}| j                  ||      d }~ww xY w)N)r  r  r  r  ra  rs   rt   r   r[  r   rr   r   r   r   rc  r  r  r  r  r  r   r  r   r  r   )r~  r   r-   r.   r   r   rp  r   ro   r   r   r   r   r   )r   r  r  r  r  ra  r   rs   rt   r[  r   rr   r   r  r   rp   ro   rz   r   r   r|   s                        r   vector_store_list_handlerz,BaseLLMHTTPHandler.vector_store_list_handler!  s     77-I-'$7+% 8   >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 

 !##F7O%F8#F7O#F7O$"  	 	
	X(,,gf,UH }}  	X$$q:V$WW	Xs   D   	D!	DD!#vector_store_update_optional_paramsc                   K   |
t        |
t              s3t        t        j                  |      d|j                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }t        |      }d|v r|d   ddlm}  ||d         |d<   |r|j                  |       |j                  d	d	|||d
       	 |j                  ||||	       d {   }|j#                  |      S 7 # t        $ r}| j!                  ||      d }~ww xY ww)Nr   r   rc  r  r  metadatar   add_openai_metadatar   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   litellm.utilsr  r   r   r   r   rr  )r   r_  r  ra  r   rs   rt   r[  r   rr   r   rm   rp   ro   rz   rh  r  r   r|   s                      r   !async_vector_store_update_handlerz4BaseLLMHTTPHandler.async_vector_store_update_handler-"  s     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-'+,O'P %,z*B*N9':<
;S'TL$
+'3$" 	 	
	X/44|W 5  H ,RR S 
 	
  	X$$q:V$WW	Xs<   C2E
5D& D$D& E
$D& &	E/EEE
c                    |r| j                  |||||||||	|

      S |
t        |
t              st        d|j	                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }t        |      }d|v r|d   dd	l
m}  ||d         |d<   |r|j                  |       |j                  d
d
|||d       	 |j                  |||      }|j!                  |      S # t        $ r}| j                  ||      d }~ww xY w)N)
r_  r  ra  rs   rt   r   r[  r   rr   r   r   r   rc  r  r  r  r   r  r   r   r   r  r   rA  )r  r   r-   r.   r   r   rp  r   ro   r   r  r  r   r   r   r   rr  )r   r_  r  ra  r   rs   rt   r[  r   rr   r   r  r   rp   ro   rz   rh  r  r   r|   s                       r   vector_store_update_handlerz.BaseLLMHTTPHandler.vector_store_update_handlerp"  s     99 /4W-I-'$7+% :   >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-'+,O'P %,z*B*N9':<
;S'TL$
+'3$" 	 	
	X(--| . H ,RR S 
 	
  	X$$q:V$WW	Xs   <D" "	E+D>>Ec
                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }
n|	}
|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }|j                  dd||d       	 |
j                  |||	       d {   }|j                         S 7 # t        $ r}| j                  ||
      d }~ww xY ww)Nr   r   rc  r  r  r   r  r   r  r   )r   r,   r/   r   r   r   r   rp  r   ro   r   r   r  r   r   r   rw  s                   r   !async_vector_store_delete_handlerz4BaseLLMHTTPHandler.async_vector_store_delete_handler"  sA     >F4D!E!7$112EF$n&8&8t&LM"
 "(.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-$" 	 	
	X/66' 7  H }}  	X$$q:V$WW	Xs<   B6D9C' C%C' D%C' '	D0DDDc                    |
r| j                  |||||||||		      S |	t        |	t              st        d|j	                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  t        |            }| d| }|j                  dd||d	       	 |j                  ||
      }|j                         S # t        $ r}| j                  ||      d }~ww xY w)Nrz  r   r   rc  r  r  r   r  r   rK  r   )r  r   r-   r.   r   r   rp  r   ro   r   r   r  r   r   r   r{  s                    r   vector_store_delete_handlerz.BaseLLMHTTPHandler.vector_store_delete_handler"  sU    99 /-I-'$7+% : 
 
 >FK!@ 1$n&8&8t&LM! !'.CC!'R D 
 NN=)/@@#,,/ A 

 
!O,-$" 	 	
	X(//C/IH }}  	X$$q:V$WW	Xs   ?C" "	D+C>>D)r[  r   rr   r   create_request"vector_store_files_provider_configc       
           K   |
t        |
t              s3t        t        j                  |      d|j                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|r|j                  |       |j                  |t        t        |      |      \  }}|j                  dd|||d       	 |j                  ||||		       d {   }|j%                  |      S 7 # t         $ r}| j#                  ||
      d }~ww xY ww)Nr   r   rc  ro   r_  rs   r_  r  ro   r   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   *transform_create_vector_store_file_requestr   rO   r   r   r   r   +transform_create_vector_store_file_response)r   r_  r  r  r   rs   rt   r[  r   rr   r   rm   rp   ro   request_dictrz   rh  r   r|   s                      r   &async_vector_store_file_create_handlerz9BaseLLMHTTPHandler.async_vector_store_file_create_handler9#  s     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 N+
+
 /YY+ <lK Z 
	
 	'3$" 	 	
	/44|W 5  H 2]] ^ 
 	
  	$$%G %  	s<   C4E7D( D&D( E&D( (	E	1EE		E)r[  r   rr   r   r  c                   |r2| j                  |||||||||	t        |
t              r|

      S d 
      S |
t        |
t              st	        d|j                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|r|j                  |       |j                  |t        t        |      |      \  }}|j                  dd|||d	       	 |j                  ||||	
      }|j%                  |      S # t         $ r}| j#                  ||      d }~ww xY w)N)
r_  r  r  r   rs   rt   r[  r   rr   r   r   r   rc  r  r  r   r   r   r  r   rA  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   rO   r   r   r   r   r  )r   r_  r  r  r   rs   rt   r[  r   rr   r   r  r   rp   ro   r  rz   rh  r   r|   s                       r    vector_store_file_create_handlerz3BaseLLMHTTPHandler.vector_store_file_create_handler#  s    >> /-3U$7-'+%!+F4D!Ev ?   LP ?   >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 N+
+
 /YY+ <lK Z 
	
 	'3$" 	 	
	(--|W . H 2]] ^ 
 	
  	$$%G %  	s   D< <	EEE)r[  r  rr   r   query_paramsc       
           K   |
t        |
t              s3t        t        j                  |      d|j                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|r|j                  |       |j                  |t        t        |      |      \  }}|j                  dd|||d       	 |j                  |||	       d {   }|j#                  |      S 7 # t        $ r}| j!                  ||
      d }~ww xY ww)Nr   r   rc  r  r_  r  ro   r   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   )transform_list_vector_store_files_requestr   rQ   r   r   r   *transform_list_vector_store_files_response)r   r_  r  r  r   rs   rt   r[  r  rr   r   rm   rp   ro   params_dictrz   request_paramsr   r|   s                      r   $async_vector_store_file_list_handlerz7BaseLLMHTTPHandler.async_vector_store_file_list_handler#  s     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 <({+
 /XX+<kJ Y 
	
 	'5$" 	 	
	/33 4  H 2\\ ] 
 	
  	$$%G %  	s<   C4E7D' D%D' E%D' '	E0EEE)r[  r  rr   r   r  c                   |r2| j                  |||||||||	t        |
t              r|

      S d 
      S |
t        |
t              st	        d|j                  dd       i      }n|
}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|r|j                  |       |j                  |t        t        |      |      \  }}|j                  dd|||d	       	 |j                  |||
      }|j#                  |      S # t        $ r}| j!                  ||      d }~ww xY w)N)
r_  r  r  r   rs   rt   r[  r  rr   r   r   r   rc  r  r  r   r   r   r  r   rA  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   rQ   r   r   r   r  )r   r_  r  r  r   rs   rt   r[  r  rr   r   r  r   rp   ro   r  rz   r  r   r|   s                       r   vector_store_file_list_handlerz1BaseLLMHTTPHandler.vector_store_file_list_handler$  s   " << /)3U$7-'+'!+F4D!Ev =   LP =   >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 <({+
 /XX+<kJ Y 
	
 	'5$" 	 	
	(,, - H 2\\ ] 
 	
  	$$%G %  	s   D; ;	EEE)r[  rr   r   c       	         B  K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }
n|	}
|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d       	 |
j                  |||	       d {   }|j                  |      S 7 # t        $ r}| j                  ||
      d }~ww xY wwNr   r   rc  r  r_  r  ro   r   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   ,transform_retrieve_vector_store_file_requestr   r   r   -transform_retrieve_vector_store_file_responser   r_  r  r  r   rs   rt   r[  rr   r   rm   rp   ro   rz   r  r   r|   s                    r   (async_vector_store_file_retrieve_handlerz;BaseLLMHTTPHandler.async_vector_store_file_retrieve_handlerq$  st     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 /[[+ \ 
	
 	'5$" 	 	
	/33 4  H 2__ ` 
 	
  	$$%G %  	<   CDC; "C9#C; 'D9C; ;	DDDD)r[  rr   r   r  c       
         d   |
r1| j                  ||||||||t        |	t              r|		      S d 	      S |	t        |	t              st	        d|j                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d	       	 |j                  |||
      }|j                  |      S # t        $ r}| j                  ||      d }~ww xY wN	r_  r  r  r   rs   rt   r[  rr   r   r   r   rc  r  r  r   r   r   r  r   rA  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   r   r   r  r   r_  r  r  r   rs   rt   r[  rr   r   r  r   rp   ro   rz   r  r   r|   s                     r   "vector_store_file_retrieve_handlerz5BaseLLMHTTPHandler.vector_store_file_retrieve_handler$  s    @@ /3U$7-'+!+F4D!Ev A 
 
 LP A 
 
 >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 /[[+ \ 
	
 	'5$" 	 	
	(,, - H 2__ ` 
 	
  	$$%G %  	   (D 	D/D**D/c       	         B  K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }
n|	}
|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d       	 |
j                  |||	       d {   }|j                  |      S 7 # t        $ r}| j                  ||
      d }~ww xY wwr  )r   r,   r/   r   r   r   r   rp  r   ro   r   4transform_retrieve_vector_store_file_content_requestr   r   r   5transform_retrieve_vector_store_file_content_responser  s                    r   'async_vector_store_file_content_handlerz:BaseLLMHTTPHandler.async_vector_store_file_content_handler %  st     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 /cc+ d 
	
 	'5$" 	 	
	/33 4  H 2gg h 
 	
  	$$%G %  	r  c       
         d   |
r1| j                  ||||||||t        |	t              r|		      S d 	      S |	t        |	t              st	        d|j                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d	       	 |j                  |||
      }|j                  |      S # t        $ r}| j                  ||      d }~ww xY wr  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   r   r   r  r  s                     r   !vector_store_file_content_handlerz4BaseLLMHTTPHandler.vector_store_file_content_handlerA%  s   " ?? /3U$7-'+!+F4D!Ev @ 
 
 LP @ 
 
 >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 /cc+ d 
	
 	'5$" 	 	
	(,, - H 2gg h 
 	
  	$$%G %  	r  update_requestc                  K   |t        |t              s3t        t        j                  |      d|j                  dd       i      }n|}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|	r|j                  |	       |j                  ||t        t        |      |      \  }}|j                  dd|||d       	 |j                  ||||
	       d {   }|j%                  |      S 7 # t         $ r}| j#                  ||
      d }~ww xY ww)Nr   r   rc  r  r_  r  r  ro   r   r   r   r  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   *transform_update_vector_store_file_requestr   rT   r   r   r   r   +transform_update_vector_store_file_response)r   r_  r  r  r  r   rs   rt   r[  r   rr   r   rm   rp   ro   r  rz   rh  r   r|   s                       r   &async_vector_store_file_update_handlerz9BaseLLMHTTPHandler.async_vector_store_file_update_handler%  s     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 N+
+
 /YY+ <lK	 Z 
	
 	'3$" 	 	
	/44|W 5  H 2]] ^ 
 	
  	$$%G %  	s<   C5E8D) D'D) E'D) )	E
2EE

Ec                   |r3| j                  |||||||||	|
t        |t              r|      S d       S |t        |t              st	        d|j                  dd       i      }n|}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }t        |      }|	r|j                  |	       |j                  ||t        t        |      |      \  }}|j                  dd|||d	       	 |j                  ||||

      }|j%                  |      S # t         $ r}| j#                  ||      d }~ww xY w)N)r_  r  r  r  r   rs   rt   r[  r   rr   r   r   r   rc  r  r  r   r   r   r  r   rA  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   rT   r   r   r   r   r  )r   r_  r  r  r  r   rs   rt   r[  r   rr   r   r  r   rp   ro   r  rz   rh  r   r|   s                        r    vector_store_file_update_handlerz3BaseLLMHTTPHandler.vector_store_file_update_handler%  s     >> /-3U$7-'+%!+F4D!Ev ?   LP ?   >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 N+
+
 /YY+ <lK	 Z 
	
 	'3$" 	 	
	(--|W . H 2]] ^ 
 	
  	$$%G %  	s   D> >	EEEc       	         D  K   |	t        |	t              s3t        t        j                  |      d|j                  dd       i      }
n|	}
|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d       	 |
j                  ||||	       d {   }|j!                  |      S 7 # t        $ r}| j                  ||
      d }~ww xY ww)Nr   r   rc  r  r  r   r   r   r&  r   rA  )r   r,   r/   r   r   r   r   rp  r   ro   r   *transform_delete_vector_store_file_requestr   r  r   r   +transform_delete_vector_store_file_responser  s                    r   &async_vector_store_file_delete_handlerz9BaseLLMHTTPHandler.async_vector_store_file_delete_handler1&  sv     >F4D!E!7$112EF$n&8&8t&LM"
 "(4II!'R J 
 NN=)5FF#,,+/ G 
 /YY+ Z 
	
 	'5$" 	 	
	/66 7  H 2]] ^ 
 	
  	$$%G %  	s<   CD C< #C:$C< (D :C< <	DDDD c       
         f   |
r1| j                  ||||||||t        |	t              r|		      S d 	      S |	t        |	t              st	        d|j                  dd       i      }n|	}|j                  |xs i |      }|r|j                  |       |j                  |j                  |t        |            }|j                  |||      \  }}|j                  dd|||d	       	 |j                  ||||
      }|j!                  |      S # t        $ r}| j                  ||      d }~ww xY w)Nr  r   r   rc  r  r  r   r   r   r&  r   rA  )r  r   r,   r-   r.   r   r   rp  r   ro   r   r  r   r  r   r   r  r  s                     r    vector_store_file_delete_handlerz3BaseLLMHTTPHandler.vector_store_file_delete_handlerr&  s   " >> /3U$7-'+!+F4D!Ev ? 
 
 LP ? 
 
 >FK!@ 1$n&8&8t&LM! !'4II!'R J 
 NN=)5FF#,,+/ G 
 /YY+ Z 
	
 	'5$" 	 	
	(// 0 H 2]] ^ 
 	
  	$$%G %  	s   (D 	D0D++D0contents generate_content_provider_configgenerate_content_config_dictr<  system_instructionc                    ddl m} |r2| j                  |||||||||	|
|t        |t              r|nd|||      S |t        |t
              st        d|j                  dd      i      }n|}|j                  |j                  |t        |      |      \  }}|	r|j                  |	       |j                  |||||      }|
r|j                  |
       |j                  |d	|||d
       	 |r)|j                  ||||d      } ||||||xs i ||      S |j                  ||||      }	 |j#                  |||      S # t        $ r}| j!                  ||      d}~ww xY w)z
        Handles Google GenAI generate content requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        r   )+GoogleGenAIGenerateContentStreamingIteratorN)r   r  r  r  r<  r   rs   rt   r[  r   rr   r   ru   r  r  r   r   )ro   r   rs   ru   r   r  r<  r  r  r   r   r   Tr  r   r   rt   r  r  r   rh  r  r   r:  )'litellm.google_genai.streaming_iteratorr  async_generate_content_handlerr   r,   r-   r.   r   sync_get_auth_token_and_urlro   r   rp  "transform_generate_content_requestr   r   r   r   #transform_generate_content_response)r   r   r  r  r  r<  r   rs   rt   r[  r   rr   r  r   ru   r  r  r  r   rp   ro   rq   r   r|   s                           r   generate_content_handlerz+BaseLLMHTTPHandler.generate_content_handler&  s   .	
 66!1Q-I$7-'+%!+F4D!Ev4!1#5 7  $ >FK!@ 1$n&8&8t&LM! !' -HH#,,/	 I 
	
 NN=) 0RR)E1 S 
 KK
# 	'+$" 	 	
	,11 ## 2  C% +5U%5%;(;!%  -11 ##	 2  0SS!# T 
 	
  	$$ @ %  	s   .*E E 	E$EE$c           	        K   ddl m} |t        |t              s3t	        t        j                  |      d|j                  dd      i      }n|}|j                  |t        |      ||j                         d{   \  }}|	r|j                  |	       |j                  |||||      }|
r|j                  |
       |j                  |d|||d	
       	 |r1|j                  ||||d       d{   } ||||||xs i ||      S |j                  ||||       d{   }	 |j#                  |||      S 7 7 K7 # t        $ r}| j!                  ||      d}~ww xY ww)zq
        Async version of the generate content handler.
        Uses async HTTP client to make requests.
        r   )0AsyncGoogleGenAIGenerateContentStreamingIteratorNr   r   )r   rs   ru   ro   r  r   r   r   Tr  r  r  r   r:  )r  r  r   r,   r/   r   r   r   get_auth_token_and_urlr   ro   rp  r  r   r   r   r   r  )r   r   r  r  r  r<  r   rs   rt   r[  r   rr   r   ru   r  r  r  rm   rp   ro   rq   r   r|   s                          r   r  z1BaseLLMHTTPHandler.async_generate_content_handlerF'  s    ,	
 >F4D!E!7$112EF$n&8&8t&LM"
 "( 3II/#,,	 J 
 
	
 NN=) 0RR)E1 S 
 KK
# 	'+$" 	 	
	!3!8!8 ## "9 "  H% +5U%5%;(;!%  "4!8!8 ##	 "9 "  0SS!# T 
 	
C
F$  	$$ @ %  	sg   A9E';D=<AE'E 3D?4E 
E'E #E$E (E'?E E 	E$EE$$E'voicetext_to_speech_provider_configtext_to_speech_optional_paramsc                 6   |r3| j                  |||||||||
|	t        |t              r|      S d      S |t        |t              st	        d|j                  dd      i      }n|}|j                  |j                  d      |
xs i ||j                  d            }|
r|j                  |
       |j                  ||j                  d      |      }|j                  ||||||	      }d
|v r|j                  |d
          |j                  |d|||d       	 d|v r|j                  |||d   |	      }n(d|v r|j                  |||d   |	      }nt        d      |j                  |||      S # t        $ r}| j                  ||      d}~ww xY w)z
        Handles text-to-speech requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r   r   r  r  r  r   rs   rt   r[  rr   r   r   r   r   ro   r   rp   r   ro   r  r   r   r  r   rs   rp   rp   r   r   r   	dict_bodyr  	ssml_bodyr   `No body found in request_data. Must provide one of: dict_body, ssml_body, text_body, binary_bodyr   r:  )async_text_to_speech_handlerr   r,   r-   r.   r   r   rp  r    transform_text_to_speech_requestr   r   r   r   r   !transform_text_to_speech_response)r   r   r   r  r  r  r   rs   rt   rr   r[  r   r  r   rp   ro   r~   r   r|   s                      r   text_to_speech_handlerz)BaseLLMHTTPHandler.text_to_speech_handler'  sG   , 44/M/M$7-'+!+F4D!Ev 5   LP 5   >FK!@ 1$n&8&8t&LM! !'0EE"&&y1!'R#''
3	 F 
 NN=)1BB#''
3) C 
 6VV:) W 
 $NN<	23 	'3$" 	 	
	l*,11 #%k2#	 2  ,,11 #%k2#	 2  !v  .OO!# P 
 	
  	$$ > %  	s   AE7 7	F FFc                 $  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }n|}|j                  |j                  d      |
xs i ||j                  d            }|
r|j                  |
       |j                  ||j                  d      |      }|j                  ||||||      }d	|v r|j                  |d	          |j                  |d
|||d       	 d|v r!|j                  |||d   |	       d{   }n0d|v r!|j                  |||d   |	       d{   }nt        d      |j                  |||      S 7 I7 &# t        $ r}| j                  ||      d}~ww xY ww)zo
        Async version of the text-to-speech handler.
        Uses async HTTP client to make requests.
        Nr   r   r   ro   r  r  r  rp   r   r   r   r  r  r  r   r  r   r:  )r   r,   r/   r   r   r   r   rp  r   r  r   r   r   r   r   r  )r   r   r   r  r  r  r   rs   rt   rr   r[  r   rm   rp   ro   r~   r   r|   s                     r   r  z/BaseLLMHTTPHandler.async_text_to_speech_handler+(  s    $ >F4D!E!7$112EF$n&8&8t&LM"
 "(0EE"&&y1!'R#''
3	 F 
 NN=)1BB#''
3) C 
 6VV:) W 
 $NN<	23 	'3$" 	 	
	l*!3!8!8 #%k2#	 "9 "  ,!3!8!8 #%k2#	 "9 "  !v  .OO!# P 
 	
1  	$$ > %  	sN   C<F?E, E($E, E*E, F(E, *E, ,	F5FFFrh  c                     d|vs|d   syd|v r|d= g }|d   D ]  }|j                  d|f        |j                         D ci c]  \  }}|dk7  s|| }}}||fS c c}}w )a>  
        Helper to prepare multipart/form-data request for skills API.

        Args:
            request_body: Request body containing files and other fields
            headers: Request headers

        Returns:
            Tuple of (data_dict, files_list) for multipart request, or (None, None) if no files
        r  r  zcontent-typezfiles[])appenditems)r   rh  rp   r  file_objkvrq   s           r    _prepare_skill_multipart_requestz3BaseLLMHTTPHandler._prepare_skill_multipart_request(  s     ,&l7.C W$' $W-HLL)X./ . ".!3!3!5F!5Ag1!5FU{ Gs   AArz   skills_api_provider_configr'   r>   c                    |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  |j	                  dd      d|||d       	 | j                  ||	      \  }}||j                  |||||
      }n|j                  ||||      }|j                  ||      S # t        $ r}| j                  ||      d}~ww xY w)zCreate a skill)
rz   rh  r  r   rs   rt   r[  rr   r   r   Nr   r   display_titler   r   r   rh  rp   r  r  r   rL  )async_create_skill_handlerr   r-   r.   r   r   r  r   r   r   transform_create_skill_response)r   rz   rh  r  r   rs   rt   r[  rr   r   r  r   r   rp   rq   r  r   r|   s                     r   create_skill_handlerz'BaseLLMHTTPHandler.create_skill_handler(  sp    22)+E$7-'+- 3   >FK!@ 1$n&8&8t&LM! !'%2""?B7'3" 	 	
	??)7 @ KD%  ,11W4ug 2 
 -11W< 2  *II!# J 
 	
  	$$ : %  	s    AC 	C8 C33C8c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  |j                  dd      d|||d       	 | j                  ||      \  }}||j                  |||||	       d{   }n|j                  ||||
       d{   }|j                  ||      S 7 57 # t        $ r}| j                  ||      d}~ww xY ww)zAsync create a skillNr   r   r  r   r   r   r  r  r  r   rL  )r   r,   r/   r   r   r   r   r  r   r   r   r  )r   rz   rh  r  r   rs   rt   r[  rr   r   r   rm   rp   rq   r  r   r|   s                    r   r  z-BaseLLMHTTPHandler.async_create_skill_handler(  s]     >F4D!E!7$112EF$n&8&8t&LM"
 "(%2""?B7'3" 	 	
	??)7 @ KD%  !3!8!8W4ug "9 " 
 "4!8!8W< "9 "  *II!# J 
 	

  	$$ : %  	sN   A6D91C$ *C +C$ C"	C$ D C$ "C$ $	D-D  DDr=   c                 v   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j	                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zList skills)
rz   r  r  r   rs   rt   r[  rr   r   r   Nr   r   r   r   r   r  r   rL  )	async_list_skills_handlerr   r-   r.   r   r   r   r   transform_list_skills_response)r   rz   r  r  r   rs   rt   r[  rr   r   r  r   r   rp   r   r|   s                   r   list_skills_handlerz&BaseLLMHTTPHandler.list_skills_handler8)  s    11)+E$7-'+- 2   >FK!@ 1$n&8&8t&LM! !'%2'3" 	 	
	(,, - H *HH!# I 
 	
  	$$ : %  	   0B 	B8 B33B8c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync list skillsNr   r   r   r   r   r  r   rL  )
r   r,   r/   r   r   r   r   r   r   r  )r   rz   r  r  r   rs   rt   r[  rr   r   r   rm   rp   r   r|   s                  r   r  z,BaseLLMHTTPHandler.async_list_skills_handlerw)  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2'3" 	 	
	/33 4  H *HH!# I 
 	
  	$$ : %  	<   A&B>)B  BB B>B 	B;#B66B;;B>c                 p   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j	                  ||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zGet a skill	rz   r  r   rs   rt   r[  rr   r   r   Nr   r   r   r  r   rK  r   rL  )	async_get_skill_handlerr   r-   r.   r   r   r   r   transform_get_skill_responser   rz   r  r   rs   rt   r[  rr   r   r  r   r   rp   r   r|   s                  r   get_skill_handlerz$BaseLLMHTTPHandler.get_skill_handler)  s    //+E$7-'+- 0 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(,,g,FH *FF!# G 
 	
  	$$ : %  	   .B 	B5B00B5c
                 |  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  ||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync get a skillNr   r   r   r  r   rK  r   rL  )
r   r,   r/   r   r   r   r   r   r   r  r   rz   r  r   rs   rt   r[  rr   r   r   rm   rp   r   r|   s                 r   r  z*BaseLLMHTTPHandler.async_get_skill_handler)  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/33W3MMH *FF!# G 
 	
 N 	$$ : %  	<   A%B<(B >B?B B<B 	B9!B44B99B<r<   c                 r   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zDelete a skillr  Nr   r   r   r  r   r  r   rL  )
async_delete_skill_handlerr   r-   r.   r   r   r  r   r   transform_delete_skill_responser  s                  r   delete_skill_handlerz'BaseLLMHTTPHandler.delete_skill_handler*  s    22+E$7-'+- 3 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(//' 0 H *II!# J 
 	
  	$$ : %  	   .B 	B6B11B6c
                 ~  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync delete a skillNr   r   r   r  r   r  r   rL  )r   r,   r/   r   r   r   r   r  r   r   r  r  s                 r   r  z-BaseLLMHTTPHandler.async_delete_skill_handlerK*  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/66' 7  H *II!# J 
 	
  	$$ : %  	<   A%B=(B ?B B B=B 	B:"B55B::B=evals_api_provider_configr   rf   c                    |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  |j	                  dd      d|||d       	 |j                  ||||	      }|j                  ||      S # t        $ r}| j                  ||
      d}~ww xY w)zCreate an eval
rz   rh  r  r   rs   rt   r[  rr   r   r   Nr   r   display_namer   r   r   r  r   rL  )
async_create_eval_handlerr   r-   r.   r   r   r   r   r   transform_create_eval_responser   rz   rh  r  r   rs   rt   r[  rr   r   r  r   r   rp   r   r|   s                   r   create_eval_handlerz&BaseLLMHTTPHandler.create_eval_handler~*  '    11)*C$7-'+- 2   >FK!@ 1$n&8&8t&LM! !'%2"">26'3" 	 	
	(--|W . H )GG!# H 
 	
  	$$ 9 %  	    B( (	C	1CC	c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  |j                  dd      d|||d       	 |j                  ||||       d{   }|j                  ||
      S 7 # t        $ r}| j                  ||	      d}~ww xY ww)zAsync create an evalNr   r   r  r   r   r   r  r   rL  )r   r,   r/   r   r   r   r   r   r   r   r  r   rz   rh  r  r   rs   rt   r[  rr   r   r   rm   rp   r   r|   s                  r   r  z,BaseLLMHTTPHandler.async_create_eval_handler*  s	     >F4D!E!7$112EF$n&8&8t&LM"
 "(%2""62.'3" 	 	
	/44|W 5  H )GG!# H 
 	
  	$$ 9 %  	<   A6C9B+ B)B+ C)B+ +	C4CCCrg   c                 v   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j	                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)z
List evals
rz   r  r  r   rs   rt   r[  rr   r   r   Nr   r   r   r   r   r  r   rL  )	async_list_evals_handlerr   r-   r.   r   r   r   r   transform_list_evals_responser   rz   r  r  r   rs   rt   r[  rr   r   r  r   r   rp   r   r|   s                   r   list_evals_handlerz%BaseLLMHTTPHandler.list_evals_handler*  s    00)*C$7-'+- 1   >FK!@ 1$n&8&8t&LM! !'%2'3" 	 	
	(,, - H )FF!# G 
 	
  	$$ 9 %  	r  c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync list evalsNr   r   r   r   r   r  r   rL  )
r   r,   r/   r   r   r   r   r   r   r  r   rz   r  r  r   rs   rt   r[  rr   r   r   rm   rp   r   r|   s                  r   r  z+BaseLLMHTTPHandler.async_list_evals_handler-+  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2'3" 	 	
	/33 4  H )FF!# G 
 	
  	$$ 9 %  	r  c                 p   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j	                  ||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zGet an eval	rz   r  r   rs   rt   r[  rr   r   r   Nr   r   r   r  r   rK  r   rL  )	async_get_eval_handlerr   r-   r.   r   r   r   r   transform_get_eval_responser   rz   r  r   rs   rt   r[  rr   r   r  r   r   rp   r   r|   s                  r   get_eval_handlerz#BaseLLMHTTPHandler.get_eval_handler^+  s    ..*C$7-'+- / 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(,,g,FH )DD!# E 
 	
  	$$ 9 %  	r   c
                 |  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  ||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync get an evalNr   r   r   r  r   rK  r   rL  )
r   r,   r/   r   r   r   r   r   r   r#  r   rz   r  r   rs   rt   r[  rr   r   r   rm   rp   r   r|   s                 r   r"  z)BaseLLMHTTPHandler.async_get_eval_handler+  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/33W3MMH )DD!# E 
 	
 N 	$$ 9 %  	r  c                    |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  |j	                  dd      d|||d       	 |j                  ||||	      }|j                  ||      S # t        $ r}| j                  ||
      d}~ww xY w)zUpdate an evalr  Nr   r   r  r   r   r   r  r   rL  )
async_update_eval_handlerr   r-   r.   r   r   r   r   r   transform_update_eval_responser  s                   r   update_eval_handlerz&BaseLLMHTTPHandler.update_eval_handler+  r  r  c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  |j                  dd      d|||d       	 |j                  ||||       d{   }|j                  ||
      S 7 # t        $ r}| j                  ||	      d}~ww xY ww)zAsync update an evalNr   r   r  r   r   r   r  r   rL  )r   r,   r/   r   r   r   r   r   r   r   r*  r  s                  r   r)  z,BaseLLMHTTPHandler.async_update_eval_handler,  s	     >F4D!E!7$112EF$n&8&8t&LM"
 "(%2"">26'3" 	 	
	/44|W 5  H )GG!# H 
 	
  	$$ 9 %  	r  re   c                 r   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zDelete an evalr!  Nr   r   r   r  r   r  r   rL  )
async_delete_eval_handlerr   r-   r.   r   r   r  r   r   transform_delete_eval_responser$  s                  r   delete_eval_handlerz&BaseLLMHTTPHandler.delete_eval_handler5,  s    11*C$7-'+- 2 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(//' 0 H )GG!# H 
 	
  	$$ 9 %  	r  c
                 ~  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync delete an evalNr   r   r   r  r   r  r   rL  )r   r,   r/   r   r   r   r   r  r   r   r/  r'  s                 r   r.  z,BaseLLMHTTPHandler.async_delete_eval_handlerq,  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/66' 7  H )GG!# H 
 	
  	$$ 9 %  	r
  rc   c                 t   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j                  ||i |      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zCancel an evalr!  Nr   r   r   r  r   r  r   rL  )
async_cancel_eval_handlerr   r-   r.   r   r   r   r   r   transform_cancel_eval_responser$  s                  r   cancel_eval_handlerz&BaseLLMHTTPHandler.cancel_eval_handler,  s    11*C$7-'+- 2 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(--r7 . H )GG!# H 
 	
  	$$ 9 %  	   .B 	B7B22B7c
                   K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  ||i |       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync cancel an evalNr   r   r   r  r   r  r   rL  )r   r,   r/   r   r   r   r   r   r   r   r4  r'  s                 r   r3  z,BaseLLMHTTPHandler.async_cancel_eval_handler,  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/44r7 5  H )GG!# H 
 	
  	$$ 9 %  	<   A%B>(B  BB B>B 	B;#B66B;;B>ri   c                    |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  |j	                  dd      d|||d       	 |j                  ||||	      }|j                  ||      S # t        $ r}| j                  ||
      d}~ww xY w)zCreate a runr  Nr   r   r  r   r   r   r  r   rL  )
async_create_run_handlerr   r-   r.   r   r   r   r   r   transform_create_run_responser  s                   r   create_run_handlerz%BaseLLMHTTPHandler.create_run_handler-  s'    00)*C$7-'+- 1   >FK!@ 1$n&8&8t&LM! !'%2""62.'3" 	 	
	(--|W . H )FF!# G 
 	
  	$$ 9 %  	r  c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  |j                  dd      d|||d       	 |j                  ||||       d{   }|j                  ||
      S 7 # t        $ r}| j                  ||	      d}~ww xY ww)zAsync create a runNr   r   r  r   r   r   r  r   rL  )r   r,   r/   r   r   r   r   r   r   r   r;  r  s                  r   r:  z+BaseLLMHTTPHandler.async_create_run_handlerN-  s	     >F4D!E!7$112EF$n&8&8t&LM"
 "(%2""62.'3" 	 	
	/44|W 5  H )FF!# G 
 	
  	$$ 9 %  	r  rh   c                 v   |
r| j                  |||||||||	|
      S |	t        |	t              st        d|j	                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j	                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)z	List runsr  Nr   r   r   r  r   r  r   rL  )	async_list_runs_handlerr   r-   r.   r   r   r   r   transform_list_runs_responser  s                   r   list_runs_handlerz$BaseLLMHTTPHandler.list_runs_handler-  s    //)*C$7-'+- 0   >FK!@ 1$n&8&8t&LM! !'%2"& 	 	
	(,, - H )EE!# F 
 	
  	$$ 9 %  	r  c                   K   |	t        |	t              s3t        t        j                  |      d|j                  dd      i      }n|	}|xs i }|j                  dd|||d       	 |j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync list runsNr   r   r   r  r   r  r   rL  )
r   r,   r/   r   r   r   r   r   r   r@  r  s                  r   r?  z*BaseLLMHTTPHandler.async_list_runs_handler-  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2"& 	 	
	/33 4  H )EE!# F 
 	
  	$$ 9 %  	r  c                 p   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j	                  ||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)z	Get a runr!  Nr   r   r   r  r   rK  r   rL  )	async_get_run_handlerr   r-   r.   r   r   r   r   transform_get_run_responser$  s                  r   get_run_handlerz"BaseLLMHTTPHandler.get_run_handler-  s    --*C$7-'+- . 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(,,g,FH )CC!# D 
 	
  	$$ 9 %  	r   c
                 |  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  ||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync get a runNr   r   r   r  r   rK  r   rL  )
r   r,   r/   r   r   r   r   r   r   rE  r'  s                 r   rD  z(BaseLLMHTTPHandler.async_get_run_handler).  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/33W3MMH )CC!# D 
 	
 N 	$$ 9 %  	r  rd   c                 t   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j                  ||i |      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zCancel a runr!  Nr   r   r   r  r   r  r   rL  )
async_cancel_run_handlerr   r-   r.   r   r   r   r   r   transform_cancel_run_responser$  s                  r   cancel_run_handlerz%BaseLLMHTTPHandler.cancel_run_handlerV.  s    00*C$7-'+- 1 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(--r7 . H )FF!# G 
 	
  	$$ 9 %  	r6  c
                   K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  ||i |       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync cancel a runNr   r   r   r  r   r  r   rL  )r   r,   r/   r   r   r   r   r   r   r   rJ  r'  s                 r   rI  z+BaseLLMHTTPHandler.async_cancel_run_handler.  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/44r7 5  H )FF!# G 
 	
  	$$ 9 %  	r8  rj   c                 r   |	r| j                  |||||||||
	      S |t        |t              st        d|j	                  dd      i      }n|}|xs i }|j                  dd||d       	 |j                  |||      }|j                  ||
      S # t        $ r}| j                  ||	      d}~ww xY w)zDelete a runr!  Nr   r   r   r  r   r  r   rL  )
async_delete_run_handlerr   r-   r.   r   r   r  r   r   transform_delete_run_responser$  s                  r   delete_run_handlerz%BaseLLMHTTPHandler.delete_run_handler.  s    00*C$7-'+- 1 
 
 >FK!@ 1$n&8&8t&LM! !'%2" 	 	
	(//' 0 H )FF!# G 
 	
  	$$ 9 %  	r  c
                 ~  K   |t        |t              s3t        t        j                  |      d|j                  dd      i      }
n|}
|xs i }|j                  dd||d       	 |
j                  |||       d{   }|j                  ||	      S 7 # t        $ r}| j                  ||      d}~ww xY ww)
zAsync delete a runNr   r   r   r  r   r  r   rL  )r   r,   r/   r   r   r   r   r  r   r   rO  r'  s                 r   rN  z+BaseLLMHTTPHandler.async_delete_run_handler.  s      >F4D!E!7$112EF$n&8&8t&LM"
 "(%2" 	 	
	/66' 7  H )FF!# G 
 	
  	$$ 9 %  	r
  )FN)NNFNN)FFNNNNN)FNF)FNNN)NNFN)NNN)FNNNN)NFNNN)NNNN)NFNN)NNNNFN)NNNFN)NNNNFFNN)NNNNFNN)NNNNNFN)NNNNNN)NNNN   r  NNNFN)
NNNNrR  r  NNNN)r  )FNNr  )NNNNN)NNNFFN)NNNFFNN)NNNFNN)NX  FN)NrS  N)NNNNNrS  FN)NNNNNrS  N)NNrS  FN)NNrS  N)NNNNF)NNNFNFNN)NNF)r  
__module____qualname__r,   r   rO  r   r   r  r   Timeoutr  boolr
   r  Responser   r-   r   r\   listr   r   r   r   r   r   r   Headersr   r   rJ   r  r   r   r#   rF   r  r
  rK   r   r  rM   r  intr   r%  r$  r    r5  r8  r!   r<  rA  r@  r   r%   r&   rS  rM  r   rH   r;   r   r  r  rD   r$   rE   r0   r  r  rG   r  r  r  r  r	   r  r  tupler  r@   r   rC   r  r  r  r  r  r  r  r  r  r  r  r  r$  r!  r.  r+  r6  r3  r  rx  r   r   r   r   r)   r*   r   r   r+   r(   r'   r   r   r"   r  r  r  r  r[   r  r  r  r  rY   r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r"  r)  r&  r4  r1  r:  r7  rE  rA  rO  rL  rV  rS  r]  rZ  rW   rX   rk  rm  rU   rV   rs  ru  rx  r|  r~  r  r  r  r  r  rO   rS   r  r  rQ   rR   r  r  r  r  rN   r  r  rT   r  r  rP   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r"  r+  r)  r0  r.  r5  r3  r<  r:  rA  r?  rF  rD  rK  rI  rP  rN  r  r   r   rl   rl      sKw    ,0:,: $: 	:
 : : uemm+,: : ': : #5/: 
:L ,0:&: $: 	:
 : : uemm+,: : ': : #5/: 
:V "&-1,048'GR GR $GR 	GR
 GR GR uemm+,GR GR &GR 'GR GR GR GR GR #GR  )*!GR" #GR$ #5/%GR& !1'GRl "'!!%,0AE0448'k
k
 k
 3-	k

 !k
 &k
 'k
 k
 uemm+,k
 k
 k
 k
 k
 #k
  $sCx.)!k
" {,<<=>#k
$ "*-%k
& !1'k
v "(,!K9#K9 K9 	K9
 K9 #5/K9 K9 K9 K9 K9 K9 uemm+,K9 K9 %K9  !K9" 
sDy	#K9t "-1$(,0!77 7 	7
 !7 7 $7 uemm+,7 '7 7 7 7 7 )*7 D>7  #5/!7L "-1$(,0!L3L3 !L3 $	L3
 L3 L3 L3 L3 'L3 uemm+,L3 L3 L3 L3 )*L3 D>L3  #5/!L3" 
sEMM!	"#L3\ $ 	
 
< "&AE%*,0i
i
 i
 	i

 !i
 'i
 3-i
 i
 i
 *i
 #i
 {,<<=>i
 TNi
 $sCx.)i
 
i
n "&9=AE+
+
 +
 	+

 +
 !+
 -+
 *+
 '+
 +
 +
 #+
 %u}} 456+
 {,<<=>+
 
+
l  ,0!%"&AEV
V
 !V
 '	V

 *V
 !%V
 %u}} 456V
 'V
 V
 $sCx.)V
 #V
 3-V
 {,<<=>V
 
V
D "&9=AE%
%
 %
 !	%

 *%
 '%
 '%
 %
 %
 #%
 %u}} 456%
 {,<<=>%
 
%
NB2B2 B2 	B2
 B2 'B2 #B2 3-B2 $sCx.)B2 6B2 
tS%eT 12HTNB	CB2H
5
 
 ..	

 .
 '
 
 #
 

8 BF$,0BF48#W
W
 W
 	W

 W
 .W
 W
 W
 'W
 #W
 3-W
 !W
 {,<<=>W
 W
 $sCx.)W
  "">?!W
" !1#W
$ 
$iS:O0O&PP	Q%W
L BF,0BF48!I
I
 I
 	I

 I
 .I
 I
 I
 'I
 #I
 3-I
 !I
 {,<<=>I
 $sCx.)I
 "">?I
  !1!I
" 
#I
VB1B1 sCx.B1 	B1
 'B1 #B1 3-B1 $sCx.)B1 'B1 B1 
tCH~sDcND8	9B1HB1B1 sCx.B1 	B1
 'B1 #B1 3-B1 $sCx.)B1 'B1 B1 
tCH~sDcND8	9B1H
&
 
 ..	

 '
 

0 BF,037)-K
K
 sCx.K
 	K

 uemm+,K
 'K
 #K
 3-K
 !K
 {,<<=>K
 K
 $sCx.)K
 "-0K
 !K
 
{Ic3&;<<	=K
n BF,037)->
>
 sCx.>
 	>

 uemm+,>
 '>
 #>
 3->
 !>
 {,<<=>>
 $sCx.)>
 "-0>
 !>
 
>
R BF,06:_
S$s)^$_
 _
 uemm+,	_

 '_
 #_
 3-_
 !_
 {,<<=>_
 _
 $sCx.)_
 ""23_
 
~yc>)ABB	C_
T BF,06:W
S$s)^$W
 W
 uemm+,	W

 'W
 #W
 3-W
 !W
 {,<<=>W
 $sCx.)W
 ""23W
 
W
D .226!%"&!&+/yRyR t*yR -H	yR
 59yR !yR -yR 'yR )*yR  S#X/yR #yR 3-yR yR c3h(yR 
(-7	8yRJ BF!%"&!&+/&Y&Y t*&Y -H	&Y
 59&Y !&Y &Y -&Y '&Y {,<<=>&Y #&Y 3-&Y &Y c3h(&Y 
!#sE";]"JKKL	N
&Yb 37/39=AE!5948!i
i
 S,,-i
 (>	i

 /3i
 !i
 -i
 'i
  S#X/i
 T#s(^,i
 %u}} 456i
 {,<<=>i
 i
 i
 #4S>2i
  !1!i
" 
)e02SSTT	
	
#i
h 37/39=AE!5948R
R
 S,,-R
 (>	R

 /3R
 !R
 -R
 'R
  S#X/R
 T#s(^,R
 %u}} 456R
 {,<<=>R
 R
 #4S>2R
 !1R
  
#%FF	G!R
v 37/39=AE48J
J
 (>J
 -	J

 'J
 &c]J
  S#X/J
 T#s(^,J
 %u}} 456J
 {,<<=>J
 J
 !1J
 
J
f 37/39=AE48R
R
 (>R
 -	R

 'R
 &c]R
  S#X/R
 T#s(^,R
 %u}} 456R
 {,<<=>R
 R
 !1R
 
#YsC9M/M%NN	OR
t .226/39=AE48P
P
 (>P
 -	P

 'P
 &c]P
  S#X/P
 T#s(^,P
 %u}} 456P
 {,<<=>P
 P
 !1P
 
#YsC9M/M%NN	OP
p .226/39=AE48I
I
 (>I
 -	I

 'I
 &c]I
  S#X/I
 T#s(^,I
 %u}} 456I
 {,<<=>I
 !1I
 
I
h .2# $'+(.269=AE48!U
U
 (>U
 -	U

 'U
 &c]U
 }U
 U
 $s)$U
 U
 }%U
  S#X/U
 %u}} 456U
 {,<<=>U
 U
  !1!U
" 
tYsC~..	/#U
z .2# $'+(.269=AE48I
I
 (>I
 -	I

 'I
 &c]I
 }I
 I
 $s)$I
 I
 }%I
  S#X/I
 %u}} 456I
 {,<<=>I
 !1I
  
!I
^ +	".." !" 	"
 
x}htn,	-"R  AE9=w
+w
 w
 )	w

 w
 3-w
 #w
 'w
 w
 {,<<=>w
 %u}} 456w
 
35E+E!FF	Gw
B BF9=R
"5#t5N#NOR
 R
 )	R

 R
 R
 'R
 {,<<=>R
 %u}} 456R
z  EI9=#s
/s
 s
 -	s

 s
 3-s
 #s
 )s
 s
 @ABs
 %u}} 456s
 }s
 
~yc>)ABB	Cs
|  EI9=#W
W
 W
 -	W

 W
 3-W
 #W
 )W
 W
 @ABW
 %u}} 456W
 }W
 
~yc>)ABB	CW
B FJ9=<@#T
"5#t#34T
 T
 -	T

 T
 T
 )T
 @ABT
 %u}} 456T
 $$89T
 }T
| FJ9="&#S
"5#t#34S
 S
 -	S

 S
 3-S
 )S
 @ABS
 %u}} 456S
 3-S
 }S
x 37/39=AE48R
R
 (>R
 -	R

 'R
 &c]R
  S#X/R
 T#s(^,R
 %u}} 456R
 {,<<=>R
 R
 !1R
 
#YsC9M/M%NN	OR
v 37/39=AE48J
J
 (>J
 -	J

 'J
 &c]J
  S#X/J
 T#s(^,J
 %u}} 456J
 {,<<=>J
 J
 !1J
 
J
j 37/39=AE48Z
Z
 S../Z
 (>	Z

 /3Z
 -Z
 'Z
 &c]Z
  S#X/Z
 T#s(^,Z
 %u}} 456Z
 {,<<=>Z
 Z
 !1Z
 
#YsC9M/M%NN	OZ
J 37/39=AE48P
P
 S../P
 (>	P

 /3P
 -P
 'P
 &c]P
  S#X/P
 T#s(^,P
 %u}} 456P
 {,<<=>P
 P
 !1P
 
P
r  AE9=B
B
 )B
 	B

 B
 'B
 B
 {,<<=>B
 %u}} 456B
 
35E+E!FF	GB
V BF9=:
:
 ):
 	:

 :
 ':
 {,<<=>:
 %u}} 456:
 
:
F  AE9=B
B
 )B
 	B

 B
 'B
 B
 {,<<=>B
 %u}} 456B
 
}iS-(?@@	AB
V BF9=:
:
 ):
 	:

 :
 ':
 {,<<=>:
 %u}} 456:
 
:
F  AE9=B
#B
 )B
 	B

 B
 'B
 B
 {,<<=>B
 %u}} 456B
 
t$%yc4@P;Q1Q'RR	SB
V BF9=:
#:
 ):
 	:

 :
 ':
 {,<<=>:
 %u}} 456:
 
	:
F  AE9=D
2D
 )D
 	D

 D
 'D
 D
 {,<<=>D
 %u}} 456D
 
$iS:V0V&WW
D
Z BF9=:
2:
 ):
 	:

 :
 ':
 {,<<=>:
 %u}} 456:
 
&:
x  	
 
tTz	oo o t*	o
 -Jo 59o )o o !o o 
#obhh h t*	h
 h )h h !h h 
#hT6
6
 "%!&0'"#!# 
6
~ #'!% $#'+/59RR R '	R
 ,R R 3-R #R R %R $C=R #4S>2Rv *.#26AE%)CC C 38n	C
 'C uemm+,C "#C }C  S#X/C {,<<=>C c]C 
CX *.#3726AE%)TT "T 	T
 'T uemm+,T "#T }T !c3h0T  S#X/T {,<<=>T c]T 
Tx #'!%#'+/59-1vv v '	v
 (00F'Gv 3-v #v %v $C=v #4S>2v &c]v vF 37/3AE!59!r
r
 r
 	r

 %8r
 -1r
 !r
 -r
 'r
 uemm+,r
  S#X/r
 T#s(^,r
 {,<<=>r
 r
 r
  #4S>2!r
" 
}iS-(?@A	B#r
~ 37/3AE!59^
^
 ^
 	^

 %8^
 -1^
 !^
 -^
 '^
 uemm+,^
  S#X/^
 T#s(^,^
 {,<<=>^
 ^
 #4S>2^
  
!^
T 37/3AE!59!%!  +D	
 37 !  ' uemm+,  S#X/ T#s(^, {,<<=>   #4S>2  #!" 
}iS-(?@A	B#V 37/3AE!59!%ll l +D	l
 37l !l l 'l uemm+,l  S#X/l T#s(^,l {,<<=>l l #4S>2l #l  
!lr 37/3AE!59!%!z
z
 z
 +:	z

 37z
 !z
 -z
 'z
 uemm+,z
  S#X/z
 T#s(^,z
 {,<<=>z
 z
 z
 #4S>2z
  #!z
" 
{Ic3&;<=	>#z
L 37/3AE!59!%d
d
 d
 +<	d

 37d
 !d
 -d
 'd
 uemm+,d
  S#X/d
 T#s(^,d
 {,<<=>d
 d
 #4S>2d
 #d
  
!d
^ 37!%AE!%ZZ (7Z !	Z
 -Z 'Z uemm+,Z  S#X/Z #Z {,<<=>Z Z #Z 
uiS%00	1ZH 37!%AE!%LL (7L !	L
 -L 'L uemm+,L  S#X/L #L {,<<=>L #L 
Ll 37/3#'!%bb b &5	b
 !b  S#X/b T#s(^,b %b b #bX 37/3#'!%PP P &5	P
 !P  S#X/P T#s(^,P %P #Pt 37#'!%SQSQ SQ  /	SQ
 !SQ  S#X/SQ %SQ SQ #SQz 37#'!%EQEQ EQ  /	EQ
 !EQ  S#X/EQ %EQ #EQ\ 37#'!%DQDQ  /DQ !	DQ  S#X/DQ %DQ DQ #DQZ 37#'!%9Q9Q  /9Q !	9Q  S#X/9Q %9Q #9QF 37/3#'!%UQUQ UQ  /	UQ
 !UQ  S#X/UQ T#s(^,UQ %UQ UQ #UQ~ 37/3#'!%FQFQ FQ  /	FQ
 !FQ  S#X/FQ T#s(^,FQ %FQ #FQb 37/3#'!%XQXQ XQ 	XQ
  /XQ !XQ  S#X/XQ T#s(^,XQ %XQ XQ #XQF 37/3#'!%HQHQ HQ 	HQ
  /HQ !HQ  S#X/HQ T#s(^,HQ %HQ #HQf 3704#'!%4}4 }4 }	4 !4  S#X/4 d38n-4 %4 4 #4~ 3704#'!%Q}Q }Q }	Q
 %4Q !Q  S#X/Q d38n-Q %Q #Qt 37#'!%II '6I !	I  S#X/I %I #Id 37/3#'!%kk '6k !	k  S#X/k T#s(^,k %k k #kh 37/3#'!%YY '6Y !	Y  S#X/Y T#s(^,Y %Y #YF 37/2AEWW *.W $9	W
 -W )W  S#X/W uemm+,W W {,<<=>W 
 )C6G,G"HH	IW@ 37/2AEJJ *.J $9	J
 -J )J  S#X/J uemm+,J {,<<=>J 
Jb  $##2604/2AEZ#8Z -Z )	Z
 }Z }Z }Z  S#X/Z d38n-Z uemm+,Z Z {,<<=>Z 
&	#s<S2S(TT	UZB  $##2604/2AEK#8K -K )	K
 }K }K }K  S#X/K d38n-K uemm+,K {,<<=>K 
!Kf 3704/2AEXX $9X -	X
 )X  S#X/X d38n-X uemm+,X X {,<<=>X 
 )C6G,G"HH	IX@ 3704/2AEKK $9K -	K
 )K  S#X/K d38n-K uemm+,K {,<<=>K 
Kf 3704/2AEXX $9X -	X
 )X  S#X/X d38n-X uemm+,X X {,<<=>X 
&	#s<S2S(TT	UX@ 3704/2AEKK $9K -	K
 )K  S#X/K d38n-K uemm+,K {,<<=>K 
!Kf  $##2604/2AE^^ $9^ -	^
 )^ }^ }^ }^  S#X/^ d38n-^ uemm+,^ ^ {,<<=>^ 
#YsC9T/T%UU
^L  $##2604/2AEMM $9M -	M
 )M }M }M }M  S#X/M d38n-M uemm+,M {,<<=>M 
%Ml 37/2AEVV V $9	V
 -V )V  S#X/V uemm+,V V {,<<=>V 
uiS%00	1V~ 37/2AEJJ J $9	J
 -J )J  S#X/J uemm+,J {,<<=>J 
Jl 37/39=AEb
b
 S$s)^$b
 .T	b

 '<b
 !b
 -b
 'b
  S#X/b
 T#s(^,b
 %u}} 456b
 {,<<=>b
 b
 
#b
Z 37/39=AEc
c
 S$s)^$c
 .T	c

 '<c
 !c
 -c
 'c
  S#X/c
 T#s(^,c
 %u}} 456c
 {,<<=>c
 c
 
!9S#7P-P#QQ
c
X 37/39=AE<
-S<
 '<<
 !	<

 -<
 '<
  S#X/<
 T#s(^,<
 %u}} 456<
 {,<<=><
 <
 
#<
J 37/39=AEJ
-SJ
 '<J
 !	J

 -J
 'J
  S#X/J
 T#s(^,J
 %u}} 456J
 {,<<=>J
 J
 
!9S#7P-P#QQ
J
f 37/39=AE2
2
 '<2
 !	2

 -2
 '2
  S#X/2
 T#s(^,2
 %u}} 4562
 {,<<=>2
 
#2
v 37/39=AEA
A
 '<A
 !	A

 -A
 'A
  S#X/A
 T#s(^,A
 %u}} 456A
 {,<<=>A
 A
 
!9S#7P-P#QQ
A
Z 37/39=AE@}@ @ }	@
 }@ '<@ !@ -@ '@  S#X/@ T#s(^,@ %u}} 456@ {,<<=>@X 37/39=AEN}N N }	N
 }N '<N !N -N 'N  S#X/N T#s(^,N %u}} 456N {,<<=>N Np 37/39=AEA
A
 .TA
 '<	A

 !A
 -A
 'A
  S#X/A
 T#s(^,A
 %u}} 456A
 {,<<=>A
 
#A
V 37/39=AEQ
Q
 .TQ
 '<	Q

 !Q
 -Q
 'Q
  S#X/Q
 T#s(^,Q
 %u}} 456Q
 {,<<=>Q
 Q
 
!9S#7P-P#QQ
Q
t 37/39=AE22 '<2 !	2
 -2 '2  S#X/2 T#s(^,2 %u}} 4562 {,<<=>2v 37/39=AE== '<= !	=
 -= '=  S#X/= T#s(^,= %u}} 456= {,<<=>= =V 37/39=AEE
 E
 5	E

 -GE
 !E
 -E
 'E
  S#X/E
 T#s(^,E
 %u}} 456E
 {,<<=>E
 
E
` 37/39=AES
 S
 5	S

 -GS
 !S
 -S
 'S
  S#X/S
 T#s(^,S
 %u}} 456S
 {,<<=>S
 S
 
$iS:O0O&PP	QS
| 37049=AED
 D
 5	D

 -GD
 !D
 -D
 'D
  S#X/D
 d38n-D
 %u}} 456D
 {,<<=>D
 
%D
^ 37049=AET
 T
 5	T

 -GT
 !T
 -T
 'T
  S#X/T
 d38n-T
 %u}} 456T
 {,<<=>T
 T
 
#YsC9T/T%UU
T
~ 379=AE?
 ?
 	?

 -G?
 !?
 -?
 '?
  S#X/?
 %u}} 456?
 {,<<=>?
 
?
T 379=AEL
 L
 	L

 -GL
 !L
 -L
 'L
  S#X/L
 %u}} 456L
 {,<<=>L
 L
 
$iS:O0O&PP	QL
n 379=AE?
 ?
 	?

 -G?
 !?
 -?
 '?
  S#X/?
 %u}} 456?
 {,<<=>?
 
(?
T 379=AEO
 O
 	O

 -GO
 !O
 -O
 'O
  S#X/O
 %u}} 456O
 {,<<=>O
 O
 
&#s::;	=
O
v 37/39=AEF
 F
 	F

 5F
 -GF
 !F
 -F
 'F
  S#X/F
 T#s(^,F
 %u}} 456F
 {,<<=>F
 
F
d 37/39=AEU
 U
 	U

 5U
 -GU
 !U
 -U
 'U
  S#X/U
 T#s(^,U
 %u}} 456U
 {,<<=>U
 U
 
$iS:O0O&PP	QU
@ 379=AE?
 ?
 	?

 -G?
 !?
 -?
 '?
  S#X/?
 %u}} 456?
 {,<<=>?
 
'?
T 379=AEO
 O
 	O

 -GO
 !O
 -O
 'O
  S#X/O
 %u}} 456O
 {,<<=>O
 O
 
%#s99:	<
O
| 37/39=AE59,0#~
~
 ~
 +O	~

 '+~
 ~
 !~
 -~
 '~
  S#X/~
 T#s(^,~
 %u}} 456~
 ~
 {,<<=>~
 ~
  #4S>2!~
" %SM#~
$ 
%~
T 37/39=-159,0!k
k
 k
 +O	k

 '+k
 k
 !k
 -k
 'k
  S#X/k
 T#s(^,k
 %u}} 456k
 )*k
 k
 #4S>2k
  %SM!k
" 
#k
v 37AEs
s
 s
 }	s

 )?s
 )-s
 !s
 s
 's
 uemm+,s
  S#X/s
 {,<<=>s
 s
 
$#s889	;
s
@ 37AEa
a
 a
 }	a

 )?a
 )-a
 !a
 a
 'a
 uemm+,a
  S#X/a
 {,<<=>a
 
&a
N  
x~x~-	.	P 379=AE48H
H
 H
 %:	H

 !H
 -H
 'H
  S#X/H
 %u}} 456H
 {,<<=>H
 H
 !1H
 
w	#sG"344	5H
d 379=AE48:
:
 :
 %:	:

 !:
 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 !1:
 
:
H 379=AE48=
=
 =
 %:	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
#YsC9M/M%NN	O=
N 379=AE48/
/
 /
 %:	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
p 379=AE488
8
 %:8
 !	8

 -8
 '8
  S#X/8
 %u}} 4568
 {,<<=>8
 8
 !18
 
w	#sG"344	58
B 379=AE48+
+
 %:+
 !	+

 -+
 '+
  S#X/+
 %u}} 456+
 {,<<=>+
 !1+
 
+
h 379=AE48:
:
 %::
 !	:

 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 :
 !1:
 
$iS:O0O&PP	Q:
F 379=AE48-
-
 %:-
 !	-

 --
 '-
  S#X/-
 %u}} 456-
 {,<<=>-
 !1-
 
-
v 379=AE48=
=
 =
 $8	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
vyc6!122	3=
N 379=AE48/
/
 /
 $8	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
r 379=AE48=
=
 =
 $8	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
"Ic38K.K$LL	M=
N 379=AE48/
/
 /
 $8	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
p 379=AE488
8
 $88
 !	8

 -8
 '8
  S#X/8
 %u}} 4568
 {,<<=>8
 8
 !18
 
vyc6!122	38
B 379=AE48+
+
 $8+
 !	+

 -+
 '+
  S#X/+
 %u}} 456+
 {,<<=>+
 !1+
 
+
j 379=AE48=
=
 =
 $8	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
vyc6!122	3=
N 379=AE48/
/
 /
 $8	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
p 379=AE48:
:
 $8:
 !	:

 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 :
 !1:
 
#YsC9M/M%NN	O:
F 379=AE48-
-
 $8-
 !	-

 --
 '-
  S#X/-
 %u}} 456-
 {,<<=>-
 !1-
 
-
l 379=AE48:
:
 $8:
 !	:

 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 :
 !1:
 
#YsC9M/M%NN	O:
F 379=AE48-
-
 $8-
 !	-

 --
 '-
  S#X/-
 %u}} 456-
 {,<<=>-
 !1-
 
-
v 379=AE48=
=
 =
 $8	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
uiS%00	1=
N 379=AE48/
/
 /
 $8	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
r 379=AE48=
=
 =
 $8	=

 !=
 -=
 '=
  S#X/=
 %u}} 456=
 {,<<=>=
 =
 !1=
 
!9S#7I-I#JJ	K=
N 379=AE48/
/
 /
 $8	/

 !/
 -/
 '/
  S#X//
 %u}} 456/
 {,<<=>/
 !1/
 
/
p 379=AE488
8
 $88
 !	8

 -8
 '8
  S#X/8
 %u}} 4568
 {,<<=>8
 8
 !18
 
uiS%00	18
B 379=AE48+
+
 $8+
 !	+

 -+
 '+
  S#X/+
 %u}} 456+
 {,<<=>+
 !1+
 
+
h 379=AE48:
:
 $8:
 !	:

 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 :
 !1:
 
"Ic38K.K$LL	M:
F 379=AE48-
-
 $8-
 !	-

 --
 '-
  S#X/-
 %u}} 456-
 {,<<=>-
 !1-
 
-
l 379=AE48:
:
 $8:
 !	:

 -:
 ':
  S#X/:
 %u}} 456:
 {,<<=>:
 :
 !1:
 
"Ic38K.K$LL	M:
F 379=AE48-
-
 $8-
 !	-

 --
 '-
  S#X/-
 %u}} 456-
 {,<<=>-
 !1-
 
-
r   rl   )r   rk  rH  r   r   r   r   r   r   r	   r
   r   r   r   r   openai.types.file_deletedr   r   litellm.litellm_core_utilslitellm.typeslitellm.types.utilsrB  r   &litellm.anthropic_beta_headers_managerr   litellm.constantsr   -litellm.litellm_core_utils.realtime_streamingr   7litellm.llms.base_llm.anthropic_messages.transformationr   r  r   rX  r   ,litellm.llms.base_llm.batches.transformationr   r]  r   /litellm.llms.base_llm.containers.transformationr   .litellm.llms.base_llm.embedding.transformationr   *litellm.llms.base_llm.evals.transformationr   *litellm.llms.base_llm.files.transformationr   1litellm.llms.base_llm.google_genai.transformationr   /litellm.llms.base_llm.image_edit.transformationr   5litellm.llms.base_llm.image_generation.transformationr   r1  r    r!   -litellm.llms.base_llm.realtime.transformationr"   +litellm.llms.base_llm.rerank.transformationr#   .litellm.llms.base_llm.responses.transformationr$   +litellm.llms.base_llm.search.transformationr%   r&   +litellm.llms.base_llm.skills.transformationr'   3litellm.llms.base_llm.text_to_speech.transformationr(   1litellm.llms.base_llm.vector_store.transformationr)   7litellm.llms.base_llm.vector_store_files.transformationr*   +litellm.llms.base_llm.videos.transformationr+   &litellm.llms.custom_httpx.http_handlerr,   r-   r.   r/   r  r0   r1   r2   r3   r4   litellm.types.containers.mainr5   r6   r7   r8   litellm.types.filesr9   rJ  r;   #litellm.types.llms.anthropic_skillsr<   r=   r>   litellm.types.llms.openair?   r@   rA   rB   rC   rD   rE   litellm.types.rerankrF   litellm.types.responses.mainrG   litellm.types.routerrH   rI   rJ   rK   rL   rM    litellm.types.vector_store_filesrN   rO   rP   rQ   rR   rS   rT   litellm.types.vector_storesrU   rV   rW   rX   litellm.types.videos.mainrY   r  rZ   r[   r\   r]   http_handlerr_   aiohttpr`   *litellm.litellm_core_utils.litellm_loggingra   _LiteLLMLoggingObj0litellm.llms.base_llm.passthrough.transformationrb   litellm.types.llms.openai_evalsrc   rd   re   rf   rg   rh   ri   rj   r  rl   r  r   r   <module>r     sQ    
     1  !   + T G K K J @ O N I F P P L H Q X K V S H    8 
   0 = 5     2  :%XV	 	 	 +Qz
 Qz
r   