§
    æ˜ºh²  ã                   óŽ   — 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mZ d dlmZmZ d dlmZ  G d„ d	e
¦  «        ZdS )
é    )ÚAnyÚDictÚListÚMappingÚOptionalN)ÚCallbackManagerForLLMRun)ÚLLM)ÚExtraÚ	SecretStrÚroot_validator©Úconvert_to_secret_strÚget_from_dict_or_env)Ú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<   	  G d„ d¦  «        Z ed¬¦  «        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_urlc                   ó    — e Zd ZdZej        ZdS )úForefrontAI.Configz'Configuration for this pydantic object.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   ÚforbidÚextra© ó    úl/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/llms/forefrontai.pyÚConfigr    1   s   € € € € € Ø5Ð5à”ˆˆˆr(   r*   T)ÚpreÚvaluesÚreturnc                 óH   — t          t          |dd¦  «        ¦  «        |d<   |S )z,Validate that api key exists in environment.r   ÚFOREFRONTAI_API_KEYr   )Úclsr,   s     r)   Úvalidate_environmentz ForefrontAI.validate_environment6   s1   € õ )>Ý  Ð)>Ð@UÑVÔVñ)
ô )
ˆÐ$Ñ%ð ˆr(   c                 óD   — | j         | j        | j        | j        | j        dœS )z7Get the default parameters for calling ForefrontAI API.©r   r   r   r   r   r3   ©Ú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   r6   r4   s    r)   Ú_identifying_paramszForefrontAI._identifying_paramsI   s    € ð O�> 4Ô#4Ð5ÐN¸Ô9MÐNÐNr(   c                 ó   — dS )zReturn type of llm.Úforefrontair'   r4   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   r6   rE   r   )	r5   r<   r=   r>   r?   Ú
auth_valueÚresponseÚresponse_jsonrB   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)r!   r"   r#   r$   r   ÚstrÚ__annotations__r   Úfloatr   Úintr   r   r   r   r   r   r*   r   r   r1   Úpropertyr   r   r6   r8   r;   r   r   rN   r'   r(   r)   r   r      s	  € € € € € € ð
ð 
ð €L�#ÐÐÑØà€K�ÐÐÑØ+à€FˆCÐÐÑØEà€Eˆ5ÐÐÑØDà€Eˆ3€O€O�Oð!ð  Ð˜ÐÐÑØ;à"Ð"Ð"Ñ"à"€Hˆh�sŒmÐ"Ð"Ñ"Ø?ðð ð ð ð ñ ô ð ð
 €^˜ÐÑÔð¨$ð °4ð ð ð ñ Ôðð ð
 ¨¨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   rI   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.pydantic_v1r
   r   r   Úlangchain_core.utilsr   r   Úlangchain_community.llms.utilsr   r   r'   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Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là >Ð >Ð >Ð >Ð >Ð >ðkð kð kð kð k�#ñ kô kð kð kð kr(   