Ë
    uPêj
  ã                   ó€   — d Z ddlZddlm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  G d„ d	e«      Z G d
„ de«      Zy)zY
Heroku Chat Completions API

this is OpenAI compatible - no translation needed / occurs
é    N)Ú	Coroutine)ÚAnyÚLiteralÚoverload)Ú3handle_messages_with_content_list_to_str_conversion)ÚOpenAIGPTConfig)ÚAllMessageValuesc                   ó   — e Zd Zy)ÚHerokuErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/heroku/chat/transformation.pyr   r      s   „ Ør   r   c                   ó@  ‡ — e Zd Zedee   deded   dee	e	ee   f   fd„«       Z
e	 ddee   deded   dee   fd„«       Z
	 ddee   dededee   ee	e	ee   f   z  fˆ fd	„Z
d
edz  dedz  deedz  edz  f   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ˆ xZS )ÚHerokuChatConfigÚmessagesÚmodelÚis_asyncTÚreturnc                  ó   — y ©Nr   ©Úselfr   r   r   s       r   Ú_transform_messagesz$HerokuChatConfig._transform_messages   s   € ð 7:r   Fc                  ó   — y r   r   r   s       r   r   z$HerokuChatConfig._transform_messages   s   € ð "%r   c                 óf   •— t        |«      }|rt        ‰| �	  ||d¬«      S t        ‰| �	  ||d¬«      S )z¬
        Heroku does not support content in list format.
        See: https://devcenter.heroku.com/articles/heroku-inference-api-v1-chat-completions#content-object
        T)r   r   r   F)r   Úsuperr   )r   r   r   r   Ú	__class__s       €r   r   z$HerokuChatConfig._transform_messages%   sC   ø€ ô GÀxÓPˆÙÜ‘7Ñ.¸ÈÐX\Ð.Ó]Ð]ä‘7Ñ.¸ÈÐX]Ð.Ó^Ð^r   Úapi_baseNÚapi_keyc                 ón   — |xs t        j                  d«      }|xs t        j                  d«      }||fS )NÚHEROKU_API_BASEÚHEROKU_API_KEY)ÚosÚgetenv)r   r!   r"   s      r   Ú$_get_openai_compatible_provider_infoz5HerokuChatConfig._get_openai_compatible_provider_info2   s7   € ð Ò;œrŸy™yÐ):Ó;ˆØÒ8œRŸY™YÐ'7Ó8ˆà˜Ð Ð r   Úoptional_paramsÚlitellm_paramsÚstreamc                 óv   — | j                  ||«      \  }}|st        d«      ‚|j                  d«      s|› d�}|S )NzaNo api base was set. Please provide an api_base, or set the HEROKU_API_BASE environment variable.z/v1/chat/completions)r(   r   Úendswith)r   r!   r"   r   r)   r*   r+   Ú_s           r   Úget_complete_urlz!HerokuChatConfig.get_complete_url:   sP   € ð ×?Ñ?ÀÈ'ÓR‰ˆ�!áÜØsóð ð × Ñ Ð!7Ô8Ø"˜Ð#7Ð8ˆHàˆr   )Fr   )r   r   r   r   Úlistr	   Ústrr   r   r   r   ÚboolÚtupler(   Údictr/   Ú__classcell__)r    s   @r   r   r      s…  ø„ Øð:ØÐ-Ñ.ð:Ø7:ð:ØFMÈdÁmð:à	�3˜˜TÐ"2Ñ3Ð3Ñ	4ò:ó ð:ð ð
 $)ñ	%àÐ'Ñ(ð%ð ð%ð ˜%‘.ð	%ð
 
ÐÑ	ò%ó ð%ð NSñ_ØÐ-Ñ.ð_Ø7:ð_ØFJð_à	ÐÑ	 )¨C°°dÐ;KÑ6LÐ,LÑ"MÑ	Mõ_ð!Ø˜d™
ð!Ø-0°4©Zð!à	ˆs�T‰z˜3 ™:Ð%Ñ	&ó!ð #ñà˜‘*ðð �t‘ðð ð	ð
 ðð ðð �t‘ðð 
÷r   r   )Ú__doc__r&   Úcollections.abcr   Útypingr   r   r   Ú8litellm.litellm_core_utils.prompt_templates.common_utilsr   Ú+litellm.llms.openai.chat.gpt_transformationr   Úlitellm.types.llms.openair	   Ú	Exceptionr   r   r   r   r   ú<module>r=      s>   ðñó 
Ý %ß )Ñ )õõ HÝ 6ô	�)ô 	ô6�õ 6r   