Ë
    uPêjî  ã                   óf   — d Z ddlmZ ddlmZ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y	)
z\
Sambanova Chat Completions API

this is OpenAI compatible - no translation needed / occurs
é    )Ú	Coroutine)ÚAnyÚFinalÚLiteralÚoverload©Ú3handle_messages_with_content_list_to_str_conversion)ÚOpenAIGPTConfig)ÚAllMessageValuesc                   óf  ‡ — e Zd ZU dZdZedz  ed<   dZedz  ed<   dZedz  ed<   dZ	edz  ed<   dZ
eez  dz  ed<   dZedz  ed<   dZedz  ed	<   dZedz  ed
<   dZedz  ed<   dZedz  ed<   	 	 	 	 	 	 	 	 	 	 ddedz  dedz  dedz  dedz  d	edz  dedz  dedz  dedz  d
edz  dedz  ddfd„Zeˆ fd„«       Zdedefd„Zdededededef
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d„Zˆ xZ S )ÚSambanovaConfigzb
    Reference: https://docs.sambanova.ai/cloud/api-reference/

    Below are the parameters:
    NÚ
max_tokensÚtemperatureÚtop_pÚtop_kÚstopÚstreamÚstream_optionsÚtool_choiceÚresponse_formatÚtoolsÚreturnc                 ó¤   — t        «       j                  «       }|j                  «       D ]%  \  }}|dk7  sŒ|€Œt        | j                  ||«       Œ' y )NÚself)ÚlocalsÚcopyÚitemsÚsetattrÚ	__class__)r   r   r   r   r   r   r   r   r   r   r   Úlocals_ÚkeyÚvalues                 ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/sambanova/chat.pyÚ__init__zSambanovaConfig.__init__#   sF   € ô  ›Ÿ™›ˆØ!Ÿ-™-›/ò 	4‰JˆC�Ø�f‹} Ñ!2Ü˜Ÿ™¨¨UÕ3ñ	4ó    c                 ó    •— t         ‰| �  «       S ©N)ÚsuperÚ
get_config)Úclsr   s    €r#   r)   zSambanovaConfig.get_config5   s   ø€ ä‰wÑ!Ó#Ð#r%   Úmodelc                 ó”   — ddl m} g d¢} ||d¬«      r3|j                  d«       |j                  d«       |j                  d«       |S )	zF
        Get the supported OpenAI params for the given model

        r   )Úsupports_function_calling)	Úmax_completion_tokensr   r   r   r   r   r   r   r   Ú	sambanova)Úcustom_llm_providerr   r   Úparallel_tool_calls)Úlitellm.utilsr-   Úappend)r   r+   r-   Úparamss       r#   Úget_supported_openai_paramsz+SambanovaConfig.get_supported_openai_params9   sD   € õ
 	<ò

ˆñ % UÀÕLØ�M‰M˜'Ô"Ø�M‰M˜-Ô(Ø�M‰MÐ/Ô0àˆr%   Únon_default_paramsÚoptional_paramsÚdrop_paramsc                 ó„   — | j                  |¬«      }|j                  «       D ]  \  }}|dk(  r||d<   Œ||v sŒ|||<   Œ |S )z?
        map max_completion_tokens param to max_tokens
        )r+   r.   r   )r5   r   )r   r6   r7   r+   r8   Úsupported_openai_paramsÚparamr"   s           r#   Úmap_openai_paramsz!SambanovaConfig.map_openai_paramsS   sc   € ð *.×)IÑ)IÐPUÐ)IÓ)VÐØ.×4Ñ4Ó6ò 	/‰LˆE�5ØÐ/Ò/Ø05� Ò-ØÐ1Ò1Ø).� Ò&ð		/ð
 Ðr%   ÚmessagesÚis_asyncTc                  ó   — y r'   © ©r   r=   r+   r>   s       r#   Ú_transform_messagesz#SambanovaConfig._transform_messagese   s   € ð 7:r%   Fc                  ó   — y r'   r@   rA   s       r#   rB   z#SambanovaConfig._transform_messagesj   s   € ð "%r%   c                 ó:   ‡— ˆfd„}|r |«       S t        ‰«      Š‰S )zî
        Transform messages to handle content list conversion.

        SambaNova API doesn't support content as a list - only string content.
        This converts content lists like [{"type": "text", "text": "..."}] to strings.
        c               “   ó"   •K  — t        ‰ «      S ­wr'   r   )r=   s   €r#   Ú_async_transformz=SambanovaConfig._transform_messages.<locals>._async_transform|   s   øè ø€ ÜFÀxÓPÐPùs   ƒr   )r   r=   r+   r>   rF   s    `   r#   rB   z#SambanovaConfig._transform_messagesr   s&   ø€ ô	Qñ Ù#Ó%Ð%ÜFÀxÓPˆØˆr%   )
NNNNNNNNNN)F)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintÚ__annotations__r   r   r   r   ÚstrÚlistr   Úboolr   Údictr   r   r   Úfloatr$   Úclassmethodr)   r5   r<   r   r   r   r   r   rB   Ú__classcell__)r   s   @r#   r   r      sž  ø… ñð "€J��d‘
Ó!Ø"€K��t‘Ó"Ø€Eˆ3�‰:ÓØ€Eˆ3�‰:ÓØ"€Dˆ#�‰*�tÑ
Ó"Ø€FˆD�4‰KÓØ"&€N�D˜4‘KÓ&Ø"€K��t‘Ó"Ø#'€O�T˜D‘[Ó'Ø€Eˆ4�$‰;Óð "&Ø'+ØØ"Ø&*Ø$(Ø"Ø Ø"&Ø!ñ4à˜$‘Jð4ð  ™ð4ð �D‰jð	4ð
 �t‘ð4ð ˜t™ð4ð ˜T‘\ð4ð �t‰|ð4ð �T‰zð4ð ˜4‘Zð4ð �d‰{ð4ð 
ó4ð$ ó$ó ð$ð°ð ¸ó ð4à ðð ðð ð	ð
 ðð 
óð$ ð:ØÐ-Ñ.ð:Ø7:ð:ØFMÈdÁmð:à	�3˜˜TÐ"2Ñ3Ð3Ñ	4ò:ó ð:ð ð
 $)ñ	%àÐ'Ñ(ð%ð ð%ð ˜%‘.ð	%ð
 
ÐÑ	ò%ó ð%ð NSñØÐ-Ñ.ðØ7:ðØFJðà	ÐÑ	 )¨C°°dÐ;KÑ6LÐ,LÑ"MÑ	M÷r%   r   N)rJ   Úcollections.abcr   Útypingr   r   r   r   Ú8litellm.litellm_core_utils.prompt_templates.common_utilsr	   Ú+litellm.llms.openai.chat.gpt_transformationr
   Úlitellm.types.llms.openair   r   r@   r%   r#   ú<module>rY      s1   ðñõ &ß 0Ó 0õõ HÝ 6ôq�oõ qr%   