o
    ZhD
                     @  sx   d 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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Optional)convert_to_secret_strget_from_dict_or_envpre_init)Field	SecretStr)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ZedddZedddZdS )AnyscaleEmbeddingsz`Anyscale` Embeddings API.NdefaultzOptional[SecretStr]anyscale_api_keystrmodelanyscale_api_baseFbooltiktoken_enabledi  intembedding_ctx_lengthreturnDict[str, str]c                 C  s   ddiS )Nr   ANYSCALE_API_KEY selfr   r   ^/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/embeddings/anyscale.py
lc_secrets   s   zAnyscaleEmbeddings.lc_secretsvaluesdictc                 C  s   t t|dd|d< t|ddtd|d< zddl}W n ty%   tdw t rA|d  |d d	}|jdi |j|d
< |S |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_keyr   )
r   r   DEFAULT_API_BASEopenaiImportErrorr   Zget_secret_valueZOpenAIZ
embeddingsZ	Embedding)clsr   r$   Zclient_paramsr   r   r   validate_environment%   s<   


z'AnyscaleEmbeddings.validate_environmentc                 C  s   dS )Nzanyscale-embeddingr   r   r   r   r   	_llm_typeJ   s   zAnyscaleEmbeddings._llm_type)r   r   )r   r    r   r    )r   r   )__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   r   Zlangchain_core.utilsr   r   r   Zpydanticr   r	   Z%langchain_community.embeddings.openair
   Z langchain_community.utils.openair   r#   r.   r   r   r   r   r   <module>   s    