Ë
    µŒjâ  ã                   óâ   — d Z ddlZddlmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZmZ ddlmZ ddlmZmZ dd	lmZmZmZ dd
lmZ  ej2                  e«      Z e
ddd¬«       G d„ de«      «       Zy)z,Wrapper around Together AI's Completion API.é    N)ÚAnyÚDictÚListÚOptional)ÚClientSession)Ú
deprecated)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚLLM©Úconvert_to_secret_strÚget_from_dict_or_env)Ú
ConfigDictÚ	SecretStrÚmodel_validator)ÚRequestsz0.0.12z1.0zlangchain_together.Together)ÚsinceÚremovalÚalternative_importc                   óÆ  — 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defd„«       «       Zedefd„«       Zd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) ÚTogetheraL  LLM models from `Together`.

    To use, you'll need an API key which you can find here:
    https://api.together.xyz/settings/api-keys. This can be passed in as init param
    ``together_api_key`` or set as environment variable ``TOGETHER_API_KEY``.

    Together AI API reference: https://docs.together.ai/reference/inference
    z"https://api.together.xyz/inferenceÚbase_urlÚtogether_api_keyÚmodelNÚtemperatureÚtop_pÚtop_kÚ
max_tokensÚrepetition_penaltyÚlogprobsÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó8   — t        t        |dd«      «      |d<   |S )z,Validate that api key exists in environment.r   ÚTOGETHER_API_KEYr   )Úclsr%   s     úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/together.pyÚvalidate_environmentzTogether.validate_environmentI   s)   € ô &;Ü  Ð);Ð=OÓPó&
ˆÐ!Ñ"ð ˆó    c                  ó   — y)zReturn type of model.Útogether© ©Úselfs    r*   Ú	_llm_typezTogether._llm_typeR   s   € ð r,   Úoutputc                 ó   — |d   d   d   d   S )Nr3   Úchoicesr   Útextr/   )r1   r3   s     r*   Ú_format_outputzTogether._format_outputW   s   € Ø�hÑ 	Ñ*¨1Ñ-¨fÑ5Ð5r,   c                  ó   — ddl m}  d| › �S )Nr   ©Ú__version__z
langchain/)Úlangchain_communityr:   r9   s    r*   Úget_user_agentzTogether.get_user_agentZ   s   € å3à˜K˜=Ð)Ð)r,   c                 óŒ   — | j                   | j                  | j                  | j                  | j                  | j
                  dœS )N©r   r   r   r   r   r   r>   r0   s    r*   Údefault_paramszTogether.default_params`   s<   € ð —Z‘ZØ×+Ñ+Ø—Z‘ZØ—Z‘ZØŸ/™/Ø"&×"9Ñ"9ñ
ð 	
r,   ÚpromptÚstopÚrun_managerÚkwargsc                 óð  — d| j                   j                  «       › �ddœ}|rt        |«      dk(  r|d   n|}i | j                  ¥||dœ¥|¥}|j	                  «       D ��	ci c]  \  }}	|	€Œ	||	“Œ }}}	t        |¬«      }
|
j                  | j                  |¬«      }|j                  d	k\  rt        d
|j                  › �«      ‚|j                  dk\  rt        d|j                  › �«      ‚|j                  dk7  r%t        d|j                  › d|j                  › �«      ‚|j                  «       }|j                  d«      dk7  r|j                  dd«      }t        |«      ‚| j                  |«      }|S c c}	}w )zÁCall out to Together's text generation endpoint.

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

        Returns:
            The string generated by the model..
        úBearer úapplication/json©ÚAuthorizationzContent-Typeé   r   ©r@   rA   )Úheaders)ÚurlÚdataéô  úTogether Server: Error é�  ú&Together received an invalid payload: éÈ   ú5Together returned an unexpected response with status ú: ÚstatusÚfinishedÚerrorúUndefined Error)r   Úget_secret_valueÚlenr?   Úitemsr   Úpostr   Ústatus_codeÚ	ExceptionÚ
ValueErrorr6   ÚjsonÚgetr7   )r1   r@   rA   rB   rC   rK   Ústop_to_useÚpayloadÚkÚvÚrequestÚresponserM   Úerr_msgr3   s                  r*   Ú_callzTogether._callk   sŽ  € ð"  ' t×'<Ñ'<×'MÑ'MÓ'OÐ&PÐQØ.ñ
ˆñ "&¬#¨d«)°qª.�d˜1’g¸dˆð#
Ø×!Ñ!ð#
àØò#
ð ð	#
ˆð %,§M¡M¤OÔE¡O™D˜A˜q°q±}�1�a‘4 OˆÑEÜ 7Ô+ˆØ—<‘< D§M¡M¸�<Ó@ˆà×Ñ 3Ò&ÜÐ5°h×6JÑ6JÐ5KÐLÓMÐMØ×!Ñ! SÒ(ÜÐEÀhÇmÁmÀ_ÐUÓVÐVØ×!Ñ! SÒ(ÜØGØ×'Ñ'Ð(¨¨8¯=©=¨/ð;óð ð
 �}‰}‹ˆØ�8‰8�HÓ Ò+Ø—h‘h˜wÐ(9Ó:ˆGÜ˜GÓ$Ð$à×$Ñ$ TÓ*ˆàˆùó+ Fs   Á 
E2Á+E2c              ‹   óþ  K  — d| j                   j                  «       › �ddœ}|rt        |«      dk(  r|d   n|}i | j                  ¥||dœ¥|¥}|j	                  «       D ��	ci c]  \  }}	|	€Œ	||	“Œ }}}	t        «       4 ƒd{  –—† }
|
j                  | j                  ||¬«      4 ƒd{  –—† }|j                  d	k\  rt        d
|j                  › �«      ‚|j                  dk\  rt        d|j                  › �«      ‚|j                  dk7  r%t        d|j                  › d|j                  › �«      ‚|j                  «       ƒ d{  –—† }|j                  d«      dk7  r|j                  dd«      }t        |«      ‚| j                  |«      }|cddd«      ƒd{  –—†  cddd«      ƒd{  –—†  S c c}	}w 7 �Œ27 �Œ7 Œv7 Œ$7 Œ# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   y# 1 ƒd{  –—†7  sw Y   yxY w­w)zËCall Together model to get predictions based on the prompt.

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

        Returns:
            The string generated by the model.
        rE   rF   rG   rI   r   rJ   N)r`   rK   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   )r   rY   rZ   r?   r[   r   r\   r   rU   r^   r_   r6   r`   ra   r7   )r1   r@   rA   rB   rC   rK   rb   rc   rd   re   Úsessionrg   Úresponse_jsonrh   r3   s                  r*   Ú_acallzTogether._acallŸ   sñ  è ø€ ð   ' t×'<Ñ'<×'MÑ'MÓ'OÐ&PÐQØ.ñ
ˆñ "&¬#¨d«)°qª.�d˜1’g¸dˆð#
Ø×!Ñ!ð#
àØò#
ð ð	#
ˆð %,§M¡M¤OÔE¡O™D˜A˜q°q±}�1�a‘4 OˆÑEÜ —?”? gØ—|‘|Ø—‘ G°Wð $÷ ô àØ—?‘? cÒ)Ü#Ð&=¸h¿o¹oÐ=NÐ$OÓPÐPØ—_‘_¨Ò+Ü$Ø@ÀÇÁÀÐPóð ð —_‘_¨Ò+Ü#ØOØ#Ÿ?™?Ð+¨2¨h¯m©m¨_ð>óð ð
 '/§m¡m£o× 5�à ×$Ñ$ XÓ.°*Ò<Ø+×/Ñ/°Ð9JÓK�GÜ# GÓ,Ð,à×,Ñ,¨]Ó;�Ø÷-÷ ð ÷ #—?‘?ùó FØ"ùðùð !6øðøð #ø÷÷ ñ ú÷ #—?—?—?“?üsÈ   ‚A G=Á"
F/Á-F/Á2G=ÂF5ÂG=Â#G(Â*F8Â+G(Â.BGÅF;ÅAGÆG(ÆF=ÆG(ÆG=Æ)F?Æ*G=Æ8G(Æ;GÆ=G(Æ?G=ÇG	ÇG
ÇG	ÇG(ÇG=Ç!G$Ç"G=Ç(G:Ç.G1Ç/G:Ç6G=)NN)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   Úfloatr   r   Úintr   r   r    r   Úmodel_configr   Úclassmethodr   r   r+   Úpropertyr2   Údictr7   Ústaticmethodr<   r?   r   r
   ri   r	   rm   r/   r,   r*   r   r      sã  … ñð 9€HˆcÓ8Ø!ØÓØVØƒJðð $(€K�˜%‘Ó'ØØ!€Eˆ8�E‰?Ó!ðð  €Eˆ8�C‰=Óðð !%€J�˜‘Ó$Ø3Ø*.Ð˜ ™Ó.ðð #€Hˆh�s‰mÓ"ðñ Øô€Lñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð ð˜3ò ó ðð6 Tð 6¨có 6ð ð*˜Cò *ó ð*ð
 ð
  S¨# X¡ò 
ó ð
ð %)Ø:>ñ	2àð2ð �t˜C‘yÑ!ð2ð Ð6Ñ7ð	2ð
 ð2ð 
ó2ðn %)Ø?Cñ	4àð4ð �t˜C‘yÑ!ð4ð Ð;Ñ<ð	4ð
 ð4ð 
ô4r,   r   )rq   ÚloggingÚtypingr   r   r   r   Úaiohttpr   Úlangchain_core._api.deprecationr   Úlangchain_core.callbacksr	   r
   Ú#langchain_core.language_models.llmsr   Úlangchain_core.utilsr   r   Úpydanticr   r   r   Ú&langchain_community.utilities.requestsr   Ú	getLoggerrn   Úloggerr   r/   r,   r*   Ú<module>r†      sj   ðÙ 2ã ß ,Ó ,å !Ý 6÷õ 4ß Lß ;Ñ ;å ;à	ˆ×	Ñ	˜8Ó	$€ñ Ø
˜EÐ6Sôô{ˆsó {óñ{r,   