o
    ưi                     @   sl   d Z ddlmZ ddlZddlmZ G dd deZddee defd	d
Zddedee	 de	fddZ
dS )z.
Common utilities for Volcengine LLM provider
    )OptionalN)BaseLLMExceptionc                       s8   e Zd ZdZ	ddededeej f fddZ	  Z
S )	VolcEngineErrorz@
    Custom exception class for Volcengine provider errors.
    Nstatus_codemessageheadersc                    s6   || _ || _|pt | _t j||t| jd d S )N)r   r   r   )r   r   httpxHeadersr   super__init__dict)selfr   r   r   	__class__ [/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/volcengine/common_utils.pyr      s   
zVolcEngineError.__init__N)__name__
__module____qualname____doc__intstrr   r   r	   r   __classcell__r   r   r   r   r      s    r   api_basereturnc                 C   s   | r| S dS )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.comr   )r   r   r   r   get_volcengine_base_url   s   
r   api_keyextra_headersc                 C   s"   dd|  d}|r| | |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   r   r   r   get_volcengine_headers+   s   
r!   r   )r   typingr   r   Z)litellm.llms.base_llm.chat.transformationr   r   r   r   r   r!   r   r   r   r   <module>   s     