§
    šŠtj<  ã                  ó’   — d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ  G d„ ded¬	¦  «        Z G d
„ de¦  «        ZdS )é    )Úannotations)ÚAnyÚDictÚListÚMappingÚOptional)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚLLM)Ú	BaseModelc                  ó>   — e Zd ZU dZdZded<   dZded<   dZded	<   dS )
ÚParamsz*Parameters for the Javelin AI Gateway LLM.g        ÚfloatÚtemperatureNúOptional[List[str]]ÚstopzOptional[int]Ú
max_tokens)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   © ó    úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/javelin_ai_gateway.pyr   r      sK   € € € € € € Ø4Ð4à€KÐÐÐÑØ $€DÐ$Ð$Ð$Ñ$Ø $€JÐ$Ð$Ð$Ñ$Ð$Ð$r   r   Úallow)Úextrac                  óÖ   ‡ — e Zd ZU dZded<   	 dZded<   	 dZded<   	 dZd	ed
<   	 dZded<   	 dˆ fd„Z	e
dd„¦   «         Ze
dd„¦   «         Z	 	 d d!d„Z	 	 d d"d„Ze
d#d„¦   «         Zˆ xZS )$ÚJavelinAIGatewaya   Javelin AI Gateway LLMs.

    To use, you should have the ``javelin_sdk`` python package installed.
    For more information, see https://docs.getjavelin.io

    Example:
        .. code-block:: python

            from langchain_community.llms import JavelinAIGateway

            completions = JavelinAIGateway(
                gateway_uri="<your-javelin-ai-gateway-uri>",
                route="<your-javelin-ai-gateway-completions-route>",
                params={
                    "temperature": 0.1
                }
            )
    ÚstrÚrouteNzOptional[Any]ÚclientzOptional[str]Úgateway_urizOptional[Params]ÚparamsÚjavelin_api_keyÚkwargsr   c                ó  •— 	 ddl m}m} n# t          $ r t          d¦  «        ‚w xY w t	          ¦   «         j        di |¤Ž | j        r<	  || j        | j        ¬¦  «        | _        d S # |$ r}t          d¦  «        |‚d }~ww xY wd S )Nr   )ÚJavelinClientÚUnauthorizedErrorz^Could not import javelin_sdk python package. Please install it with `pip install javelin_sdk`.)Úbase_urlÚapi_keyzJavelin: Incorrect API Key.r   )
Újavelin_sdkr(   r)   ÚImportErrorÚsuperÚ__init__r#   r%   r"   Ú
ValueError)Úselfr&   r(   r)   ÚeÚ	__class__s        €r   r/   zJavelinAIGateway.__init__:   s  ø€ ð		ðð ð ð ð ð ð ð ð øõ ð 	ð 	ð 	ÝðDñô ð ð	øøøð
 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØÔð 	GðGØ+˜mØ!Ô-°tÔ7Kðñ ô �”��øð %ð Gð Gð GÝ Ð!>Ñ?Ô?ÀQÐFøøøøðGøøøð	Gð 	Gs    ƒ Œ&Á
