Ë
    µŒjÏ-  ã                  ó  — d dl mZ d dlZd dlmZ d dlmZmZmZ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 d dlmZmZmZ d d	lmZ d d
lmZ d dlmZ er
d dlZd dlm Z!  ejD                  e#«      Z$ G d„ de«      Z% G d„ de%e«      Z&y)é    )ÚannotationsN)Úcached_property)ÚTYPE_CHECKINGÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚOptional)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseLLM)ÚSerializable)Ú
GenerationÚGenerationChunkÚ	LLMResult)Úpre_init)Ú
get_fields)Ú
ConfigDictc                  óF  — e Zd ZU dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded	<   	 dZded
<   	 dZded<   	 dZded<   	 dZded<   dZded<   dZded<   dZded<   dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded <   	 ed.d!„«       Zed/d"„«       Zed0d#„«       Ze d1d$„«       Z!e"d2d%„«       Z#ed3d&„«       Z$	 d4	 	 	 	 	 d5d'„Z%	 d4	 	 	 	 	 d5d(„Z&d6d)„Z'd6d*„Z(d7d+„Z)d7d,„Z*d8d-„Z+y)9Ú_BaseGigaChatNúOptional[str]Úbase_urlÚauth_urlÚcredentialsÚscopeÚaccess_tokenÚmodelÚuserÚpasswordzOptional[float]ÚtimeoutúOptional[bool]Úverify_ssl_certsÚca_bundle_fileÚ	cert_fileÚkey_fileÚkey_file_passwordTÚboolÚ	profanityÚprofanity_checkFÚ	streamingÚtemperaturezOptional[int]Ú
max_tokensÚuse_api_for_tokensÚverboseÚtop_pÚrepetition_penaltyÚupdate_intervalc                 ó   — y)Nzgiga-chat-model© ©Úselfs    úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/gigachat.pyÚ	_llm_typez_BaseGigaChat._llm_typeM   s   € à ó    c                ó   — dddddœS )NÚGIGACHAT_CREDENTIALSÚGIGACHAT_ACCESS_TOKENÚGIGACHAT_PASSWORDÚGIGACHAT_KEY_FILE_PASSWORD)r   r   r    r'   r4   r5   s    r7   Ú
lc_secretsz_BaseGigaChat.lc_secretsQ   s   € ð 2Ø3Ø+Ø!=ñ	
ð 	
r9   c                 ó   — y)NTr4   r5   s    r7   Úlc_serializablez_BaseGigaChat.lc_serializableZ   s   € àr9   c                óÊ  — ddl } |j                  di d| j                  “d| j                  “d| j                  “d| j
                  “d| j                  “d| j                  “d	| j                  “d
| j                  “d| j                  “d| j                  “d| j                  “d| j                  “d| j                  “d| j                  “d| j                   “d| j"                  “ŽS )zReturns GigaChat API clientr   Nr   r   r   r   r   r   r*   r   r    r!   r#   r$   r%   r&   r'   r/   r4   )ÚgigachatÚGigaChatr   r   r   r   r   r   r*   r   r    r!   r#   r$   r%   r&   r'   r/   )r6   rC   s     r7   Ú_clientz_BaseGigaChat._client^   s  € ó 	à ˆx× Ñ ò 
Ø—]’]ð
à—]’]ð
ð ×(Ò(ð
ð —*’*ð	
ð
 ×*Ò*ð
ð —*’*ð
ð !×0Ò0ð
ð —’ð
ð —]’]ð
ð —L’Lð
ð "×2Ò2ð
ð  ×.Ò.ð
ð —n’nð
ð —]’]ð
ð #×4Ò4ð
ð  —L’Lð!
ð 	
r9   c                ó”  — 	 ddl }t        t        | «      j	                  «       «      }t        |j	                  «       «      |z
  }|rt
        j                  d|› d�«       d|v rM|j                  d«      du r:t
        j                  d«       |j                  d	«      €|j                  d«      |d	<   |S # t        $ r t        d«      ‚w xY w)
