
    NgQ                     v    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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                      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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                     dS )z Return type of embeddings model.zoctoai-embeddings selfs    l/var/www/html/ai-engine/env/lib/python3.11/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                 ~   t          |ddt                    |d<   t          t          |dd                    |d<   t          |ddt                    |d<   	 dd	l}t                      rx|d                                         |d         d
}|                    d          s |j        di |j	        |d<   |                    d          s |j
        di |j	        |d<   n<|d         |d<   |d                                         |d<   |j        |d<   |j        |d<   n# t          $ r t          d          w xY w|S )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)   s    "6$	"
 "
 "
~ &; );=OPP&
 &
!" /!	
 
 
w	MMM~~ :%&89JJLL &~ 6! ! zz(++ Q'4v}'E'E}'E'E'PF8$zz.11 !-?V-? . .'. .  >* -3>,B()+12D+E+V+V+X+X'(#)#3x )/)9~& 	 	 	?  	 s   C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          -2E$,?,?,?hy)???$&6777L#777)}---E3---"d"""P#3 # # # X# 8DcN 8 8 8 X8 ,$ ,4 , , , X, , ,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      s    ! ! ! ! ! ! ! ! V V V V V V V V V V % % % % % % % % B B B B B B 9 9 9 9 9 90 $I I I I I' I I I I Ir   