Ë
    uPêjG
  ã                   óJ   — d Z ddlmZ ddlZddlmZ ddlmZ  G d„ de«      Zy)zÊ
Tencent Anthropic-compatible messages transformation config.

Tencent TokenHub exposes an Anthropic-compatible Messages API endpoint
alongside its standard OpenAI-compatible chat completions endpoint.
é    )ÚAnyN)ÚAnthropicMessagesConfig©Úget_secret_strc                   ó  ‡ — e Zd ZdZededz  fd„«       Zdefd„Ze	ddedz  dedz  fd„«       Z
e	d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eedz  f   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 )ÚTencentAnthropicMessagesConfigzÿ
    Tencent TokenHub exposes an Anthropic-compatible Messages API.

    Unlike the chat completions endpoint (which uses /v1), the Anthropic
    endpoint may use a different base URL. Configure via
    TENCENT_ANTHROPIC_API_BASE or TENCENT_API_BASE.
    ÚreturnNc                  ó   — y)NÚtencent© ©Úselfs    úq/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/tencent/messages/transformation.pyÚcustom_llm_providerz2TencentAnthropicMessagesConfig.custom_llm_provider   s   € àó    c                  ó   — y)NTr   r   s    r   Úshould_strip_billing_metadataz<TencentAnthropicMessagesConfig.should_strip_billing_metadata   s   € Ør   Úapi_keyc                 óD   — | xs t        d«      xs t        j                  S )NÚTENCENT_API_KEY)r   Úlitellmr   ©r   s    r   Úget_api_keyz*TencentAnthropicMessagesConfig.get_api_key!   s   € àÒNœ.Ð):Ó;ÒN¼w¿¹ÐNr   Úapi_basec                 óB   — | xs t        d«      xs t        d«      xs dS )NÚTENCENT_ANTHROPIC_API_BASEÚTENCENT_API_BASEz*https://tokenhub-intl.tencentcloudmaas.comr   ©r   s    r   Úget_api_basez+TencentAnthropicMessagesConfig.get_api_base%   s2   € ð ò <ÜÐ:Ó;ò<äÐ0Ó1ò<ð <ð		
r   ÚheadersÚmodelÚmessagesÚoptional_paramsÚlitellm_paramsc           
      óP   •— t         ‰| �  |||||| j                  |¬«      |¬«      S )Nr   )r    r!   r"   r#   r$   r   r   )ÚsuperÚ'validate_anthropic_messages_environmentr   )	r   r    r!   r"   r#   r$   r   r   Ú	__class__s	           €r   r'   zFTencentAnthropicMessagesConfig.validate_anthropic_messages_environment.   s?   ø€ ô ‰wÑ>ØØØØ+Ø)Ø×$Ñ$¨WÐ$Ó5Øð ?ó 
ð 	
r   Ústreamc                 óö   — | j                  |¬«      j                  d«      }|j                  d«      r|S |j                  d«      r|d t        d«        }n |j                  d«      r|d t        d«        }|› d�S )Nr   ú/z/v1/messagesz/v1/chat/completionsz/v1)r   ÚrstripÚendswithÚlen)r   r   r   r!   r#   r$   r)   Úbase_urls           r   Úget_complete_urlz/TencentAnthropicMessagesConfig.get_complete_urlB   s‡   € ð ×$Ñ$¨hÐ$Ó7×>Ñ>¸sÓCˆà×Ñ˜^Ô,ØˆOà×ÑÐ3Ô4ØÐ >¤3Ð'=Ó#>Ð">Ð?‰HØ×Ñ˜uÔ%Ø ¤3 u£: +Ð.ˆHà�˜<Ð(Ð(r   )N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚpropertyÚstrr   Úboolr   Ústaticmethodr   r   ÚdictÚlistr   Útupler'   r0   Ú__classcell__)r(   s   @r   r   r      sV  ø„ ñð ð S¨4¡Zò ó ðð¨tó ð ñO˜S 4™Zð O°3¸±:ò Oó ðOð ñ
˜s T™zð 
°Sò 
ó ð
ð #Ø#ñ
àð
ð ð
ð �s‘)ð	
ð
 ð
ð ð
ð �t‘ð
ð ˜‘*ð
ð 
ˆt�S˜4‘ZÐÑ	 õ
ð6 #ñ)à˜‘*ð)ð �t‘ð)ð ð	)ð
 ð)ð ð)ð �t‘ð)ð 
÷)r   r   )	r4   Útypingr   r   ÚHlitellm.llms.anthropic.experimental_pass_through.messages.transformationr   Úlitellm.secret_managers.mainr   r   r   r   r   ú<module>r@      s+   ðñõ ã õõ 8ôD)Ð%<õ D)r   