zJValidate authenticate data in environment and python package is installed.r   NzXCould not import gigachat python package. Please install it with `pip install gigachat`.zExtra fields z in GigaChat classr)   Fz?'profanity' field is deprecated. Use 'profanity_check' instead.r*   )rC   ÚImportErrorÚsetr   ÚkeysÚloggerÚwarningÚget)ÚclsÚvaluesrC   ÚfieldsÚdiffs        r7   Úvalidate_environmentz"_BaseGigaChat.validate_environmentv   sÇ   € ð	Ûô ”Z “_×)Ñ)Ó+Ó,ˆÜ�6—;‘;“=Ó! FÑ*ˆÙÜ�N‰N˜]¨4¨&Ð0BÐCÔDØ˜&Ñ  V§Z¡Z°Ó%<ÀÑ%EÜ�N‰NØQôð �z‰zÐ+Ó,Ð4Ø,2¯J©J°{Ó,C�Ð(Ñ)Øˆøô ò 	ÜðAóð ð	ús   ‚B2 Â2Cc                ó¢   — | j                   | j                  | j                  | j                  | j                  | j
                  | j                  dœS )zGet the identifying parameters.)r,   r   r)   r+   r-   r0   r1   )r,   r   r*   r+   r-   r0   r1   r5   s    r7   Ú_identifying_paramsz!_BaseGigaChat._identifying_paramsŒ   sE   € ð  ×+Ñ+Ø—Z‘ZØ×-Ñ-ØŸ™ØŸ/™/Ø—Z‘ZØ"&×"9Ñ"9ñ
ð 	
r9   c                ó:   — | j                   j                  ||«      S )zGet tokens of string list)rE   Útokens_count©r6   Úinput_r   s      r7   rU   z_BaseGigaChat.tokens_count™   s   € ð �|‰|×(Ñ(¨°Ó7Ð7r9   c              ƒ  óV   K  — | j                   j                  ||«      ƒ d{  –—† S 7 Œ­w)z"Get tokens of strings list (async)N)rE   Úatokens_countrV   s      r7   rY   z_BaseGigaChat.atokens_countŸ   s%   è ø€ ð —\‘\×/Ñ/°¸Ó>×>Ð>Ð>ús   ‚ )¢'£)c                ó6   — | j                   j                  «       S )z Get available models of Gigachat)rE   Ú
get_modelsr5   s    r7   r[   z_BaseGigaChat.get_models¥   s   € à�|‰|×&Ñ&Ó(Ð(r9   c              ƒ  óR   K  — | j                   j                  «       ƒ d{  –—† S 7 Œ­w)z(Get available models of Gigachat (async)N)rE   Úaget_modelsr5   s    r7   r]   z_BaseGigaChat.aget_models©   s   è ø€ à—\‘\×-Ñ-Ó/×/Ð/Ð/ús   ‚' %¡'c                ó8   — | j                   j                  |«      S )zGet info about model)rE   Ú	get_model©r6   r   s     r7   r_   z_BaseGigaChat.get_model­   s   € à�|‰|×%Ñ% eÓ,Ð,r9   c              ƒ  óT   K  — | j                   j                  |«      ƒ d{  –—† S 7 Œ­w)zGet info about model (async)N)rE   Ú
aget_modelr`   s     r7   rb   z_BaseGigaChat.aget_model±   s!   è ø€ à—\‘\×,Ñ,¨UÓ3×3Ð3Ð3ús   ‚(¡&¢(c                ó†   — | j                   r| j                  |g«      d   j                  S t        t	        |«      dz  «      S )z"Count approximate number of tokensr   gffffff@)r.   rU   ÚtokensÚroundÚlen)r6   Útexts     r7   Úget_num_tokensz_BaseGigaChat.get_num_tokensµ   s<   € à×"Ò"Ø×$Ñ$ d VÓ,¨QÑ/×6Ñ6Ð6äœ˜T› S™Ó)Ð)r9   )ÚreturnÚstr)ri   zDict[str, str])ri   r(   )ri   zgigachat.GigaChat)rN   r   ri   r   )ri   úDict[str, Any])N)rW   ú	List[str]r   r   ri   zList[gm.TokensCount])ri   z	gm.Models)r   rj   ri   zgm.Model)rg   rj   ri   Úint),Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r   r   r   r   r   r    r!   r#   r$   r%   r&   r'   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Úpropertyr8   r?   rA   r   rE   r   rQ   rS   rU   rY   r[   r]   r_   rb   rh   r4   r9   r7   r   r      s  … Ø"€HˆmÓ"ØØ"€HˆmÓ"ØØ!%€K�Ó%ØØ€Eˆ=ÓØ-à"&€L�-Ó&Ø%à€Eˆ=ÓØØ€Dˆ-ÓØ%Ø"€HˆmÓ"Ø%à#€Gˆ_Ó#ØØ'+Ð�nÓ+Ø/à$(€N�MÓ(Ø#€Iˆ}Ó#Ø"€HˆmÓ"Ø'+Ð�}Ó+ð €IˆtÓØ+Ø&*€O�^Ó*ØØ€IˆtÓØ1Ø#'€K�Ó'Ø-Ø $€J�Ó$Ø0Ø$Ð˜Ó$Ø-Ø€GˆTÓØØ!€Eˆ?Ó!ØPØ*.Ð˜Ó.Ø2Ø'+€O�_Ó+ØKàò!ó ð!ð ò
ó ð
ð òó ðð ò
ó ð
ð. òó ðð* ò

ó ð

ð 9=ð8Øð8Ø(5ð8à	ó8ð 9=ð?Øð?Ø(5ð?à	ó?ó)ó0ó-ó4ô*r9   r   c                  óÎ   — e Zd ZU dZdZded<   dd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd	„Z		 	 d	 	 	 	 	 	 	 	 	 dd
„Z
	 	 d	 	 	 	 	 	 	 	 	 dd„Z ed¬«      Zy)rD   a7  `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.llms import GigaChat
            giga = GigaChat(credentials=..., scope=..., verify_ssl_certs=False)
    r   rj   Úpayload_rolec                ó  — d|D �cg c]  }| j                   |dœ‘Œ c}i}| j                  r| j                  |d<   | j                  �| j                  |d<   | j                  �| j                  |d<   | j                  �| j                  |d<   | j
                  �| j
                  |d<   | j                  �| j                  |d<   | j                  �| j                  |d	<   | j                  rt        j                  d
