Ë
    µŒjr  ã                   ó¦   — d Z ddlZddlZddl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mZmZ ddlmZ  ej&                  e«      Z G d„ d	e«      Zy)
z)Wrapper around Konko AI's Completion API.é    N)ÚAnyÚDictÚListÚOptional)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚLLM)Ú
ConfigDictÚ	SecretStrÚmodel_validator)Úis_openai_v1c                   óò  — e Zd ZU dZdZeed<   	 eed<   	 eed<   	 dZe	e
   ed<   	 dZe	e
   ed<   	 dZe	e   ed	<   	 dZe	e   ed
<   	 dZe	e
   ed<   	 dZe	e   ed<   	  ed¬«      Z ed¬«      edeeef   defd„«       «       Z	 ddede	ee      dedeeef   fd„Zedefd„«       Zedefd„«       Zedeeef   fd„«       Z	 	 ddede	ee      de	e   dedef
d„Z 	 	 ddede	ee      de	e!   dedef
d„Z"y) ÚKonkozäKonko 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                 ó‚   — 	 ddl }t        |d«      st        j                  d«       |S # t        $ r t        d«      ‚w xY w)z3Validate that python package exists in environment.r   NzRCould not import konko python package. Please install it with `pip install konko`.Ú_is_legacy_openaiz‰You 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      úh/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/konko.pyÚvalidate_environmentzKonko.validate_environmentC   sR   € ð	Ûô �uÐ1Ô2Ü�M‰Mð5ôð
 ˆøô ò 	Üð>óð ð	ús   ‚) ©>ÚpromptÚstopÚkwargsc                 ó´   — |rt        |«      dk(  r|d   n|}i | j                  ¥||dœ¥|¥}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}}w )Né   r   )r)   r*   )ÚlenÚdefault_paramsÚitems)Úselfr)   r*   r+   Ústop_to_useÚpayloadÚkÚvs           r'   Úconstruct_payloadzKonko.construct_payloadW   sq   € ñ "&¬#¨d«)°qª.�d˜1’g¸dˆð#
Ø×!Ñ!ð#
àØò#
ð ð	#
ˆð ")§¡¤ÔB¡™˜˜A°A±M��1‘ ÒBÐBùÓBs   Á 
AÁAc                  ó   — y)zReturn type of model.r!   © ©r1   s    r'   Ú	_llm_typezKonko._llm_typef   s   € ð ó    c                  ó   — ddl m}  d| › �S )Nr   ©Ú__version__z
langchain/)Úlangchain_communityr>   r=   s    r'   Úget_user_agentzKonko.get_user_agentk   s   € å3à˜K˜=Ð)Ð)r;   c                 óŒ   — | j                   | j                  | j                  | j                  | j                  | j
                  dœS )N©r   r   r   r   r   r   rB   r9   s    r'   r/   zKonko.default_paramsq   s<   € ð —Z‘ZØ×+Ñ+Ø—Z‘ZØ—Z‘ZØŸ/™/Ø"&×"9Ñ"9ñ
ð 	
r;   Úrun_managerc                 óN  — ddl } | j                  ||fi |¤Ž}	 t        «       r |j                  j                  di |¤Ž}n |j
                  j                  di |¤Ž}t        «       r|j                  d   j                  }|S |d   d   d   }|S # t        $ r t        d«      ‚w xY w)z¾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   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Útextr8   )
r!   r6   r   ÚcompletionsÚcreateÚ
CompletionÚAttributeErrorÚ
ValueErrorrF   rG   )	r1   r)   r*   rC   r+   r!   r3   ÚresponseÚoutputs	            r'   Ú_callzKonko._call|   sÂ   € ó 	à(�$×(Ñ(¨°Ñ@¸Ñ@ˆð	ÜŒ~Ø3˜5×,Ñ,×3Ñ3Ñ>°gÑ>‘à2˜5×+Ñ+×2Ñ2Ñ=°WÑ=�ô Œ>Ø×%Ñ% aÑ(×-Ñ-ˆFð ˆð ˜iÑ(¨Ñ+¨FÑ3ˆFàˆøô ò 	Üð6óð ð	ús   šAB ÂB$c              ‹   óž  K  — ddl } | j                  ||fi |¤Ž}	 t        «       r5|j                  «       } |j                  j
                  di |¤Žƒ d{  –—† }n$ |j                  j                  di |¤Žƒ d{  –—† }t        «       r|j                  d   j                  }	|	S |d   d   d   }	|	S 7 Œ[7 Œ8# t        $ r t        d«      ‚w xY w­w)zÌAsynchronously 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   NrE   rF   rG   r8   )r!   r6   r   Ú
AsyncKonkorH   rI   rJ   ÚacreaterK   rL   rF   rG   )
r1   r)   r*   rC   r+   r!   r3   ÚclientrM   rN   s
             r'   Ú_acallzKonko._acall£   sá   è ø€ ó 	à(�$×(Ñ(¨°Ñ@¸Ñ@ˆð	ÜŒ~Ø×)Ñ)Ó+�Ø!: ×!3Ñ!3×!:Ñ!:Ñ!E¸WÑ!E×E‘à!9 ×!1Ñ!1×!9Ñ!9Ñ!D¸GÑ!D×D�ô Œ>Ø×%Ñ% aÑ(×-Ñ-ˆFð ˆð ˜iÑ(¨Ñ+¨FÑ3ˆFàˆð! FøàDùäò 	Üð6óð ð	üs@   ‚Cœ9B5 ÁB1Á$B5 Á:B3Á;B5 Á?2CÂ1B5 Â3B5 Â5C
Ã
C)N)NN)#Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   Úfloatr   r   Úintr   r   r   r
   Úmodel_configr   Úclassmethodr   r   r(   r   r6   Úpropertyr:   Ústaticmethodr@   r/   r   rO   r   rT   r8   r;   r'   r   r      s  … ñð :€HˆcÓ9Ø!ØÓØØƒJðð $(€K�˜%‘Ó'ØØ!€Eˆ8�E‰?Ó!ðð  €Eˆ8�C‰=Óðð !%€J�˜‘Ó$Ø3Ø*.Ð˜ ™Ó.ðð #€Hˆh�s‰mÓ"ðñ Øô€Lñ ˜(Ô#Øð¨$¨s°C¨x©.ð ¸Sò ó ó $ðð* %)ñCàðCð �t˜C‘yÑ!ðCð ð	Cð
 
ˆc�3ˆh‰óCð ð˜3ò ó ðð ð*˜Cò *ó ð*ð
 ð
  S¨# X¡ò 
ó ð
ð %)Ø:>ñ	%àð%ð �t˜C‘yÑ!ð%ð Ð6Ñ7ð	%ð
 ð%ð 
ó%ðT %)Ø?Cñ	&àð&ð �t˜C‘yÑ!ð&ð Ð;Ñ<ð	&ð
 ð&ð 
ô&r;   r   )rX   Úloggingr$   Útypingr   r   r   r   Úlangchain_core.callbacksr   r   Ú#langchain_core.language_models.llmsr	   Úpydanticr
   r   r   Ú langchain_community.utils.openair   Ú	getLoggerrU   Úloggerr   r8   r;   r'   Ú<module>ri      sG   ðÙ /ã Û ß ,Ó ,÷õ 4ß ;Ñ ;å 9à	ˆ×	Ñ	˜8Ó	$€ôvˆCõ vr;   