U
    h$
                     @  st   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ dZd	ZG d
d deZdS )zAnyscale embeddings wrapper.    )annotations)Dict)Field	SecretStr)convert_to_secret_strget_from_dict_or_envpre_init)OpenAIEmbeddings)is_openai_v1z%https://api.endpoints.anyscale.com/v1zthenlper/gte-largec                   @  s   e Zd ZU dZeddZded< eedZded< ee	dZ
ded< d	Zd
ed< dZded< eddddZedddddZeddddZdS )AnyscaleEmbeddingsz`Anyscale` Embeddings API.Ndefaultr   anyscale_api_keystrmodelanyscale_api_baseFbooltiktoken_enabledi  intembedding_ctx_lengthzDict[str, str])returnc                 C  s   ddiS )Nr   ANYSCALE_API_KEY selfr   r   K/tmp/pip-unpacked-wheel-9gdii04g/langchain_community/embeddings/anyscale.py
lc_secrets   s     zAnyscaleEmbeddings.lc_secretsdict)valuesr   c                 C  s   t t|dd|d< t|ddtd|d< zddl}W n tk
rP   tdY nX t r|d  |d d	}|jf |j|d
< n&|d |d< |d  |d< |j	|d
< |S )z?Validate that api key and python package exists in environment.r   r   r   ZANYSCALE_API_BASEr   r   NzTCould not import openai python package. Please install it with `pip install openai`.)Zapi_keybase_urlclientZopenai_api_baseZopenai_api_key)
r   r   DEFAULT_API_BASEopenaiImportErrorr
   Zget_secret_valueZOpenAIZ
embeddingsZ	Embedding)clsr   r"   Zclient_paramsr   r   r   validate_environment%   s8    



z'AnyscaleEmbeddings.validate_environmentc                 C  s   dS )Nzanyscale-embeddingr   r   r   r   r   	_llm_typeJ   s    zAnyscaleEmbeddings._llm_type)__name__
__module____qualname____doc__r   r   __annotations__DEFAULT_MODELr   r!   r   r   r   propertyr   r   r%   r&   r   r   r   r   r      s   
$r   N)r*   
__future__r   typingr   Zlangchain_core.pydantic_v1r   r   Zlangchain_core.utilsr   r   r   Z%langchain_community.embeddings.openair	   Z langchain_community.utils.openair
   r!   r,   r   r   r   r   r   <module>   s   