Ë
    µŒj«&  ã                  óX  — d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
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mZmZmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$m%Z%m&Z& d d	l'm(Z( erd dl)m*Z+  ejX                  e-«      Z.dd
„Z/dd„Z0	 	 	 	 	 	 dd„Z1 eddd¬«       G d„ de(e«      «       Z2y)é    )ÚannotationsN)	ÚTYPE_CHECKINGÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚMappingÚOptionalÚType)Ú
deprecated)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModelÚagenerate_from_streamÚgenerate_from_stream)Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚChatMessageChunkÚFunctionMessageÚFunctionMessageChunkÚHumanMessageÚHumanMessageChunkÚSystemMessageÚSystemMessageChunk)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)Ú_BaseGigaChatc                óä  — ddl m}m} i }| j                  x}r0t	        ||«      rt        |«      |d<   nt	        |t
        «      r||d<   | j                  |j                  k(  rt        | j                  ¬«      S | j                  |j                  k(  rt        | j                  ¬«      S | j                  |j                  k(  rt        | j                  |¬«      S t        d| j                  › d| › �«      ‚)Nr   )ÚFunctionCallÚMessagesRoleÚfunction_call©Úcontent©r(   Úadditional_kwargszGot unknown role Ú )Úgigachat.modelsr$   r%   r&   Ú
isinstanceÚdictÚroleÚSYSTEMr   r(   ÚUSERr   Ú	ASSISTANTr   Ú	TypeError)Úmessager$   r%   r*   r&   s        úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/chat_models/gigachat.pyÚ_convert_dict_to_messager6   2   sÎ   € ß:à ÐØ×-Ñ-Ð-€}Ð-Ü�m \Ô2Ü15°mÓ1DÐ˜oÒ.Ü˜¤tÔ,Ø1>Ð˜oÑ.à‡|�|�|×*Ñ*Ò*Ü W§_¡_Ô5Ð5Ø	�‰˜×*Ñ*Ò	*Ü G§O¡OÔ4Ð4Ø	�‰˜×/Ñ/Ò	/Ü §¡ÐDUÔVÐVäÐ+¨G¯L©L¨>¸¸7¸)ÐDÓEÐEó    c                ó<  — ddl m}m} t        | t        «      r ||j
                  | j                  ¬«      S t        | t        «      r ||j                  | j                  ¬«      S t        | t        «      r9 ||j                  | j                  | j                  j                  dd «      ¬«      S t        | t        «      r$ | || j                  «      | j                  ¬«      S t        | t        «      r ||j                   | j                  ¬«      S t#        d| › �«      ‚)Nr   )ÚMessagesr%   )r/   r(   r&   )r/   r(   r&   zGot unknown type )r,   r9   r%   r-   r   r0   r(   r   r1   r   r2   r*   Úgetr   r/   r   ÚFUNCTIONr3   )r4   r9   r%   s      r5   Ú_convert_message_to_dictr<   F   sÞ   € ß6ä�'œ=Ô)Ù˜\×0Ñ0¸'¿/¹/ÔJÐJÜ	�Gœ\Ô	*Ù˜\×.Ñ.¸¿¹ÔHÐHÜ	�GœYÔ	'ÙØ×'Ñ'Ø—O‘OØ!×3Ñ3×7Ñ7¸ÈÓNô
ð 	
ô
 
