§
    šŠtj.  ã                   ó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 )é    )ÚAnyÚDict)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)ÚFieldÚ	SecretStr)Ú
BaseOpenAI)Úis_openai_v1zhttps://text.octoai.run/v1/zcodellama-7b-instructc                   ó  ‡ — e Zd ZU dZ	  ee¬¦  «        Zeed<    e e	d¦  «        ¬¦  «        Z
e	ed<    ee¬¦  «        Zeed<   edefd„¦   «         Zedeeef         fˆ fd	„¦   «         Zedefd
„¦   «         Zededefd„¦   «         Zˆ xZS )ÚOctoAIEndpointa•  OctoAI LLM Endpoints - OpenAI compatible.

    OctoAIEndpoint is a class to interact with OctoAI Compute Service large
    language model endpoints.

    To use, you should have the environment variable ``OCTOAI_API_TOKEN`` set
    with your API token, or pass it as a named parameter to the constructor.

    Example:
        .. code-block:: python

            from langchain_community.llms.octoai_endpoint  import OctoAIEndpoint

            llm = OctoAIEndpoint(
                model="llama-2-13b-chat-fp16",
                max_tokens=200,
                presence_penalty=0,
                temperature=0.1,
                top_p=0.9,
            )

    ©ÚdefaultÚoctoai_api_baseÚ Úoctoai_api_tokenÚ
model_nameÚreturnc                 ó   — dS )NF© )Úclss    úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/octoai_endpoint.pyÚis_lc_serializablez!OctoAIEndpoint.is_lc_serializable*   s   € àˆuó    c                 óÖ   •— d| j         i| j        ¥}t          ¦   «         s4|                     | j                             ¦   «         | j        dœ¦  «         i |¥t          ¦   «         j        ¥S )z,Get the parameters used to invoke the model.Úmodel)Úapi_keyÚapi_base)	r   Ú_default_paramsr   Úupdater   Úget_secret_valuer   ÚsuperÚ_invocation_params)ÚselfÚparamsÚ	__class__s     €r   r#   z!OctoAIEndpoint._invocation_params.   s}   ø€ ð
 �T”_ð"
àÔ"ð"
ˆõ ‰~Œ~ð 	Ø�MŠMà#Ô4×EÒEÑGÔGØ $Ô 4ðð ñô ð ð 8�&Ð7�E™GœGÔ6Ð7Ð7r   c                 ó   — dS )zReturn type of llm.Úoctoai_endpointr   )r$   s    r   Ú	_llm_typezOctoAIEndpoint._llm_type@   s
   € ð !Ð r   Ú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<   n2|d         |d<   |d                              ¦   «         |d<   |j        |d<   n# t          $ r t          d¦  «        ‚w xY wd|d         v rt          d¦  «        ‚|S )z?Validate that api key and python package exists in environment.r   ÚOCTOAI_API_BASEr   r   ÚOCTOAI_API_TOKENr   Ú
MODEL_NAMEr   N)r   Úbase_urlÚclientÚasync_clientÚopenai_api_baseÚopenai_api_keyzTCould not import openai python package. Please install it with `pip install openai`.Úendpoint_urlÚmodel_kwargsz<`endpoint_url` was deprecated, please use `octoai_api_base`.r   )r   ÚDEFAULT_BASE_URLr   ÚDEFAULT_MODELÚopenair   r!   ÚgetÚOpenAIÚcompletionsÚAsyncOpenAIÚ
CompletionÚImportErrorÚ
ValueError)r   r*   r8   Úclient_paramss       r   Úvalidate_environmentz#OctoAIEndpoint.validate_environmentE   sÒ  € õ %9ØØØÝ$ð	%
ñ %
ô %
ˆÐ Ñ!õ &;Ý  Ð);Ð=OÑPÔPñ&
ô &
ˆÐ!Ñ"õ  4ØØØÝ!ð	 
ñ  
ô  
ˆˆ|Ñð	ØˆMˆMˆMå‰~Œ~ð 5à%Ð&8Ô9×JÒJÑLÔLØ &Ð'8Ô 9ð!ð !�ð —z’z (Ñ+Ô+ð RØ'4 v¤}Ð'EÐ'E°}Ð'EÐ'EÔ'Q�F˜8Ñ$Ø—z’z .Ñ1Ô1ð "Ø-?¨VÔ-?ð .ð .Ø'ð.ð .ä!ð ˜>Ñ*øð -3Ð3DÔ,E�Ð(Ñ)Ø+1Ð2DÔ+E×+VÒ+VÑ+XÔ+X�Ð'Ñ(Ø#)Ô#4��xÑ øøÝð 	ð 	ð 	Ýð?ñô ð ð	øøøð ˜V NÔ3Ð3Ð3ÝØNñô ð ð ˆs   ÁB<D ÄD0)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r6   r   ÚstrÚ__annotations__r	   r   r7   r   ÚclassmethodÚboolr   Úpropertyr   r   r#   r)   r   rA   Ú__classcell__)r&   s   @r   r   r      sD  ø€ € € € € € ðð ð. 3Ø ˜5Ð)9Ð:Ñ:Ô:€O�SÐ:Ð:Ñ:Ø"' %°	°	¸"±´Ð">Ñ">Ô">Ð�iÐ>Ð>Ñ>Ø�e MÐ2Ñ2Ô2€J�Ð2Ð2Ñ2àð 4ð ð ð ñ „[ðð ð8 D¨¨c¨¤Nð 8ð 8ð 8ð 8ð 8ñ „Xð8ð" ð!˜3ð !ð !ð !ñ „Xð!ð ð/¨$ð /°4ð /ð /ð /ñ „Xð/ð /ð /ð /ð /r   r   N)Útypingr   r   Úlangchain_core.utilsr   r   r   Úpydanticr   r	   Úlangchain_community.llms.openair
   Ú langchain_community.utils.openair   r6   r7   r   r   r   r   ú<module>rQ      sÀ   ðØ Ð Ð Ð Ð Ð Ð Ð à VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à0Ð Ø'€ðhð hð hð hð h�Zñ hô hð hð hð hr   