Ë
    µŒj<  ã                  ó„   — 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y)é    )Ú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	<   y)
Ú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   © ó    úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/javelin_ai_gateway.pyr   r      s$   … Ù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_keyc                óú   •— 	 ddl m}m} t	        ‰| �  di |¤Ž | j                  r%	  || j                  | j                  ¬«      | _        y y # t        $ r t        d«      ‚w xY w# |$ r}t        d«      |‚d }~ww xY w)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)ÚselfÚkwargsr'   r(   ÚeÚ	__class__s        €r   r.   zJavelinAIGateway.__init__:   s•   ø€ ð		÷ô 	‰ÑÑ"˜6Ò"Ø×ÒðGÙ+Ø!×-Ñ-°t×7KÑ7Kô�•ð øô ò 	ÜðDóð ð	ûð %ò GÜ Ð!>Ó?ÀQÐFûðGús"   ƒA §#A$ ÁA!Á$A:Á)A5Á5A:c                ó¤   — | j                   | j                  | j                  dœ| j                  r| j                  j	                  «       ¥}|S i ¥}|S )z>Get the default parameters for calling Javelin AI Gateway API.)r#   r!   r%   )r#   r!   r%   r$   Údict)r0   r$   s     r   Ú_default_paramsz JavelinAIGateway._default_paramsN   s[   € ð  ×+Ñ+Ø—Z‘ZØ#×3Ñ3ñ"
ð &*§[¢[ˆt�{‰{×ÑÓ!ð	"
ˆð ˆð 79ð	"
ˆð ˆr   c                ó   — | j                   S )zGet the identifying parameters.)r6   ©r0   s    r   Ú_identifying_paramsz$JavelinAIGateway._identifying_paramsY   s   € ð ×#Ñ#Ð#r   c                ó’  — d|i| j                   r| j                   j                  «       ni ¥}|xs$ | j                   r| j                   j                  ndx}r||d<   | j                  �(| j                  j	                  | j
                  |¬«      }nt        d«      ‚|j                  «       }	 |d   d   d   d	   S # t        $ r Y y
w xY w)z Call the Javelin AI Gateway API.ÚpromptNr   ©Ú
query_bodyú"Javelin client is not initialized.Úllm_responseÚchoicesr   ÚtextÚ )r$   r5   r   r"   Úquery_router!   r/   ÚKeyError©	r0   r;   r   Úrun_managerr1   ÚdataÚsÚrespÚ	resp_dicts	            r   Ú_callzJavelinAIGateway._call^   sÉ   € ð �fð 
à%)§[¢[ˆt�{‰{×ÑÔ!°bð 
ˆð ÒD¨d¯kªk˜$Ÿ+™+×*Ò*¸tÐEˆ1ÐEØˆD�‰Là�;‰;Ð"Ø—;‘;×*Ñ*¨4¯:©:À$Ð*ÓG‰DäÐAÓBÐBà—I‘I“Kˆ	ð	Ø˜^Ñ,¨YÑ7¸Ñ:¸6ÑBÐBøÜò 	Ùð	ús   Â,B: Â:	CÃCc              ‹  ó®  K  — d|i| j                   r| j                   j                  «       ni ¥}|xs$ | j                   r| j                   j                  ndx}r||d<   | j                  �0| j                  j	                  | j
                  |¬«      ƒ d{  –—† }nt        d«      ‚|j                  «       }	 |d   d   d   d	   S 7 Œ/# t        $ r Y y
w xY w­w)z&Call async the Javelin AI Gateway API.r;   Nr   r<   r>   r?   r@   r   rA   rB   )r$   r5   r   r"   Úaquery_router!   r/   rD   rE   s	            r   Ú_acallzJavelinAIGateway._acally   s×   è ø€ ð �fð 
à%)§[¢[ˆt�{‰{×ÑÔ!°bð 
ˆð ÒD¨d¯kªk˜$Ÿ+™+×*Ò*¸tÐEˆ1ÐEØˆD�‰Là�;‰;Ð"ØŸ™×1Ñ1°$·*±*ÈÐ1ÓN×N‰DäÐAÓBÐBà—I‘I“Kˆ	ð	Ø˜^Ñ,¨YÑ7¸Ñ:¸6ÑBÐBð Oùô ò 	Ùð	üs6   ‚BCÂCÂ CÂ6C ÃCÃ	CÃCÃCÃCc                 ó   — y)zReturn type of llm.zjavelin-ai-gatewayr   r8   s    r   Ú	_llm_typezJavelinAIGateway._llm_type”   s   € ð $r   )r1   r   )ÚreturnzDict[str, Any])rQ   zMapping[str, Any])NN)
r;   r    r   r   rF   z"Optional[CallbackManagerForLLMRun]r1   r   rQ   r    )
r;   r    r   r   rF   z'Optional[AsyncCallbackManagerForLLMRun]r1   r   rQ   r    )rQ   r    )r   r   r   r   r   r"   r#   r$   r%   r.   Úpropertyr6   r9   rK   rN   rP   Ú__classcell__)r3   s   @r   r   r      s  ø… ñð& ƒJØ:à €FˆMÓ Ø(à!%€K�Ó%Ø0à#€FÐÓ#Ø4à%)€O�]Ó)Ø5õGð( òó ðð ò$ó ð$ð %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
óð< %)Ø?Cð	àðð "ðð =ð	ð
 ðð 
óð6 ò$ó ô$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>rY      s7   ðÝ "ç 5Õ 5÷õ 4Ý ô
%ˆY˜gõ %ô@$�sõ @$r   