
    j                     r    d Z ddlmZ ddlZddlmZ  G d de      Zddee   defd	Zdd
edee	   de	fdZ
y)z.
Common utilities for Volcengine LLM provider
    )OptionalN)BaseLLMExceptionc                   N     e Zd ZdZ	 ddededeej                     f fdZ	 xZ
S )VolcEngineErrorz@
    Custom exception class for Volcengine provider errors.
    status_codemessageheadersc                     || _         || _        |xs t        j                         | _        t
        |   ||t        | j                               y )N)r   r   r	   )r   r   httpxHeadersr	   super__init__dict)selfr   r   r	   	__class__s       }/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/llms/volcengine/common_utils.pyr   zVolcEngineError.__init__   sH     '1%--/#Wd4<<>P 	 	
    N)__name__
__module____qualname____doc__intstrr   r   r   r   __classcell__)r   s   @r   r   r      s:    
 RV

),
7?7N
 
r   r   api_basereturnc                     | r| S y)z
    Get the base URL for Volcengine API calls.

    Args:
        api_base: Optional custom API base URL

    Returns:
        The base URL to use for API calls
    z!https://ark.cn-beijing.volces.com )r   s    r   get_volcengine_base_urlr       s     .r   api_keyextra_headersc                 <    dd|  d}|r|j                  |       |S )z
    Get headers for Volcengine API calls.

    Args:
        api_key: The API key for authentication
        extra_headers: Optional additional headers

    Returns:
        Dictionary of headers
    zapplication/jsonzBearer )zContent-TypeAuthorization)update)r!   r"   r	   s      r   get_volcengine_headersr&   +   s.     +"7),G
 }%Nr   r   )r   typingr   r   )litellm.llms.base_llm.chat.transformationr   r   r   r    r   r&   r   r   r   <module>r)      sX      F
& 
 /hsm /s /C  RV r   