Ë
    µŒjT  ã                   óÄ   — d dl mZmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZmZmZmZmZ d dlmZ dZd	Z G d
„ de«      Z G d„ de«      Z G d„ dee	«      Zy)é    )ÚAnyÚDictÚListÚOptionalN)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)Úenforce_stop_tokenszhttps://api.upstage.ai/v1/solarzhttps://api.upstage.aic                   ó<   — e Zd ZU dZeed<   	 eZeed<   de	de	fd„Z
y)Ú_SolarClientz-An API client that talks to the Solar server.Úapi_keyÚbase_urlÚrequestÚreturnc                 ó$  — dd| j                   j                  «       › �i}t        j                  | j                  › d�||¬«      }|j
                  s%t        d|j                  › d|j                  › �«      ‚|j                  «       d   d   d	   d
   S )NÚAuthorizationzBearer z/chat/completions)ÚheadersÚjsonzHTTP z error: Úchoicesr   ÚmessageÚcontent)
r   Úget_secret_valueÚrequestsÚpostr   ÚokÚ
ValueErrorÚstatus_codeÚtextr   )Úselfr   r   Úresponses       úh/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/solar.pyÚ
completionz_SolarClient.completion   s�   € Ø" g¨d¯l©l×.KÑ.KÓ.MÐ-NÐ$OÐPˆÜ—=‘=Ø�}‰}ˆoÐ.Ð/ØØô
ˆð
 �{Š{Ü˜u X×%9Ñ%9Ð$:¸(À8Ç=Á=À/ÐRÓSÐSØ�}‰}‹˜yÑ)¨!Ñ,¨YÑ7¸	ÑBÐBó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__ÚSOLAR_SERVICE_URL_BASEr   Ústrr   r)   © r*   r(   r   r      s.   … Ù7àÓØ0Ø*€HˆcÓ*ð	C #ð 	C¨#ô 	Cr*   r   c                   ót  — e Zd ZU dZeed<   eZeed<    e	dd¬«      Z
ee   ed<   	  e	dd	¬«      Zeed
<   	  e	d¬«      Zeed<   dZeed<    edddd¬«      Zedefd„«       Zedeeef   fd„«       Zedeeef   fd„«       Z ed¬«      edeeef   defd„«       «       Zededefd„«       Zedefd„«       Z y)ÚSolarCommonz$Common configuration for Solar LLMs.Ú_clientr   Nr   )ÚdefaultÚaliasÚsolar_api_keyz
solar-miniÚmodelÚ
model_namei   )r6   Ú
max_tokensg333333Ó?ÚtemperatureTÚignorer2   )Úpopulate_by_nameÚarbitrary_types_allowedÚextraÚprotected_namespacesr   c                 ó
   — ddiS )Nr8   ÚSOLAR_API_KEYr2   ©r&   s    r(   Ú
lc_secretszSolarCommon.lc_secrets;   s   € à Ð1Ð1r*   c                 óJ   — | j                   | j                  | j                  dœS )N)r9   r;   r<   )r:   r;   r<   rD   s    r(   Ú_default_paramszSolarCommon._default_params?   s%   € ð —_‘_ØŸ/™/Ø×+Ñ+ñ
ð 	
r*   c                 ó:   — i d| j                   i¥| j                  ¥S )Nr9   )r:   rG   rD   s    r(   Ú_invocation_paramszSolarCommon._invocation_paramsG   s!   € àE�7˜DŸO™OÐ,ÐE°×0DÑ0DÐEÐEr*   Úbefore)ÚmodeÚvaluesc                 ó   — |S )Nr2   )ÚclsrL   s     r(   Úbuild_extrazSolarCommon.build_extraK   s	   € ð ˆr*   c                 ó  — t        |dd«      }|�t        |«      dk(  rt        d«      ‚t        |«      |d<   d|vr	t        |d<   d|v r*|d   j                  t        «      st        dt        z   «      ‚t        |d   |d   ¬«      |d<   |S )	Nr8   rC   r   z SOLAR_API_KEY must be configuredr   zbase_url must match with: )r   r   r5   )r
   Úlenr#   r	   r0   Ú
startswithÚSOLAR_SERVICEr   )rN   rL   r   s      r(   Úvalidate_environmentz SolarCommon.validate_environmentP   s�   € ä& v¨ÀÓPˆØˆ?œc '›l¨aÒ/ÜÐ?Ó@Ð@ä"7¸Ó"@ˆˆÑà˜VÑ#Ü!7ˆF�:Ñà˜Ñ¨¨zÑ(:×(EÑ(EÄmÔ(TÜÐ9¼MÑIÓJÐJä(Ø˜?Ñ+°f¸ZÑ6Hô
ˆˆyÑð ˆr*   c                  ó   — y)NÚsolarr2   rD   s    r(   Ú	_llm_typezSolarCommon._llm_typec   s   € àr*   )!r+   r,   r-   r.   r   r/   r0   r   r1   r   r8   r   r   r:   r;   Úintr<   Úfloatr   Úmodel_configÚpropertyÚdictrE   r   r   rG   rI   r   ÚclassmethodrO   r   rT   rW   r2   r*   r(   r4   r4   (   sI  … Ù.àÓØ*€HˆcÓ*Ù).°tÀ9Ô)M€M�8˜IÑ&ÓMØOÙ L¸Ô@€J�Ó@Ø]Ù DÔ)€J�Ó)Ø€K�ÓáØØ $ØØô	€Lð ð2˜Dò 2ó ð2ð ð
  c¨3 h¡ò 
ó ð
ð ðF D¨¨c¨¡Nò Fó ðFñ ˜(Ô#Øð  c¨3 h¡ð °Cò ó ó $ðð ð¨$ð °4ò ó ðð$ ð˜3ò ó ñr*   r4   c                   óV   — e Zd ZdZ ed¬«      Z	 	 ddedeee      dee	   de
d	ef
d
„Zy)ÚSolarzÂSolar large language models.

    To use, you should have the environment variable
    ``SOLAR_API_KEY`` set with your API key.
    Referenced from https://console.upstage.ai/services/solar
    T)r>   NÚpromptÚstopÚrun_managerÚkwargsr   c                 ó¤   — | j                   }d|dœg|d<   |j                  |«       | j                  j                  |«      }|�t	        ||«      }|S )NÚuser)Úroler   Úmessages)rI   Úupdater5   r)   r   )r&   r`   ra   rb   rc   r   r%   s          r(   Ú_callzSolar._callt   sZ   € ð ×)Ñ)ˆØ(.¸6ÑBÐCˆ�
ÑØ�‰�vÔØ�|‰|×&Ñ& wÓ/ˆØÐô ' t¨TÓ2ˆDàˆr*   )NN)r+   r,   r-   r.   r   rZ   r1   r   r   r   r   ri   r2   r*   r(   r_   r_   h   sb   „ ññ Øô€Lð %)Ø:>ñ	àðð �t˜C‘yÑ!ðð Ð6Ñ7ð	ð
 ðð 
ôr*   r_   )Útypingr   r   r   r   r    Úlangchain_core.callbacksr   Úlangchain_core.language_modelsr   Úlangchain_core.utilsr	   r
   r   Úpydanticr   r   r   r   r   Úlangchain_community.llms.utilsr   r0   rS   r   r4   r_   r2   r*   r(   Ú<module>rp      s]   ðß ,Ó ,ã Ý =Ý .ß VÑ V÷õ õ ?à:Ð Ø(€ôC�9ô Cô&=�)ô =ô@ˆK˜õ r*   