
    dh<                    ~    S SK Jr  S SKJrJrJrJrJr  S SKJ	r	J
r
  S SKJr  S SKJr   " S S\SS	9r " S
 S\5      rg)    )annotations)AnyDictListMappingOptional)AsyncCallbackManagerForLLMRunCallbackManagerForLLMRun)LLM)	BaseModelc                  D    \ rS rSr% SrSrS\S'   SrS\S'   SrS	\S
'   Sr	g)Params   z*Parameters for the Javelin AI Gateway LLM.g        floattemperatureNOptional[List[str]]stopzOptional[int]
max_tokens )
__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   __static_attributes__r       c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/javelin_ai_gateway.pyr   r      s$    4K $D
$ $J$r   r   allow)extrac                    ^  \ rS rSr% SrS\S'    SrS\S'    SrS\S	'    SrS
\S'    Sr	S\S'    SU 4S jjr
\SS j5       r\SS j5       r  S         SS jjr  S         SS jjr\SS j5       rSrU =r$ )JavelinAIGateway   a  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                  >  SSK JnJn  [        TU ]  " S0 UD6  U R                  (       a"   U" U R                  U R                  S9U l        g g ! [         a    [        S5      ef = f! U a  n[        S5      UeS nAff = f)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   r2   JavelinAIGateway.__init__:   s    		 	"6"G+!--t7K7K   	D 	 % G !>?QFGs"   A  A( A%(A?.A::A?c                    U R                   U R                  U R                  S.U R                  (       a  U R                  R	                  5       EnU$ 0 EnU$ )z>Get the default parameters for calling Javelin AI Gateway API.)r'   r%   r)   )r'   r%   r)   r(   dict)r4   r(   s     r   _default_params JavelinAIGateway._default_paramsN   s[      ++ZZ#33"
 &*[[t{{!	"
  79	"
 r   c                    U R                   $ )zGet the identifying parameters.)r;   r4   s    r   _identifying_params$JavelinAIGateway._identifying_paramsY   s     ###r   c                   SU0U R                   (       a  U R                   R                  5       O0 EnU=(       d)    U R                   (       a  U R                   R                  OS=n(       a  XeS'   U R                  b%  U R                  R	                  U R
                  US9nO[        S5      eUR                  5       n US   S   S   S	   $ ! [         a     g
f = f)z Call the Javelin AI Gateway API.promptNr   
query_body"Javelin client is not initialized.llm_responsechoicesr   text )r(   r:   r   r&   query_router%   r3   KeyError	r4   rB   r   run_managerr5   datasresp	resp_dicts	            r   _callJavelinAIGateway._call^   s     f 
%)[[t{{!b 
 Ddkk$++**tE1EL;;";;**4::$*GDABBIIK		^,Y7:6BB 		s   =C 
CCc                  #    SU0U R                   (       a  U R                   R                  5       O0 EnU=(       d)    U R                   (       a  U R                   R                  OS=n(       a  XeS'   U R                  b-  U R                  R	                  U R
                  US9I Sh  vN nO[        S5      eUR                  5       n US   S   S   S	   $  N/! [         a     g
f = f7f)z&Call async the Javelin AI Gateway API.rB   Nr   rC   rE   rF   rG   r   rH   rI   )r(   r:   r   r&   aquery_router%   r3   rK   rL   s	            r   _acallJavelinAIGateway._acally   s      f 
%)[[t{{!b 
 Ddkk$++**tE1EL;;"11$**1NNDABBIIK		^,Y7:6BB O  		s6   B#C'%C& C'C C'
C$!C'#C$$C'c                    g)zReturn type of llm.zjavelin-ai-gatewayr   r>   s    r   	_llm_typeJavelinAIGateway._llm_type   s     $r   )r&   )r5   r   )returnzDict[str, Any])r[   zMapping[str, Any])NN)
rB   r$   r   r   rM   z"Optional[CallbackManagerForLLMRun]r5   r   r[   r$   )
rB   r$   r   r   rM   z'Optional[AsyncCallbackManagerForLLMRun]r5   r   r[   r$   )r[   r$   )r   r   r   r   r   r   r&   r'   r(   r)   r2   propertyr;   r?   rR   rV   rY   r   __classcell__)r7   s   @r   r"   r"      s   & J: FM (!%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>rc      s7    " 5 5 4 
%Yg %@$s @$r   