A( Á(BÁ-A=Á=BÚreturnúDict[str, Any]c                ót   — | j         | j        | j        dœ| j        r| j                             ¦   «         ni ¥}|S )z>Get the default parameters for calling Javelin AI Gateway API.)r#   r!   r%   )r#   r!   r%   r$   Údict)r1   r$   s     r   Ú_default_paramsz JavelinAIGateway._default_paramsN   sL   € ð  Ô+Ø”ZØ#Ô3ð"
ð "
ð &*¤[Ð8ˆtŒ{×ÒÑ!Ô!Ð!°bð	"
ˆð ˆr   úMapping[str, Any]c                ó   — | j         S )zGet the identifying parameters.)r8   ©r1   s    r   Ú_identifying_paramsz$JavelinAIGateway._identifying_paramsY   s   € ð Ô#Ð#r   Úpromptr   r   Úrun_managerú"Optional[CallbackManagerForLLMRun]c                óz  — d|i| j         r| j                              ¦   «         ni ¥}|p| j         r| j         j        ndx}r||d<   | j        �"| j                             | j        |¬¦  «        }nt          d¦  «        ‚|                     ¦   «         }	 |d         d         d         d	         S # t          $ r Y d
S w xY w)z Call the Javelin AI Gateway API.r=   Nr   ©Ú
query_bodyú"Javelin client is not initialized.Úllm_responseÚchoicesr   ÚtextÚ )r$   r7   r   r"   Úquery_router!   r0   ÚKeyError©	r1   r=   r   r>   r&   ÚdataÚsÚrespÚ	resp_dicts	            r   Ú_callzJavelinAIGateway._call^   sã   € ð �fð 
à%)¤[Ð8ˆtŒ{×ÒÑ!Ô!Ð!°bð 
ˆð ÐD¨d¬kÐC˜$œ+Ô*Ð*¸tÐEˆ1ð 	ØˆD�‰LàŒ;Ð"Ø”;×*Ò*¨4¬:À$Ð*ÑGÔGˆDˆDåÐAÑBÔBÐBà—I’I‘K”Kˆ	ð	Ø˜^Ô,¨YÔ7¸Ô:¸6ÔBÐBøÝð 	ð 	ð 	Ø�2�2ð	øøøs   ÂB, Â,
B:Â9B:ú'Optional[AsyncCallbackManagerForLLMRun]c              ‹  óŠ  K  — d|i| j         r| j                              ¦   «         ni ¥}|p| j         r| j         j        ndx}r||d<   | j        �(| j                             | j        |¬¦  «        ƒ d{V —†}nt          d¦  «        ‚|                     ¦   «         }	 |d         d         d         d	         S # t          $ r Y d
S w xY w)z&Call async the Javelin AI Gateway API.r=   Nr   rA   rC   rD   rE   r   rF   rG   )r$   r7   r   r"   Úaquery_router!   r0   rI   rJ   s	            r   Ú_acallzJavelinAIGateway._acally   sù   è è € ð �fð 
à%)¤[Ð8ˆtŒ{×ÒÑ!Ô!Ð!°bð 
ˆð ÐD¨d¬kÐC˜$œ+Ô*Ð*¸tÐEˆ1ð 	ØˆD�‰LàŒ;Ð"Øœ×1Ò1°$´*ÈÐ1ÑNÔNÐNÐNÐNÐNÐNÐNˆDˆDåÐAÑBÔBÐBà—I’I‘K”Kˆ	ð	Ø˜^Ô,¨YÔ7¸Ô:¸6ÔBÐBøÝð 	ð 	ð 	Ø�2�2ð	øøøs   ÂB4 Â4
CÃCc                ó   — dS )zReturn type of llm.zjavelin-ai-gatewayr   r;   s    r   Ú	_llm_typezJavelinAIGateway._llm_type”   s
   € ð $Ð#r   )r&   r   )r4   r5   )r4   r9   )NN)
r=   r    r   r   r>   r?   r&   r   r4   r    )
r=   r    r   r   r>   rP   r&   r   r4   r    )r4   r    )r   r   r   r   r   r"   r#   r$   r%   r/   Úpropertyr8   r<   rO   rS   rU   Ú__classcell__)r3   s   @r   r   r      sO  ø€ € € € € € ðð ð& €J€J�JØ:à €FÐ Ð Ð Ñ Ø(à!%€KÐ%Ð%Ð%Ñ%Ø0à#€FÐ#Ð#Ð#Ñ#Ø4à%)€OÐ)Ð)Ð)Ñ)Ø5ðGð Gð Gð Gð Gð Gð( ðð ð ñ „Xðð ð$ð $ð $ñ „Xð$ð %)Ø:>ð	ð ð ð ð ð< %)Ø?Cð	ð ð ð ð ð6 ð$ð $ð $ñ „Xð$ð $ð $ð $ð $r   r   N)Ú
__future__r   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   r
   Ú#langchain_core.language_models.llmsr   Úpydanticr   r   r   r   r   r   ú<module>r]      sþ   ðØ "Ð "Ð "Ð "Ð "Ð "à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð ð
%ð %ð %ð %ð %ˆY˜gð %ñ %ô %ð %ð@$ð @$ð @$ð @$ð @$�sñ @$ô @$ð @$ð @$ð @$r   