Ë
    uPêjx  ã                   óœ   — d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZ erd dlZd dlmZ eZneZ G d	„ d
e«      Zy)é    )ÚTYPE_CHECKINGÚAnyÚFinalN)ÚBaseImageGenerationConfig)Úget_secret_str)ÚAllMessageValuesÚ#OpenAIImageGenerationOptionalParams)Ú#RecraftImageGenerationRequestParams)ÚImageObjectÚImageResponse)ÚLoggingc                   óP  — e Zd ZU dZeed<   dZeed<   dedee   fd„Z	de
d	e
ded
ede
f
d„Z	 ddedz  dedz  ded	e
de
dedz  defd„Z	 	 d de
dedee   d	e
de
dedz  dedz  de
fd„Zdeded	e
de
de
de
fd„Z	 	 d dedej$                  dedede
d	e
de
dddedz  dedz  defd„Zy)!ÚRecraftImageGenerationConfigzhttps://external.api.recraft.aiÚDEFAULT_BASE_URLzv1/images/generationsÚIMAGE_GENERATION_ENDPOINTÚmodelÚreturnc                 ó
   — g d¢S )z<
        https://www.recraft.ai/docs#generate-image
        )ÚnÚresponse_formatÚsizeÚstyle© )Úselfr   s     úy/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/recraft/image_generation/transformation.pyÚget_supported_openai_paramsz8RecraftImageGenerationConfig.get_supported_openai_params   s
   € ò 9Ð8ó    Únon_default_paramsÚoptional_paramsÚdrop_paramsc           
      óˆ   — | j                  |«      }|D ]+  }||vsŒ||v r	||   ||<   Œ|rŒt        d|› d|› d|› d�«      ‚ |S )Nz
Parameter z is not supported for model z. Supported parameters are z6. Set drop_params=True to drop unsupported parameters.)r   Ú
ValueError)r   r   r   r   r    Úsupported_paramsÚks          r   Úmap_openai_paramsz.RecraftImageGenerationConfig.map_openai_params$   sƒ   € ð #'×"BÑ"BÀ5Ó"IÐØ#ò 		ˆAØ˜Ò'ØÐ(Ñ(Ø);¸AÑ)>�O AÒ&Ù Øä$Ø$ Q CÐ'CÀEÀ7ÐJeÐfvÐewð  xnð  oóð ð		ð Ðr   NÚapi_baseÚapi_keyÚlitellm_paramsÚstreamc                 ó„   — |xs t        d«      xs | j                  }|j                  d«      }|› d| j                  › �}|S )zi
        Get the complete url for the request

        Some providers need `model` in `api_base`
        ÚRECRAFT_API_BASEú/)r   r   Úrstripr   )r   r&   r'   r   r   r(   r)   Úcomplete_urls           r   Úget_complete_urlz-RecraftImageGenerationConfig.get_complete_url9   sL   € ð %Òc¬Ð7IÓ(JÒcÈd×NcÑNcˆà#×*Ñ*¨3Ó/ˆØ&˜ q¨×)GÑ)GÐ(HÐIˆØÐr   ÚheadersÚmessagesc                 óN   — |xs t        d«      }|st        d«      ‚d|› �|d<   |S )NÚRECRAFT_API_KEYzRECRAFT_API_KEY is not setzBearer ÚAuthorization)r   r"   )	r   r0   r   r1   r   r(   r'   r&   Úfinal_api_keys	            r   Úvalidate_environmentz1RecraftImageGenerationConfig.validate_environmentM   s9   € ð ,3Ò+W´nÐEVÓ6WˆÙÜÐ9Ó:Ð:à%,¨]¨OÐ#<ˆ�Ñ Øˆr   Úpromptc                 ó4   — t        d||dœ|¤Ž}t        |«      S )z™
        Transform the image generation request to the recraft image generation request body

        https://www.recraft.ai/docs#generate-image
        )r7   r   r   )r
   Údict)r   r   r7   r   r(   r0   Ú&recratft_image_generation_request_bodys          r   Ú"transform_image_generation_requestz?RecraftImageGenerationConfig.transform_image_generation_request^   s4   € ô 0ð ØØñð "ñð 	/ô Ð:Ó;Ð;r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_dataÚencodingztiktoken.Encoding | NoneÚ	json_modec           
      óf  — 	 |j                  «       }|j
                  sg |_        |d   D ]H  }|j
                  j                  t        |j                  dd«      |j                  dd«      ¬«      «       ŒJ |S # t        $ r0}| j                  d|› �|j                  |j                  ¬«      ‚d}~ww xY w)z‹
        Transform the image generation response to the litellm image response

        https://www.recraft.ai/docs#generate-image
        z.Error transforming image generation response: )Úerror_messageÚstatus_coder0   NÚdataÚurlÚb64_json)rF   rG   )	ÚjsonÚ	ExceptionÚget_error_classrD   r0   rE   Úappendr   Úget)r   r   r<   r=   r>   r?   r   r(   r@   r'   rA   Úresponse_dataÚeÚ
image_datas                 r   Ú#transform_image_generation_responsez@RecraftImageGenerationConfig.transform_image_generation_responset   sÂ   € ð$	Ø#/×#4Ñ#4Ó#6ˆMð ×"Ò"Ø"$ˆNÔà'¨Ñ/ò 	ˆJØ×Ñ×&Ñ&ÜØ"Ÿ™ u¨dÓ3Ø'Ÿ^™^¨J¸Ó=ôõð	ð Ðøô# ò 	Ø×&Ñ&Ø NÈqÈcÐRØ(×4Ñ4Ø$×,Ñ,ð 'ó ð ûð	ús   ‚A7 Á7	B0Â +B+Â+B0)N)NN)Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚ__annotations__r   Úlistr	   r   r9   Úboolr%   r/   r   r6   r;   ÚhttpxÚResponser   ÚLiteLLMLoggingObjrP   r   r   r   r   r      sî  … Ø=Ð�cÓ=Ø%<Ð˜sÓ<ð9°ð 9¸Ð>aÑ9bó 9ðà ðð ðð ð	ð
 ðð 
óð8 #ñà˜‘*ðð �t‘ðð ð	ð
 ðð ðð �t‘ðð 
óð6 #Ø#ñàðð ðð Ð'Ñ(ð	ð
 ðð ðð �t‘ðð ˜‘*ðð 
óð"<àð<ð ð<ð ð	<ð
 ð<ð ð<ð 
ó<ð@ #Ø!%ñ%àð%ð —n‘nð%ð &ð	%ð
 'ð%ð ð%ð ð%ð ð%ð -ð%ð �t‘ð%ð ˜$‘;ð%ð 
ô%r   r   )Útypingr   r   r   rX   Ú5litellm.llms.base_llm.image_generation.transformationr   Úlitellm.secret_managers.mainr   Úlitellm.types.llms.openair   r	   Úlitellm.types.llms.recraftr
   Úlitellm.types.utilsr   r   ÚtiktokenÚ*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjrZ   r   r   r   r   ú<module>rd      sJ   ðß ,Ñ ,ã õõ 8÷õ Kß :áÛåXà*ÑàÐôÐ#<õ r   