Ë
    µŒjE  ã                  óØ   — 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	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ  ej(                  e«      Zd
ZdZ eddd¬«       G d„ dee«      «       Zy)é    )ÚannotationsN)Úcached_property)ÚAnyÚDictÚListÚOptional)Ú
deprecated)Ú
Embeddings)Úpre_init)Ú
get_fields)Ú	BaseModeli@B éZ   z0.3.5z1.0z%langchain_gigachat.GigaChatEmbeddings)ÚsinceÚremovalÚalternative_importc                  ó.  — e Zd ZU dZ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dd„Zdd„Zdd„Zdd„Zy)ÚGigaChatEmbeddingsa  GigaChat Embeddings models.

    Example:
        .. code-block:: python
            from langchain_community.embeddings.gigachat import GigaChatEmbeddings

            embeddings = GigaChatEmbeddings(
                credentials=..., scope=..., verify_ssl_certs=...
            )
    NzOptional[str]Úbase_urlÚauth_urlÚcredentialsÚscopeÚaccess_tokenÚmodelÚuserÚpasswordiX  zOptional[float]ÚtimeoutzOptional[bool]Úverify_ssl_certsÚca_bundle_fileÚ	cert_fileÚkey_fileÚkey_file_passwordc                ó`  — ddl }|j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  ¬«      S )zReturns GigaChat API clientr   N)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   )ÚgigachatÚGigaChatr   r   r   r   r   r   r   r   r   r   r   r   r    r!   )Úselfr#   s     úq/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/embeddings/gigachat.pyÚ_clientzGigaChatEmbeddings._clientB   s‹   € ó 	à× Ñ Ø—]‘]Ø—]‘]Ø×(Ñ(Ø—*‘*Ø×*Ñ*Ø—*‘*Ø—‘Ø—]‘]Ø—L‘LØ!×2Ñ2Ø×.Ñ.Ø—n‘nØ—]‘]Ø"×4Ñ4ð !ó 
ð 	
ó    c                óò   — 	 ddl }t        t        | «      j	                  «       «      }t        |j	                  «       «      |z
  }|rt
        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 class)r#   ÚImportErrorÚsetr   ÚkeysÚloggerÚwarning)ÚclsÚvaluesr#   ÚfieldsÚdiffs        r&   Úvalidate_environmentz'GigaChatEmbeddings.validate_environmentX   sz   € ð	Ûô ”Z “_×)Ñ)Ó+Ó,ˆÜ�6—;‘;“=Ó! FÑ*ˆÙÜ�N‰N˜]¨4¨&Ð0BÐCÔDØˆøô ò 	ÜðAóð ð	ús   ‚A! Á!A6c                óü  — g }d}g }i }| j                   �| j                   |d<   |D ]‰  }|j                  |«       |t        |«      z  }|t        kD  st        |«      t        kD  sŒ> | j
                  j                  dd|i|¤Žj                  D ]  }|j                  |j                  «       Œ d}g }Œ‹ |rH | j
                  j                  dd|i|¤Žj                  D ]  }|j                  |j                  «       Œ |S )ú¿Embed documents using a GigaChat embeddings models.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        r   r   Útexts© )	r   ÚappendÚlenÚMAX_BATCH_SIZE_CHARSÚMAX_BATCH_SIZE_PARTSr'   Ú
embeddingsÚdataÚ	embedding)r%   r6   ÚresultÚsizeÚlocal_textsÚembed_kwargsÚtextr>   s           r&   Úembed_documentsz"GigaChatEmbeddings.embed_documentsh   s  € ð %'ˆØˆØˆØˆØ�:‰:Ð!Ø$(§J¡JˆL˜Ñ!ÛˆDØ×Ñ˜tÔ$Ø”C˜“IÑˆDØÔ*Ò*¬c°+Ó.>ÔAUÓ.UØ!8 §¡×!8Ñ!8ñ "Ø%ð"Ø)5ñ"ç‘$ò"�Ið —M‘M )×"5Ñ"5Õ6ð"ð �Ø ‘ð ñ Ø4˜TŸ\™\×4Ñ4ñ Ø!ðØ%1ñç‰dò�	ð —‘˜i×1Ñ1Õ2ðð
 ˆr(   c              ƒ  ó4  K  — g }d}g }i }| j                   �| j                   |d<   |D ]“  }|j                  |«       |t        |«      z  }|t        kD  st        |«      t        kD  sŒ> | j
                  j                  dd|i|¤Žƒ d{  –—† }|j                  D ]  }|j                  |j                  «       Œ d}g }Œ• |rR | j
                  j                  dd|i|¤Žƒ d{  –—† }|j                  D ]  }|j                  |j                  «       Œ |S 7 ŒŒ7 Œ4­w)r5   r   Nr   r6   r7   )	r   r8   r9   r:   r;   r'   Úaembeddingsr=   r>   )	r%   r6   r?   r@   rA   rB   rC   r<   r>   s	            r&   Úaembed_documentsz#GigaChatEmbeddings.aembed_documentsŠ   s+  è ø€ ð %'ˆØˆØˆØˆØ�:‰:Ð!Ø$(§J¡JˆL˜Ñ!ÛˆDØ×Ñ˜tÔ$Ø”C˜“IÑˆDØÔ*Ò*¬c°+Ó.>ÔAUÓ.UØ#; 4§<¡<×#;Ñ#;ñ $Ø%ð$Ø)5ñ$÷ �
ð ",§¤�IØ—M‘M )×"5Ñ"5Õ6ð "1à�Ø ‘ð ñ Ø7˜tŸ|™|×7Ñ7ñ  Ø!ð Ø%1ñ ÷ ˆJð (Ÿ_œ_�	Ø—‘˜i×1Ñ1Õ2ð -ð ˆðøðús+   ‚A#DÁ&!DÂDÂADÃ!DÃ"3DÄDc                ó.   — | j                  |g¬«      d   S )ú¥Embed a query using a GigaChat embeddings models.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        ©r6   r   )rD   )r%   rC   s     r&   Úembed_queryzGigaChatEmbeddings.embed_query®   s   € ð ×#Ñ#¨4¨&Ð#Ó1°!Ñ4Ð4r(   c              ƒ  óN   K  — | j                  |g¬«      ƒ d{  –—† }|d   S 7 Œ	­w)rI   rJ   Nr   )rG   )r%   rC   Údocss      r&   Úaembed_queryzGigaChatEmbeddings.aembed_query¹   s.   è ø€ ð ×*Ñ*°$°Ð*Ó8×8ˆØ�A‰wˆð 9ús   ‚%™#š
%)Úreturnr   )r0   r   rO   r   )r6   z	List[str]rO   zList[List[float]])rC   ÚstrrO   zList[float])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r   r   r   r   r   r    r!   r   r'   r   r3   rD   rG   rK   rN   r7   r(   r&   r   r      só   … ñ	ð #€HˆmÓ"ØØ"€HˆmÓ"ØØ!%€K�Ó%ØØ€Eˆ=ÓØ-à"&€L�-Ó&Ø%à€Eˆ=ÓØØ€Dˆ-ÓØ%Ø"€HˆmÓ"Ø%à"€Gˆ_Ó"ØGØ'+Ð�nÓ+Ø/à$(€N�MÓ(Ø#€Iˆ}Ó#Ø"€HˆmÓ"Ø'+Ð�}Ó+ð ò
ó ð
ð* òó ðó óD"óH	5ô
r(   r   )Ú
__future__r   ÚloggingÚ	functoolsr   Útypingr   r   r   r   Úlangchain_core._api.deprecationr	   Úlangchain_core.embeddingsr
   Úlangchain_core.utilsr   Úlangchain_core.utils.pydanticr   Úpydanticr   Ú	getLoggerrQ   r-   r:   r;   r   r7   r(   r&   Ú<module>r`      so   ðÝ "ã Ý %ß ,Ó ,å 6Ý 0Ý )Ý 4Ý à	ˆ×	Ñ	˜8Ó	$€àÐ ØÐ ñ Ø
ØØ>ôô
k˜ Jó kóñ
kr(   