§
    šŠtj“  ã                   óŽ   — d dl mZmZmZmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZ d dlmZmZmZ d dlmZ  G d„ d	e
¦  «        ZdS )
é    )ÚAnyÚDictÚListÚMappingÚOptionalN)ÚCallbackManagerForLLMRun)ÚLLM©Úconvert_to_secret_strÚget_from_dict_or_env)Ú
ConfigDictÚ	SecretStrÚmodel_validator)Úenforce_stop_tokensc                   ó°  — e Zd ZU dZdZeed<   	 dZeed<   	 dZ	e
ed<   	 dZeed	<   	 d
Ze
ed<   	 dZe
ed<   	 eed<   dZee         ed<   	  ed¬¦  «        Z ed¬¦  «        ededefd„¦   «         ¦   «         Zedeeef         fd„¦   «         Zedeeef         fd„¦   «         Zedefd„¦   «         Z	 	 d dedeee                  dee         dedef
d„ZdS )!ÚForefrontAIa2  ForefrontAI large language models.

    To use, you should have the environment variable ``FOREFRONTAI_API_KEY``
    set with your API key.

    Example:
        .. code-block:: python

            from langchain_community.llms import ForefrontAI
            forefrontai = ForefrontAI(endpoint_url="")
    Ú Úendpoint_urlgffffffæ?Útemperatureé   Úlengthg      ð?Útop_pé(   Útop_ké   Úrepetition_penaltyÚforefrontai_api_keyNÚbase_urlÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 óH   — t          t          |dd¦  «        ¦  «        |d<   |S )z,Validate that api key exists in environment.r   ÚFOREFRONTAI_API_KEYr
   )Úclsr#   s     úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/forefrontai.pyÚvalidate_environmentz ForefrontAI.validate_environment5   s1   € õ )>Ý  Ð)>Ð@UÑVÔVñ)
ô )
ˆÐ$Ñ%ð ˆó    c                 óD   — | j         | j        | j        | j        | j        dœS )z7Get the default parameters for calling ForefrontAI API.©r   r   r   r   r   r,   ©Úselfs    r(   Ú_default_paramszForefrontAI._default_params>   s.   € ð  Ô+Ø”kØ”ZØ”ZØ"&Ô"9ð
ð 
ð 	
r*   c                 ó&   — i d| j         i¥| j        ¥S )zGet the identifying parameters.r   )r   r/   r-   s    r(   Ú_identifying_paramszForefrontAI._identifying_paramsI   s    € ð O�> 4Ô#4Ð5ÐN¸Ô9MÐNÐNr*   c                 ó   — dS )zReturn type of llm.Úforefrontai© r-   s    r(   Ú	_llm_typezForefrontAI._llm_typeN   s	   € ð ˆ}r*   ÚpromptÚstopÚrun_managerÚkwargsc                 ó  — d| j                              ¦   «         › �}t          j        | j        |ddœd|i| j        ¥|¥¬¦  «        }|                     ¦   «         }|d         d         d         }|�t          ||¦  «        }|S )	ar  Call out to ForefrontAI's complete endpoint.

        Args:
            prompt: The prompt to pass into the model.
            stop: Optional list of stop words to use when generating.

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                response = ForefrontAI("Tell me a joke.")
        zBearer zapplication/json)ÚAuthorizationzContent-TypeÚtext)ÚurlÚheadersÚjsonÚresultr   Ú
completion)r   Úget_secret_valueÚrequestsÚpostr   r/   r?   r   )	r.   r6   r7   r8   r9   Ú
auth_valueÚresponseÚresponse_jsonr<   s	            r(   Ú_callzForefrontAI._callS   s£   € ð* M˜tÔ7×HÒHÑJÔJÐLÐLˆ
Ý”=ØÔ!à!+Ø 2ðð ð ˜&ÐC DÔ$8ÐC¸FÐCð
ñ 
ô 
ˆð !Ÿš™œˆØ˜XÔ& qÔ)¨,Ô7ˆØÐõ ' t¨TÑ2Ô2ˆDØˆr*   )NN) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   Úfloatr   Úintr   r   r   r   r   r   r   Úmodel_configr   Úclassmethodr   r   r)   Úpropertyr   r/   r1   r5   r   r   rH   r4   r*   r(   r   r      s  € € € € € € ð
ð 
ð €L�#ÐÐÑØà€K�ÐÐÑØ+à€FˆCÐÐÑØEà€Eˆ5ÐÐÑØDà€Eˆ3€O€O�Oð!ð  Ð˜ÐÐÑØ;à"Ð"Ð"Ñ"à"€Hˆh�sŒmÐ"Ð"Ñ"Ø?à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð ð
 ¨¨c¨Ô!2ð 
ð 
ð 
ñ „Xð
ð ðO W¨S°#¨XÔ%6ð Oð Oð Oñ „XðOð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	$ð $àð$ð �t˜C”yÔ!ð$ð Ð6Ô7ð	$ð
 ð$ð 
ð$ð $ð $ð $ð $ð $r*   r   )Útypingr   r   r   r   r   rC   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr   r   Úpydanticr   r   r   Úlangchain_community.llms.utilsr   r   r4   r*   r(   ú<module>rZ      sâ   ðØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à >Ð >Ð >Ð >Ð >Ð >ðkð kð kð kð k�#ñ kô kð kð kð kr*   