�Gœ[Ô	)Ù™\¨'¯,©,Ó7ÀÇÁÔQÐQÜ	�Gœ_Ô	-Ù˜\×2Ñ2¸G¿O¹OÔLÐLäÐ+¨G¨9Ð5Ó6Ð6r7   c                óÒ  — | j                  d«      }| j                  d«      xs d}i }| j                  d«      r!t        | d   «      }d|v r
|d   €d|d<   ||d<   |dk(  s	|t        k(  rt        |¬«      S |dk(  s	|t        k(  rt        ||¬	«      S |d
k(  s	|t        k(  rt	        |¬«      S |dk(  s	|t
        k(  rt        || d   ¬«      S |s	|t        k(  rt        ||¬«      S  ||¬«      S )Nr/   r(   Ú r&   ÚnameÚuserr'   Ú	assistantr)   ÚsystemÚfunction)r(   r?   )r(   r/   )r:   r.   r   r   r   r   r   )Ú_dictÚdefault_classr/   r(   r*   r&   s         r5   Ú_convert_delta_to_message_chunkrF   [   s  € ð �9‰9�VÓ€DØ�i‰i˜	Ó"Ò( b€GØ ÐØ‡y�y�Ô!Ü˜U ?Ñ3Ó4ˆØ�]Ñ" }°VÑ'<Ð'DØ$&ˆM˜&Ñ!Ø-:Ð˜/Ñ*àˆv‚~˜Ô*;Ò;Ü ¨Ô1Ð1Ø	�Ò	 ´Ò ?Ü gÐARÔSÐSØ	�Ò	˜]Ô.@Ò@Ü!¨'Ô2Ð2Ø	�Ò	˜}Ô0DÒDÜ#¨G¸%À¹-ÔHÐHÙ	�Ô"2Ò2Ü¨°dÔ;Ð;á WÔ-Ð-r7   z0.3.5z1.0zlangchain_gigachat.GigaChat)ÚsinceÚremovalÚalternative_importc                  ó¬   — e Zd ZdZd	d„Zd
d„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z	y)ÚGigaChata<  `GigaChat` large language models API.

    To use, you should pass login and password to access GigaChat API or use token.

    Example:
        .. code-block:: python

            from langchain_community.chat_models import GigaChat
            giga = GigaChat(credentials=..., scope=..., verify_ssl_certs=...)
    c                óh  — ddl m}  ||D �cg c]  }t        |«      ‘Œ c}¬«      }|j                  dd «      |_        | j
                  |_        | j                  �| j                  |_        | j                  �| j                  |_        | j                  �| j                  |_        | j                  �| j                  |_	        | j                  �| j                  |_
        | j                  �| j                  |_        | j                  r$t        j                  d|j                  «       «       |S c c}w )Nr   )ÚChat)ÚmessagesÚ	functionszGiga request: %s)r,   rM   r<   r:   rO   ÚmodelÚprofanity_checkÚtemperatureÚtop_pÚ
