
    dhr                         S r SSKrSSKrSSK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JrJr  SSKJr  \R&                  " \5      r " S S	\5      rg)
z)Wrapper around Konko AI's Completion API.    N)AnyDictListOptional)AsyncCallbackManagerForLLMRunCallbackManagerForLLMRun)LLM)
ConfigDict	SecretStrmodel_validator)is_openai_v1c                      \ rS rSr% SrSr\\S'    \\S'    \\S'    Sr	\
\   \S'    Sr\
\   \S	'    Sr\
\   \S
'    Sr\
\   \S'    Sr\
\   \S'    Sr\
\   \S'    \" SS9r\" SS9\S\\\4   S\4S j5       5       r S S\S\
\\      S\S\\\4   4S jjr\S\4S j5       r\S\4S j5       r\S\\\4   4S j5       r  S!S\S\
\\      S\
\    S\S\4
S jjr!  S!S\S\
\\      S\
\"   S\S\4
S jjr#Sr$g)"Konko   zKonko AI models.

To use, you'll need an API key. This can be passed in as init param
``konko_api_key`` or set as environment variable ``KONKO_API_KEY``.

Konko AI API reference: https://docs.konko.ai/reference/
z#https://api.konko.ai/v1/completionsbase_urlkonko_api_keymodelNtemperaturetop_ptop_k
max_tokensrepetition_penaltylogprobsforbid)extrabefore)modevaluesreturnc                      SSK n[        US5      (       d  [        R                  " S5        U$ ! [         a    [        S5      ef = f)z3Validate that python package exists in environment.r   NzRCould not import konko python package. Please install it with `pip install konko`._is_legacy_openaizYou are using an older version of the 'konko' package. Please consider upgrading to access new featuresincluding the completion endpoint.)konkoImportErrorhasattrwarningswarn)clsr   r"   s      V/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/konko.pyvalidate_environmentKonko.validate_environmentC   sU    	 u122MM5
   	> 	s	   / Apromptstopkwargsc                     U(       a  [        U5      S:X  a  US   OUn0 U R                  EUUS.EUEnUR                  5        VVs0 sH  u  pgUc  M
  Xg_M     snn$ s  snnf )N   r   )r+   r,   )lendefault_paramsitems)selfr+   r,   r-   stop_to_usepayloadkvs           r(   construct_payloadKonko.construct_payloadW   sm     "&#d)q.d1gd#
!!#
#
 	#
 ")BABBBs   AAc                     g)zReturn type of model.r"    r3   s    r(   	_llm_typeKonko._llm_typef   s         c                      SSK Jn   SU  3$ )Nr   __version__z
langchain/)langchain_communityrB   rA   s    r(   get_user_agentKonko.get_user_agentk   s    3K=))r?   c                     U R                   U R                  U R                  U R                  U R                  U R
                  S.$ )Nr   r   r   r   r   r   rG   r<   s    r(   r1   Konko.default_paramsq   s<     ZZ++ZZZZ//"&"9"9
 	
r?   run_managerc                 d   SSK nU R                  " X40 UD6n [        5       (       a  UR                  R                  " S0 UD6nOUR
                  R                  " S0 UD6n [        5       (       a  UR                  S   R                  nU$ US   S   S   nU$ ! [         a    [        S5      ef = f)zCall out to Konko's text generation endpoint.

Args:
    prompt: The prompt to pass into the model.

Returns:
    The string generated by the model..
r   N`konko` has no `Completion` attribute, this is likely due to an old version of the konko package. Try upgrading it with `pip install --upgrade konko`.choicestextr;   )
r"   r8   r   completionscreate
CompletionAttributeError
ValueErrorrL   rM   )	r3   r+   r,   rI   r-   r"   r5   responseoutputs	            r(   _callKonko._call|   s     	((@@	~~ ,,33>g> ++22=W= >>%%a(--F  i(+F3F  	6 	s   +B B B/c                   #    SSK nU R                  " X40 UD6n [        5       (       a5  UR                  5       nUR                  R
                  " S0 UD6I Sh  vN nO%UR                  R                  " S0 UD6I Sh  vN n [        5       (       a  UR                  S   R                  n	U	$ US   S   S   n	U	$  Na N>! [         a    [        S5      ef = f7f)zAsynchronously call out to Konko's text generation endpoint.

Args:
    prompt: The prompt to pass into the model.

Returns:
    The string generated by the model.
r   NrK   rL   rM   r;   )r"   r8   r   
AsyncKonkorN   rO   rP   acreaterQ   rR   rL   rM   )
r3   r+   r,   rI   r-   r"   r5   clientrS   rT   s
             r(   _acallKonko._acall   s      	((@@	~~))+!'!3!3!:!:!EW!EE!&!1!1!9!9!DG!DD >>%%a(--F  i(+F3F! FD 	6 	sL   C>B? B;B? CB? >B=?B? 8C;B? =B? ?CCr;   )N)NN)%__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   r   r   floatr   r   intr   r   r   r
   model_configr   classmethodr   r   r)   r   r8   propertyr=   staticmethodrD   r1   r   rU   r   r[   __static_attributes__r;   r?   r(   r   r      s#    :Hc9!J $(K%'!E8E?!  E8C= !%J$3*.. #Hhsm" L (#$sCx. S   $* %)CC tCy!C 	C
 
c3hC 3   *C * *
 
S#X 
 
 %):>	%% tCy!% 67	%
 % 
%T %)?C	&& tCy!& ;<	&
 & 
& &r?   r   )ra   loggingr%   typingr   r   r   r   langchain_core.callbacksr   r   #langchain_core.language_models.llmsr	   pydanticr
   r   r    langchain_community.utils.openair   	getLoggerr]   loggerr   r;   r?   r(   <module>rs      sE    /   , , 4 ; ; 9			8	$vC vr?   