|«       |S c c}w )NÚmessages)ÚroleÚcontentr   r*   r,   r0   r-   r1   r2   zGiga request: %s)rt   r   r*   r,   r0   r-   r1   r2   r/   rJ   Úinfo)r6   rv   ÚmÚpayloads       r7   Ú_build_payloadzGigaChat._build_payloadË   s  € àÉHÓUÉHÀq $×"3Ñ"3ÀÓBÈHÑUð#
ˆð �:Š:Ø#Ÿz™zˆG�GÑØ×ÑÐ+Ø)-×)=Ñ)=ˆGÐ%Ñ&Ø×ÑÐ'Ø%)×%5Ñ%5ˆG�MÑ"Ø�:‰:Ð!Ø#Ÿz™zˆG�GÑØ�?‰?Ð&Ø$(§O¡OˆG�LÑ!Ø×"Ñ"Ð.Ø,0×,CÑ,CˆGÐ(Ñ)Ø×ÑÐ+Ø)-×)=Ñ)=ˆGÐ%Ñ&à�<Š<Ü�K‰KÐ*¨GÔ4àˆùò) Vs   †Dc                óž  — g }|j                   D ]•  }|j                  }t        |j                  j                  d|i¬«      }|j                  |g«       |dk7  rt        j                  d|«       | j                  sŒlt        j                  d|j                  j                  «       Œ— |j                  }||j                  dœ}t        ||¬«      S )NÚfinish_reason)rg   Úgeneration_infoÚstopz'Giga generation stopped with reason: %szGiga response: %s)Útoken_usageÚ
model_name)ÚgenerationsÚ
llm_output)Úchoicesr~   r   Úmessagerx   ÚappendrJ   rK   r/   ry   Úusager   r   )r6   Úresponserƒ   Úresr~   Úgenr�   r„   s           r7   Ú_create_llm_resultzGigaChat._create_llm_resultã   sµ   € ØˆØ×#Ô#ˆCØ×-Ñ-ˆMÜØ—[‘[×(Ñ(Ø!0°-Ð @ôˆCð ×Ñ ˜uÔ%Ø Ò&Ü—‘Ø=Ø!ôð �|‹|Ü—‘Ð/°·±×1DÑ1DÕEð $ð —n‘nˆØ%0ÀÇÁÑOˆ
Ü [¸ZÔHÐHr9   Nc                ó  — |�|n| j                   }|r>d } | j                  |d   f||dœ|¤Ž}|D ]  }	|€|	}Œ||	z  }Œ |€J ‚t        |gg¬«      S | j                  |«      }
| j                  j                  |
«      }| j                  |«      S ©Nr   )r€   Úrun_manager)rƒ   )r+   Ú_streamr   r|   rE   ÚchatrŒ   ©r6   Úpromptsr€   r�   ÚstreamÚkwargsÚshould_streamÚ
generationÚstream_iterÚchunkr{   r‰   s               r7   Ú	_generatezGigaChat._generateø   s¸   € ð #)Ð"4™¸$¿.¹.ˆÙØ48ˆJØ&˜$Ÿ,™,Ø˜‘
ðØ!%°;ñØBHñˆKó %�ØÐ%Ø!&‘Jà %Ñ'‘Jð	 %ð
 Ð)Ð)Ð)Ü¨:¨,¨Ô8Ð8à×%Ñ% gÓ.ˆØ—<‘<×$Ñ$ WÓ-ˆà×&Ñ& xÓ0Ð0r9   c              ‹  óH  K  — |�|n| j                   }|r1d } | j                  |d   f||dœ|¤Ž}|2 3 d {  –—† }	|€|	}Œ||	z  }Œ| j                  |«      }
