Ë
    uPêj…   ã                   ó˜   — d Z ddlmZ ddlmZ ddlZddlmZmZ ddl	Z	ddl
mZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ  G d„ d«      Zy)z!
OpenAI Image Variations Handler
é    )ÚCallable)ÚFinalN)ÚAsyncOpenAIÚOpenAI)Ú	FileTypesÚImageResponseÚLlmProviders)ÚProviderConfigManageré   )ÚBaseImageVariationConfig)ÚLiteLLMLoggingObjé   )ÚOpenAIErrorc                    ó  — e Zd Zdedz  defd„Zdedz  dedefd„Zdeded	edz  dedz  d
edededz  de	dz  de
dededededededef d„Z	 	 	 	 	 ddededededz  dede	dz  dedededededz  d	edz  dedz  defd„Zy)ÚOpenAIImageVariationsHandlerÚclientNÚinit_client_paramsc                 ó(   — |€t        di |¤Ž}|S |}|S ©N© )r   ©Úselfr   r   Úopenai_clients       úq/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/handler.pyÚget_sync_clientz,OpenAIImageVariationsHandler.get_sync_client   s0   € ð
 ˆ>Ü"ñ Ø$ñˆMð
 Ðð #ˆMØÐó    Úreturnc                 ó(   — |€t        di |¤Ž}|S |}|S r   )r   r   s       r   Úget_async_clientz-OpenAIImageVariationsHandler.get_async_client"   s.   € Øˆ>Ü'ñ Ø$ñˆMð
 Ðð #ˆMØÐr   Úapi_keyÚapi_baseÚorganizationÚdataÚheadersÚmodelÚtimeoutÚmax_retriesÚlogging_objÚmodel_responseÚoptional_paramsÚlitellm_paramsÚimageÚprovider_configc              ƒ   ó¤  K  — 	 ||t         j                  ||	|dœ}| j                  ||¬«      } |j                  j                  j
                  di |¤Žƒ d {  –—† }|j                  «       }|j                  «       }|
j                  ||||dœ¬«       |j                  |t        di |¤Žt        j                  dt        j                  dd¬«      ¬	«      |
||||d |¬
«
      S 7 Œ‰# t        $ ra}t        |dd«      }t        |dd «      }t        |dt!        |«      «      }t        |dd «      }|€|rt        |dd «      }t#        |||¬«      ‚d }~ww xY w­w)N©r    Úbase_urlÚhttp_clientr&   r'   r"   ©r   r   ©r$   r!   ©r    Úoriginal_responseÚadditional_argséÈ   ÚGETúhttps://litellm.ai©ÚmethodÚurl©Ústatus_codeÚrequest©
r%   r)   Úraw_responser(   Úrequest_datar,   r*   r+   Úencodingr    r>   éô  r$   ÚtextÚresponse©r>   Úmessager$   r   )ÚlitellmÚclient_sessionr   ÚimagesÚwith_raw_responseÚcreate_variationÚparseÚ
model_dumpÚ	post_callÚ"transform_response_image_variationr   ÚhttpxÚResponseÚRequestÚ	ExceptionÚgetattrÚstrr   )r   r    r!   r"   r   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   rA   rF   Úresponse_jsonÚer>   Úerror_headersÚ
error_textÚerror_responses                            r   Úasync_image_variationsz3OpenAIImageVariationsHandler.async_image_variations+   s‚  è ø€ ð$1	bà"Ø$Ü&×5Ñ5Ø"Ø*Ø ,ñ)Ðð ×*Ñ*°&ÐM_Ð*Ó`ˆFà(X¨¯©×(GÑ(G×(XÑ(XÑ(`Ð[_Ñ(`×"`ˆLØ*×0Ñ0Ó2ˆHØ#+×#6Ñ#6Ó#8ˆMð ×!Ñ!ØØ"/à&Ø (ñ!ð "ô ð #×EÑEØÜ,Ñ=¨}Ñ=Ü"Ÿ^™^Ø #Ü!ŸM™M°Ð<PÔQôð (Ø!ØØ /Ø-ØØð Fó ð ð #aùô< ò 	bÜ!(¨¨M¸3Ó!?ˆKÜ# A y°$Ó7ˆMÜ '¨¨6´3°q³6Ó :ˆJÜ$+¨A¨z¸4Ó$@ˆNØÐ$©Ü '¨¸	À4Ó H�Ü¨+¸zÐS`ÔaÐaûð	büs=   ‚E„AC# ÁC!ÁBC# Ã EÃ!C# Ã#	EÃ,AEÅEÅEÚcustom_llm_providerÚprint_verbosec                 ó0  — 	 t        j                  |xs dt        j                  ¬«      }|€t	        d|› d�«      ‚|	j                  dd«      }|j                  |||	|xs i ¬«      }|j                  d«      }|st	        d	|› �«      ‚|j                  d||||d
œ¬«       |
j                  dd«      r$| j                  |||xs i |||||||||||	|
¬«      S ||t        j                  |||dœ}| j                  ||¬«      } |j                  j                  j                  di |¤Ž}|j!                  «       }|j#                  «       }|j%                  ||||dœ¬«       |j'                  |t)        di |¤Žt+        j,                  dt+        j.                  dd¬«      ¬«      ||||	|
d |¬«
      S # t0        $ ra}t3        |dd«      }t3        |dd «      }t3        |dt5        |«      «      }t3        |dd «      }|€|rt3        |dd «      }t7        |||¬«      ‚d }~ww xY w) NÚ )r%   Úproviderz$image variation provider not found: ú.r'   r   )r%   r,   r*   r$   r#   z9data field is required, for openai image variations. Got=)r$   r!   Úcomplete_input_dict)Úinputr    r6   Ú