max_tokensÚrepetition_penaltyÚupdate_intervalÚverboseÚloggerÚwarningr.   )ÚselfrN   ÚkwargsrM   ÚmÚpayloads         r5   Ú_build_payloadzGigaChat._build_payload†   s  € Ý(áÙ;CÓD¹8°aÔ.¨qÕ1¸8ÑDô
ˆð #ŸJ™J {°DÓ9ˆÔØŸ
™
ˆŒà×ÑÐ+Ø&*×&:Ñ&:ˆGÔ#Ø×ÑÐ'Ø"&×"2Ñ"2ˆGÔØ�:‰:Ð!Ø ŸJ™JˆGŒMØ�?‰?Ð&Ø!%§¡ˆGÔØ×"Ñ"Ð.Ø)-×)@Ñ)@ˆGÔ&Ø×ÑÐ+Ø&*×&:Ñ&:ˆGÔ#à�<Š<Ü�N‰NÐ-¨w¯|©|«~Ô>àˆùò- Es   �D/c                ó†  — g }|j                   D ]‹  }t        |j                  «      }|j                  }t	        |d|i¬«      }|j                  |«       |dk7  rt        j                  d|«       | j                  sŒlt        j                  d|j                  «       Œ� |j                  |j                  dœ}t        ||¬«      S )NÚfinish_reason©r4   Úgeneration_infoÚstopz'Giga generation stopped with reason: %szGiga response: %s)Útoken_usageÚ
model_name)ÚgenerationsÚ
llm_output)Úchoicesr6   r4   r`   r   ÚappendrX   rY   rW   r(   ÚusagerP   r!   )rZ   Úresponserf   Úresr4   r`   Úgenrg   s           r5   Ú_create_chat_resultzGigaChat._create_chat_result¢   s¬   € ØˆØ×#Ô#ˆCÜ.¨s¯{©{Ó;ˆGØ×-Ñ-ˆMÜ ØØ!0°-Ð @ôˆCð ×Ñ˜sÔ#Ø Ò&Ü—‘Ø=Ø!ôð �|‹|Ü—‘Ð2°G·O±OÕDð $ð &.§^¡^À8Ç>Á>ÑRˆ
Ü k¸jÔIÐIr7   Nc                óæ   — |�|n| j                   }|r! | j                  |f||dœ|¤Ž}t        |«      S  | j                  |fi |¤Ž}| j                  j                  |«      }	| j                  |	«      S ©N)rc   Úrun_manager)Ú	streamingÚ_streamr   r^   Ú_clientÚchatrn   ©
rZ   rN   rc   rq   Ústreamr[   Úshould_streamÚstream_iterr]   rk   s
             r5   Ú	_generatezGigaChat._generate¶   s…   € ð #)Ð"4™¸$¿.¹.ˆÙØ&˜$Ÿ,™,ØðØ#°ñØ@FñˆKô (¨Ó4Ð4à%�$×%Ñ% hÑ9°&Ñ9ˆØ—<‘<×$Ñ$ WÓ-ˆà×'Ñ'¨Ó1Ð1r7   c              ‹  ó  K  — |�|n| j                   }|r) | j                  |f||dœ|¤Ž}t        |«      ƒ d {  –—† S  | j                  |fi |¤Ž}| j                  j                  |«      ƒ d {  –—† }	| j                  |	«      S 7 ŒK7 Œ­wrp   )rr   Ú_astreamr   r^   rt   Úachatrn   rv   s
             r5   Ú
