U
    h8	                     @   s2   d dl Z d dlZd dlmZmZ G dd dZdS )    N)DictOptionalc                   @   sr   e Zd ZU dZdZeed< edeee ee ee ee ee ee	 ee ee ee	 e
eef dddZdS )	PortkeyzPortkey configuration.

    Attributes:
        base: The base URL for the Portkey API.
          Default: "https://api.portkey.ai/v1/proxy"
    zhttps://api.portkey.ai/v1/proxybaseN)api_keytrace_idenvironmentuserorganisationpromptretry_countcachecache_force_refresh	cache_agereturnc
                 C   s&  |d ks|t ddkstd|d ks6|dks6td|d ksXt|trP|dksXtd|	d ksrt|	tsrtdtjtjd	< | d
d}
|r||
d< |rt||
d< |r||
d< |r||
d< |	rdt|	 |
d< i }|r||d< |r||d< |r||d< |r||d< |r"|
	dt
|i |
S )N      z;retry_count must be an integer and in range [1, 2, 3, 4, 5])simpleZsemanticz$cache must be 'simple' or 'semantic')TrueFalsez-cache_force_refresh must be 'True' or 'False'zcache_age must be an integerZOPENAI_API_BASEzproxy openai)zx-portkey-api-keyzx-portkey-modezx-portkey-trace-idzx-portkey-retry-countzx-portkey-cachezx-portkey-cache-force-refreshzmax-age:zCache-ControlZ_environment_userZ_organisationZ_promptzx-portkey-metadata)rangeAssertionError
isinstancestrintr   r   osenvironupdatejsondumps)r   r   r   r	   r
   r   r   r   r   r   headersmetadata r#   I/tmp/pip-unpacked-wheel-9gdii04g/langchain_community/utilities/portkey.pyConfig   s`     
 zPortkey.Config)	NNNNNNNNN)__name__
__module____qualname____doc__r   r   __annotations__staticmethodr   r   r   r%   r#   r#   r#   r$   r      s2   
         
r   )r   r   typingr   r   r   r#   r#   r#   r$   <module>   s   