a
    bgQ                     @   sh   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 )    )DictOptional)convert_to_secret_strget_from_dict_or_envpre_init)Field	SecretStr)OpenAIEmbeddings)is_openai_v1zhttps://text.octoai.run/v1/zthenlper/gte-largec                   @   s   e Zd ZU dZeddZee ed< ee	dZ
eed< eedZeed< dZeed< eed	d
dZeeeef d	ddZeeedddZdS )OctoAIEmbeddingsa?  OctoAI Compute Service embedding models.

    See https://octo.ai/ for information about OctoAI.

    To use, you should have the ``openai`` python package installed and the
    environment variable ``OCTOAI_API_TOKEN`` set with your API token.
    Alternatively, you can use the octoai_api_token keyword argument.
    Ndefaultoctoai_api_tokenendpoint_urlmodelFtiktoken_enabled)returnc                 C   s   dS )z Return type of embeddings model.zoctoai-embeddings selfr   r   ~/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/embeddings/octoai_embeddings.py	_llm_type    s    zOctoAIEmbeddings._llm_typec                 C   s   ddiS )Nr   OCTOAI_API_TOKENr   r   r   r   r   
lc_secrets%   s    zOctoAIEmbeddings.lc_secrets)valuesr   c                 C   s   t |ddtd|d< tt |dd|d< t |ddtd|d< zdd	l}t r|d  |d d
}|ds|jf i |j	|d< |ds|j
f i |j	|d< n0|d |d< |d  |d< |j|d< |j|d< W n ty   tdY n0 |S )z?Validate that api key and python package exists in environment.r   ZENDPOINT_URLr   r   r   r   ZMODELr   N)Zapi_keybase_urlclientZasync_clientZopenai_api_baseZopenai_api_keyzTCould not import openai python package. Please install it with `pip install openai`.)r   DEFAULT_API_BASEr   DEFAULT_MODELopenair
   Zget_secret_valuegetZOpenAIZ
embeddingsZAsyncOpenAIZ	EmbeddingImportError)clsr   r   Zclient_paramsr   r   r   validate_environment)   sH    







z%OctoAIEmbeddings.validate_environment)__name__
__module____qualname____doc__r   r   r   r   __annotations__r   r   strr   r   r   boolpropertyr   r   r   r   dictr#   r   r   r   r   r      s   
	r   N)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   