_ageneratezGigaChat._agenerateÊ   sš   è ø€ ð #)Ð"4™¸$¿.¹.ˆÙØ'˜$Ÿ-™-ØðØ#°ñØ@FñˆKô /¨{Ó;×;Ð;à%�$×%Ñ% hÑ9°&Ñ9ˆØŸ™×+Ñ+¨GÓ4×4ˆà×'Ñ'¨Ó1Ð1ð <øð 5ús!   ‚7B	¹Bº5B	Á/BÁ0B	ÂB	c              +  óÖ  K  —  | j                   |fi |¤Ž}| j                  j                  |«      D ]´  }t        |t        «      s|j	                  «       }t        |d   «      dk(  rŒ5|d   d   }|j                  di «      j                  di «      }t        |d   t        «      }|j                  d«      }	|	�t	        |	¬«      nd }
|r|j                  |«       t        ||
¬«      –— Œ¶ y ­w©Nrh   r   Údeltar(   r`   )r`   ra   )r^   rt   rw   r-   r.   Úlenr:   rF   r   Úon_llm_new_tokenr    ©rZ   rN   rc   rq   r[   r]   ÚchunkÚchoicer(   r`   rb   s              r5   rs   zGigaChat._streamÞ   sä   è ø€ ð &�$×%Ñ% hÑ9°&Ñ9ˆà—\‘\×(Ñ(¨Ö1ˆEÜ˜e¤TÔ*ØŸ
™
›�Ü�5˜Ñ#Ó$¨Ò)Øà˜9Ñ% aÑ(ˆFØ—j‘j ¨"Ó-×1Ñ1°)¸RÓ@ˆGÜ3°F¸7±OÄ^ÓTˆEà"ŸJ™J Ó7ˆMð 6CÐ5N” =Õ1ÐTXð ñ Ø×,Ñ,¨WÔ5ä%¨eÀ_ÔUÓUñ' 2ùs   ‚C'C)c               óü  K  —  | j                   |fi |¤Ž}| j                  j                  |«      2 3 d {  –—† }t        |t        «      s|j	                  «       }t        |d   «      dk(  rŒ;|d   d   }|j                  di «      j                  di «      }t        |d   t        «      }|j                  d«      }	|	�t	        |	¬«      nd }
|r|j                  |«      ƒ d {  –—†  t        ||
¬«      ­–— ŒÅ7 ŒÀ7 Œ6 y ­wr€   )r^   rt   Úastreamr-   r.   r‚   r:   rF   r   rƒ   r    r„   s              r5   r|   zGigaChat._astreamü   sý   è ø€ ð &�$×%Ñ% hÑ9°&Ñ9ˆàŸ<™<×/Ñ/°Ô8÷ 	V�%Ü˜e¤TÔ*ØŸ
™
›�Ü�5˜Ñ#Ó$¨Ò)Øà˜9Ñ% aÑ(ˆFØ—j‘j ¨"Ó-×1Ñ1°)¸RÓ@ˆGÜ3°F¸7±OÄ^ÓTˆEà"ŸJ™J Ó7ˆMð 6CÐ5N” =Õ1ÐTXð ñ Ø!×2Ñ2°7Ó;×;Ð;ä%¨eÀ_ÔUÔUð'	Vøð" <øñ# 9ùs8   ‚/C<±C:µC6¶C:¹B'C<Ã C8Ã!C<Ã6C:Ã8C<Ã:C<)rN   úList[BaseMessage]r[   r   Úreturnzgm.Chat)rk   r   rŠ   r!   )NNN)rN   r‰   rc   úOptional[List[str]]rq   ú"Optional[CallbackManagerForLLMRun]rw   úOptional[bool]r[   r   rŠ   r!   )rN   r‰   rc   r‹   rq   ú'Optional[AsyncCallbackManagerForLLMRun]rw   r�   r[   r   rŠ   r!   )NN)
rN   r‰   rc   r‹   rq   rŒ   r[   r   rŠ   zIterator[ChatGenerationChunk])
rN   r‰   rc   r‹   rq   rŽ   r[   r   rŠ   z"AsyncIterator[ChatGenerationChunk])
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r^   rn   rz   r~   rs   r|   © r7   r5   rK   rK   u   s-  „ ñ	óó8Jð. %)Ø:>Ø!%ð2à#ð2ð "ð2ð 8ð	2ð
 ð2ð ð2ð 
ó2ð. %)Ø?CØ!%ð2à#ð2ð "ð2ð =ð	2ð
 ð2ð ð2ð 
ó2ð. %)Ø:>ð	Và#ðVð "ðVð 8ð	Vð
 ðVð 
'óVðB %)Ø?Cð	Và#ðVð "ðVð =ð	Vð
 ðVð 
,ôVr7   rK   )r4   úgm.MessagesrŠ   r   )r4   zgm.BaseMessagerŠ   r”   )rD   zMapping[str, Any]rE   zType[BaseMessageChunk]rŠ   r   )3Ú
__future__r   ÚloggingÚtypingr   r   r   r   r   r	   r
   r   r   Úlangchain_core._api.deprecationr   Úlangchain_core.callbacksr   r   Ú*langchain_core.language_models.chat_modelsr   r   r   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   r   r   r   Úlangchain_core.outputsr   r    r!   Ú!langchain_community.llms.gigachatr"   r,   ÚmodelsÚgmÚ	getLoggerr�   rX   r6   r<   rF   rK   r“   r7   r5   Ú<module>r¡      s¿   ðÝ "ã ÷
÷ 
õ 
õ 7÷÷ñ ÷
÷ ÷ ó ÷ SÑ Rå ;áÝ à	ˆ×	Ñ	˜8Ó	$€óFó(7ð*.Øð.Ø-Cð.àó.ñ4 Ø
ØØ4ôô
^Vˆ}˜mó ^Vóñ
^Vr7   