§
    šŠtjâ  ã                   óò   — 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j        e¦  «        Z e
ddd¬¦  «         G d„ de¦  «        ¦   «         ZdS )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#dS ) Ú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                 óH   — t          t          |dd¦  «        ¦  «        |d<   |S )z,Validate that api key exists in environment.r   ÚTOGETHER_API_KEYr   )Úclsr%   s     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/together.pyÚvalidate_environmentzTogether.validate_environmentI   s1   € õ &;Ý  Ð);Ð=OÑPÔPñ&
ô &
ˆÐ!Ñ"ð ˆó    c                 ó   — dS )zReturn type of model.Útogether© ©Úselfs    r*   Ú	_llm_typezTogether._llm_typeR   s	   € ð ˆzr,   Úoutputc                 ó6   — |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Ð3Ð3Ð3Ð3Ð3à)˜KÐ)Ð)Ð)r,   c                 óP   — | j         | j        | j        | j        | j        | j        dœS )N©r   r   r   r   r   r   r>   r0   s    r*   Údefault_paramszTogether.default_params`   s3   € ð ”ZØÔ+Ø”ZØ”ZØœ/Ø"&Ô"9ð
ð 
ð 	
r,   ÚpromptÚstopÚrun_managerÚkwargsc                 óà  — d| j                              ¦   «         › �ddœ}|rt          |¦  «        dk    r|d         n|}i | j        ¥||dœ¥|¥}d„ |                     ¦   «         D ¦   «         }t          |¬¦  «        }|                     | j        |¬	¦  «        }	|	j        d
k    rt          d|	j        › �¦  «        ‚|	j        dk    rt          d|	j        › �¦  «        ‚|	j        dk    rt          d|	j        › d|	j        › �¦  «        ‚|	                     ¦   «         }
|
                     d¦  «        dk    r%|
                     dd¦  «        }t          |¦  «        ‚|                      |
¦  «        }|S )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   c                 ó   — i | ]
\  }}|®||“ŒS ©Nr/   ©Ú.0ÚkÚvs      r*   ú
<dictcomp>z"Together._call.<locals>.<dictcomp>ˆ   ó   € ÐEÐEÐE™D˜A˜q°q°}�1�a°}°}°}r,   )Ú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   rS   Ústop_to_useÚpayloadÚrequestÚresponserU   Úerr_msgr3   s                r*   Ú_callzTogether._callk   s¹  € ð" R tÔ'<×'MÒ'MÑ'OÔ'OÐQÐQØ.ð
ð 
ˆð "&ÐB­#¨d©)¬)°qª.¨.�d˜1”g�g¸dˆð#
ØÔ!ð#
àØð#
ð #
ð #
ð ð	#
ˆð FÐE G§M¢M¡O¤OÐEÑEÔEˆÝ 7Ð+Ñ+Ô+ˆØ—<’< D¤M¸�<Ñ@Ô@ˆàÔ 3Ò&Ð&ÝÐL°hÔ6JÐLÐLÑMÔMÐMØÔ! SÒ(Ð(ÝÐUÀhÄmÐUÐUÑVÔVÐVØÔ! SÒ(Ð(Ýð;ØÔ'ð;ð ;Ø+3¬=ð;ð ;ñô ð ð
 �}Š}‰ŒˆØ�8Š8�HÑÔ Ò+Ð+Ø—h’h˜wÐ(9Ñ:Ô:ˆGÝ˜GÑ$Ô$Ð$à×$Ò$ TÑ*Ô*ˆàˆr,   c              ‹   óÄ  K  — d| j                              ¦   «         › �ddœ}|rt          |¦  «        dk    r|d         n|}i | j        ¥||dœ¥|¥}d„ |                     ¦   «         D ¦   «         }t          ¦   «         4 ƒd{V —†}|                     | j        ||¬	¦  «        4 ƒd{V —†	 }	|	j        d