| j                  j                  |
«      ƒ d {  –—† }| j                  |«      S 7 ŒT6 |€J ‚t        |gg¬«      S 7 Œ*­wrŽ   )r+   Ú_astreamr   r|   rE   ÚachatrŒ   r’   s               r7   Ú
_ageneratezGigaChat._agenerate  sÎ   è ø€ ð #)Ð"4™¸$¿.¹.ˆÙØ48ˆJØ'˜$Ÿ-™-Ø˜‘
ðØ!%°;ñØBHñˆKñ  +÷ (�eØÐ%Ø!&‘Jà %Ñ'‘Jð ×%Ñ% gÓ.ˆØŸ™×+Ñ+¨GÓ4×4ˆà×&Ñ& xÓ0Ð0ð(ø˜{ð
 Ð)Ð)Ð)Ü¨:¨,¨Ô8Ð8ð 5ús1   ‚0B"²B¶B·Bº;B"Á5B Á6B"ÂBÂB"c              +  ó  K  — | j                  |g«      }| j                  j                  |«      D ]S  }|j                  sŒ|j                  d   j                  j
                  }|r|j                  |«       t        |¬«      –— ŒU y ­w©Nr   )rg   )r|   rE   r”   r…   Údeltarx   Úon_llm_new_tokenr   ©r6   Úpromptr€   r�   r•   r{   r™   rx   s           r7   r�   zGigaChat._stream.  sp   è ø€ ð ×%Ñ% v hÓ/ˆà—\‘\×(Ñ(¨Ö1ˆEØ�}‹}ØŸ-™-¨Ñ*×0Ñ0×8Ñ8�ÙØ×0Ñ0°Ô9Ü%¨7Ô3Ó3ñ 2ùs   ‚=BÁ ABc               ó8  K  — | j                  |g«      }| j                  j                  |«      2 3 d {  –—† }|j                  sŒ|j                  d   j                  j
                  }|r|j                  |«      ƒ d {  –—†  t        |¬«      ­–— Œd7 Œ_7 Œ6 y ­wr    )r|   rE   Úastreamr…   r¡   rx   r¢   r   r£   s           r7   rœ   zGigaChat._astream>  sˆ   è ø€ ð ×%Ñ% v hÓ/ˆàŸ<™<×/Ñ/°Ô8÷ 	4�%Ø�}‹}ØŸ-™-¨Ñ*×0Ñ0×8Ñ8�ÙØ%×6Ñ6°wÓ?×?Ð?Ü%¨7Ô3Ô3ð	4øð @øñ	 9ùs=   ‚.B°B´BµB¸BÁ9BÁ?BÂ BÂBÂBÂBÚallow)Úextra)rv   rl   ri   rk   )r‰   r   ri   r   )NNN)r“   rl   r€   úOptional[List[str]]r�   ú"Optional[CallbackManagerForLLMRun]r”   r"   r•   r   ri   r   )r“   rl   r€   r©   r�   ú'Optional[AsyncCallbackManagerForLLMRun]r”   r"   r•   r   ri   r   )NN)
r¤   rj   r€   r©   r�   rª   r•   r   ri   zIterator[GenerationChunk])
r¤   rj   r€   r©   r�   r«   r•   r   ri   zAsyncIterator[GenerationChunk])rn   ro   rp   Ú__doc__rt   rq   r|   rŒ   rš   rž   r�   rœ   r   Úmodel_configr4   r9   r7   rD   rD   ½   s;  … ñ	ð €L�#Óóó0Ið0 %)Ø:>Ø!%ð1àð1ð "ð1ð 8ð	1ð
 ð1ð ð1ð 
ó1ð< %)Ø?CØ!%ð1àð1ð "ð1ð =ð	1ð
 ð1ð ð1ð 
ó1ð< %)Ø:>ð	4àð4ð "ð4ð 8ð	4ð
 ð4ð 
#ó4ð& %)Ø?Cð	4àð4ð "ð4ð =ð	4ð
 ð4ð 
(ó4ñ  Øô�Lr9   rD   )'Ú
__future__r   ÚloggingÚ	functoolsr   Útypingr   r   r   r   r	   r
   r   Úlangchain_core.callbacksr   r   Ú#langchain_core.language_models.llmsr   Ú langchain_core.load.serializabler   Úlangchain_core.outputsr   r   r   Úlangchain_core.utilsr   Úlangchain_core.utils.pydanticr   Úpydanticr   rC   Úgigachat.modelsÚmodelsÚgmÚ	getLoggerrn   rJ   r   rD   r4   r9   r7   Ú<module>r½      sm   ðÝ "ã Ý %ß T× TÑ T÷õ 8Ý 9ß IÑ IÝ )Ý 4Ý áÛÝ à	ˆ×	Ñ	˜8Ó	$€ôa*�Lô a*ôHSˆ}˜gõ Sr9   