
    7|hQ                     n    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	e      Zy
)    )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                       e Zd ZU dZ ed      Zee   ed<   	  ee	      Z
eed<   	  ee      Zeed<   	 dZeed<   	 ed	efd
       Zed	eeef   fd       Zeded	efd       Zy)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                      y)z Return type of embeddings model.zoctoai-embeddings selfs    o/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/embeddings/octoai_embeddings.py	_llm_typezOctoAIEmbeddings._llm_type    s     #    c                 
    ddiS )Nr   OCTOAI_API_TOKENr   r   s    r   
lc_secretszOctoAIEmbeddings.lc_secrets%   s    "$677r   valuesc                 N   t        |ddt              |d<   t        t        |dd            |d<   t        |ddt              |d<   	 dd	l}t               r||d   j                         |d   d
}|j                  d      s |j                  di |j                  |d<   |j                  d      s^ |j                  di |j                  |d<   	 |S |d   |d<   |d   j                         |d<   |j                  |d<   |j                  |d<   |S # t        $ r t        d      w xY w)z?Validate that api key and python package exists in environment.r   ENDPOINT_URLr   r   r   r   MODELr   N)api_keybase_urlclientasync_clientopenai_api_baseopenai_api_keyzTCould not import openai python package. Please install it with `pip install openai`.r   )r   DEFAULT_API_BASEr   DEFAULT_MODELopenair   get_secret_valuegetOpenAI
embeddingsAsyncOpenAI	EmbeddingImportError)clsr   r+   client_paramss       r   validate_environmentz%OctoAIEmbeddings.validate_environment)   se    "6$	"
~ &; );=OP&
!" /!	
w	~%&89JJL &~ 6! zz(+'4v}}'E}'E'P'PF8$zz.1-?V-?-? .'. j >*  -3>,B()+12D+E+V+V+X'(#)#3#3x )/)9)9~&   	? 	s   BD <D D$)__name__
__module____qualname____doc__r   r   r   r	   __annotations__r)   r   strr*   r   r   boolpropertyr   r   r   r   dictr5   r   r   r   r   r      s     -2$,?hy)?$&67L#7)}-E3-"d"P#3 # # 8DcN 8 8 ,$ ,4 , ,r   r   N)typingr   r   langchain_core.utilsr   r   r   pydanticr   r	   %langchain_community.embeddings.openair
    langchain_community.utils.openair   r)   r*   r   r   r   r   <module>rD      s1    ! V V % B 90 $I' Ir   