k    rt          d|	j        › �¦  «        ‚|	j        dk    rt          d|	j        › �¦  «        ‚|	j        dk    rt          d|	j        › d|	j        › �¦  «        ‚|	                     ¦   «         ƒ d{V —†}
|
                     d¦  «        dk    r%|
                     dd¦  «        }t          |¦  «        ‚|                      |
¦  «        }|cddd¦  «        ƒd{V —† cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   	 ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )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   c                 ó   — i | ]
\  }}|®||“ŒS rL   r/   rM   s      r*   rQ   z#Together._acall.<locals>.<dictcomp>»   rR   r,   N)rh   rS   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   )r   ra   rb   r?   rc   r   rd   r   r]   rf   rg   r6   rh   ri   r7   )r1   r@   rA   rB   rC   rS   rj   rk   Úsessionrm   Úresponse_jsonrn   r3   s                r*   Ú_acallzTogether._acallŸ   s‘  è è € ð  R tÔ'<×'MÒ'MÑ'OÔ'OÐQÐQØ.ð
ð 
ˆð "&ÐB­#¨d©)¬)°qª.¨.�d˜1”g�g¸dˆð#
ØÔ!ð#
àØð#
ð #
ð #
ð ð	#
ˆð FÐE G§M¢M¡O¤OÐEÑEÔEˆÝ ‘?”?ð 	ð 	ð 	ð 	ð 	ð 	ð 	 gØ—|’|Ø” G°Wð $ñ ô ð ð ð ð ð ð ð ð àØ”? cÒ)Ð)Ý#Ð$O¸h¼oÐ$OÐ$OÑPÔPÐPØ”_¨Ò+Ð+Ý$ØPÀÄÐPÐPñô ð ð ”_¨Ò+Ð+Ý#ð>Ø#œ?ð>ð >Ø.6¬mð>ð >ñô ð ð
 '/§m¢m¡o¤oÐ 5Ð 5Ð 5Ð 5Ð 5Ð 5�à ×$Ò$ XÑ.Ô.°*Ò<Ð<Ø+×/Ò/°Ð9JÑKÔK�GÝ# GÑ,Ô,Ð,à×,Ò,¨]Ñ;Ô;�Øð-ð ð ð ñ ô ð ð ð ð ð ð ð ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s7   Â$GÂ(CF*ÆGÆ*
F4	Æ4GÆ7F4	Æ8GÇ
GÇ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
   ro   r	   rt   r/   r,   r*   r   r      s®  € € € € € € ðð ð 9€HˆcÐ8Ð8Ñ8Ø!ØÐÐÑØVØ€J€J�Jðð $(€K�˜%”Ð'Ð'Ñ'ØØ!€Eˆ8�EŒ?Ð!Ð!Ñ!ðð  €Eˆ8�CŒ=ÐÐÑðð !%€J�˜”Ð$Ð$Ñ$Ø3Ø*.Ð˜ œÐ.Ð.Ñ.ðð #€Hˆh�sŒmÐ"Ð"Ñ"ðð �:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð ð˜3ð ð ð ñ „Xðð6 Tð 6¨cð 6ð 6ð 6ð 6ð ð*˜Cð *ð *ð *ñ „\ð*ð
 ð
  S¨# X¤ð 
ð 
ð 
ñ „Xð
ð %)Ø:>ð	2ð 2àð2ð �t˜C”yÔ!ð2ð Ð6Ô7ð	2ð
 ð2ð 
ð2ð 2ð 2ð 2ðn %)Ø?Cð	4ð 4àð4ð �t˜C”yÔ!ð4ð Ð;Ô<ð	4ð
 ð4ð 
ð4ð 4ð 4ð 4ð 4ð 4r,   r   )rx   Ú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   Ú	getLoggerru   Úloggerr   r/   r,   r*   ú<module>r�      sX  ðØ 2Ð 2à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à !Ð !Ð !Ð !Ð !Ð !Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à ;Ð ;Ð ;Ð ;Ð ;Ð ;à	ˆÔ	˜8Ñ	$Ô	$€ð €Ø
˜EÐ6Sðñ ô ð{ð {ð {ð {ð {ˆsñ {ô {ñô ð{ð {ð {r,   