async_callF)r!   r#   r$   r)   r    r(   r%   r&   r'   r"   r   r-   r,   r*   r+   r/   r2   r3   r4   r7   r8   r9   r:   r=   r@   r>   rD   r$   rE   rF   rG   r   )r
   Ú#get_provider_image_variation_configr	   ÚOPENAIÚ
ValueErrorÚpopÚ!transform_request_image_variationÚgetÚpre_callr]   rI   rJ   r   rK   rL   rM   rN   rO   rP   rQ   r   rR   rS   rT   rU   rV   rW   r   )r   r)   r    r!   r%   r,   r&   r^   r(   r*   r+   r_   Ú	logger_fnr   r"   r$   r-   r'   r#   Ú	json_datar   rA   rF   rX   rY   r>   rZ   r[   r\   s                                r   Úimage_variationsz-OpenAIImageVariationsHandler.image_variationsp   s›  € ð$a	bÜ%:×%^Ñ%^Ø’k˜rÜ%×,Ñ,ô&ˆOð
 Ð&Ü Ð#GÐH[ÐG\Ð\]Ð!^Ó_Ð_à!0×!4Ñ!4°]ÀAÓ!FˆKà)×KÑKØØØ /Øš 2ð	 Ló ˆDð  $Ÿx™x¨Ó/ˆIÙÜ Ð#\Ð]aÐ\bÐ!cÓdÐdà× Ñ ØØà&Ø (Ø+/ñ!ð !ô ð ×!Ñ! ,°Ô6Ø×2Ñ2Ø%Ø"Ø#šM rØ#1Ø#Ø +ØØ#Ø +Ø!-Ø!Ø$3ØØ$3Ø#1ð 3ó ð ð& #Ø$Ü&×5Ñ5Ø"Ø*Ø ,ñ)Ðð ×)Ñ)°ÐL^Ð)Ó_ˆFà"R &§-¡-×"AÑ"A×"RÑ"RÑ"_ÐU^Ñ"_ˆLØ*×0Ñ0Ó2ˆHØ#+×#6Ñ#6Ó#8ˆMð ×!Ñ!ØØ"/à&Ø (ñ!ð "ô ð #×EÑEØÜ,Ñ=¨}Ñ=Ü"Ÿ^™^Ø #Ü!ŸM™M°Ð<PÔQôð (Ø&ØØ /Ø-ØØð Fó ð øô ò 	bÜ!(¨¨M¸3Ó!?ˆKÜ# A y°$Ó7ˆMÜ '¨¨6´3°q³6Ó :ˆJÜ$+¨A¨z¸4Ó$@ˆNØÐ$©Ü '¨¸	À4Ó H�Ü¨+¸zÐS`ÔaÐaûð	bús    ‚CF+ ÃCF+ Æ+	HÆ4AHÈH)NNNNN)Ú__name__Ú
__module__Ú__qualname__r   Údictr   r   r   rW   ÚfloatÚintr   r   r   r   r]   r   rp   r   r   r   r   r      sæ  „ ðà˜‘ðð !óð {°TÑ'9ð Ètð ÐXcó ðCbàðCbð ðCbð ˜D‘jð	Cbð
 ˜dÑ"ðCbð ðCbð ðCbð �T‰zðCbð ˜‘ðCbð ðCbð 'ðCbð &ðCbð ðCbð ðCbð ðCbð  2ð!Cbð" 
ó#Cbðb *.ØØØ#'Ø#ñ!sbà%ðsbð ðsbð ð	sbð
 �T‰zðsbð ðsbð ˜‘ðsbð !ðsbð 'ðsbð ðsbð ðsbð   $‘ðsbð ˜D‘jðsbð  ˜‘ð!sbð" 
ô#sbr   r   )Ú__doc__Úcollections.abcr   Útypingr   rR   Úopenair   r   rI   Úlitellm.types.utilsr   r   r	   Úlitellm.utilsr
   Ú(base_llm.image_variations.transformationr   Úcustom_httpx.llm_http_handlerr   Úcommon_utilsr   r   r   r   r   ú<module>r€      s;   ðñõ %Ý ã ß &ã ß FÑ FÝ /å PÝ >Ý &÷Obò Obr   