Ë
    µŒj.  ã                   ó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
)é    )Ú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                  ó   — y)NF© )Úclss    úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/octoai_endpoint.pyÚis_lc_serializablez!OctoAIEndpoint.is_lc_serializable*   s   € àó    c                 óÔ   •— d| j                   i| j                  ¥}t        «       s6|j                  | j                  j                  «       | j                  dœ«       i |¥t        ‰| �   ¥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.   sm   ø€ ð
 �T—_‘_ð"
à×"Ñ"ð"
ˆô Œ~Ø�M‰Mà#×4Ñ4×EÑEÓGØ $× 4Ñ 4ñôð 8�&Ð7œE™GÑ6Ð7Ð7r   c                  ó   — y)zReturn type of llm.Úoctoai_endpointr   )r$   s    r   Ú	_llm_typezOctoAIEndpoint._llm_type@   s   € ð !r   Úvaluesc                 óP  — t        |ddt        ¬«      |d<   t        t        |dd«      «      |d<   t        |ddt        ¬«      |d<   	 dd	l}t        «       rz|d   j                  «       |d   d
œ}|j                  d«      s |j                  di |¤Žj                  |d<   |j                  d«      sM |j                  di |¤Žj                  |d<   n-|d   |d<   |d   j                  «       |d<   |j                  |d<   d|d   v rt        d«      ‚|S # t        $ r t        d«      ‚w xY w)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   sq  € ô %9ØØØÜ$ô	%
ˆÐ Ñ!ô &;Ü  Ð);Ð=OÓPó&
ˆÐ!Ñ"ô  4ØØØÜ!ô	 
ˆˆ|Ñð	ÛäŒ~à%Ð&8Ñ9×JÑJÓLØ &Ð'8Ñ 9ñ!�ð —z‘z (Ô+Ø'4 v§}¡}Ñ'E°}Ñ'E×'QÑ'Q�F˜8Ñ$Ø—z‘z .Ô1Ø-?¨V×-?Ñ-?ñ .Ø'ñ.ç!‘kð ˜>Ò*ð -3Ð3DÑ,E�Ð(Ñ)Ø+1Ð2DÑ+E×+VÑ+VÓ+X�Ð'Ñ(Ø#)×#4Ñ#4��xÑ ð ˜V NÑ3Ñ3ÜØNóð ð ˆøô ò 	Üð?óð ð	ús   ÁB5D ÄD%)Ú__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      s¹   ø… ñð. 3Ù Ð)9Ô:€O�SÓ:Ù"'±	¸"³Ô">Ð�iÓ>Ù MÔ2€J�Ó2àð 4ò ó ðð ð8 D¨¨c¨¡Nô 8ó ð8ð" ð!˜3ò !ó ð!ð ð/¨$ð /°4ò /ó ô/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      s0   ðß ç VÑ Vß %å 6Ý 9à0Ð Ø'€ôh�Zõ hr   