§
    šŠtjE  ã                  óè   — 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dS )é    )Ú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dS ))Ú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_passwordÚreturnr   c                óÜ   — ddl }|                     | 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     úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/gigachat.pyÚ_clientzGigaChatEmbeddings._clientB   su   € ð 	ˆˆˆà× Ò Ø”]Ø”]ØÔ(Ø”*ØÔ*Ø”*Ø”Ø”]Ø”LØ!Ô2ØÔ.Ø”nØ”]Ø"Ô4ð !ñ 
ô 
ð 	
ó    Úvaluesr   c                ó0  — 	 ddl }n# t          $ r t          d¦  «        ‚w xY wt          t          | ¦  «                             ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        |z
  }|rt
                               d|› d�¦  «         |S )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)Úclsr*   r$   ÚfieldsÚdiffs        r'   Úvalidate_environmentz'GigaChatEmbeddings.validate_environmentX   s¬   € ð	ØˆOˆOˆOˆOøÝð 	ð 	ð 	ÝðAñô ð ð	øøøõ
 •Z ‘_”_×)Ò)Ñ+Ô+Ñ,Ô,ˆÝ�6—;’;‘=”=Ñ!Ô! FÑ*ˆØð 	EÝ�NŠNÐC¨4ÐCÐCÐCÑDÔDÐDØˆs   ‚ ‡!Útextsú	List[str]úList[List[float]]c                óº  — g }d}g }i }| j         �
| j         |d<   |D ]†}|                     |¦  «         |t          |¦  «        z  }|t          k    st          |¦  «        t          k    r: | j        j        dd|i|¤Žj        D ]}|                     |j        ¦  «         Œd}g }Œ‡|r6 | j        j        dd|i|¤Žj        D ]}|                     |j        ¦  «         Œ|S ©z¿Embed documents using a GigaChat embeddings models.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        r   Nr   r5   © )	r   ÚappendÚlenÚMAX_BATCH_SIZE_CHARSÚMAX_BATCH_SIZE_PARTSr(   Ú
embeddingsÚdataÚ	embedding)r&   r5   ÚresultÚsizeÚlocal_textsÚembed_kwargsÚtextrA   s           r'   Úembed_documentsz"GigaChatEmbeddings.embed_documentsh   s:  € ð %'ˆØˆØˆØˆØŒ:Ð!Ø$(¤JˆL˜Ñ!Øð 		!ð 		!ˆDØ×Ò˜tÑ$Ô$Ð$Ø•C˜‘I”IÑˆDØÕ*Ò*Ð*­c°+Ñ.>Ô.>ÕAUÒ.UÐ.UØ!8 ¤Ô!8ð "ð "Ø%ð"Ø)5ð"ð "äð7ð 7�Ið —M’M )Ô"5Ñ6Ô6Ð6Ð6Ø�Ø �øàð 	3Ø4˜Tœ\Ô4ð ð Ø!ðØ%1ðð äð3ð 3�	ð —’˜iÔ1Ñ2Ô2Ð2Ð2àˆr)   c              ƒ  óÞ  K  — g }d}g }i }| j         �
| j         |d<   |D ]Ž}|                     |¦  «         |t          |¦  «        z  }|t          k    st          |¦  «        t          k    rB | j        j        dd|i|¤Žƒ d{V —†}|j        D ]}|                     |j        ¦  «         Œd}g }Œ�|r> | j        j        dd|i|¤Žƒ d{V —†}|j        D ]}|                     |j        ¦  «         Œ|S r9   )	r   r;   r<   r=   r>   r(   Úaembeddingsr@   rA   )	r&   r5   rB   rC   rD   rE   rF   r?   rA   s	            r'   Úaembed_documentsz#GigaChatEmbeddings.aembed_documentsŠ   s‚  è è € ð %'ˆØˆØˆØˆØŒ:Ð!Ø$(¤JˆL˜Ñ!Øð 
	!ð 
	!ˆDØ×Ò˜tÑ$Ô$Ð$Ø•C˜‘I”IÑˆDØÕ*Ò*Ð*­c°+Ñ.>Ô.>ÕAUÒ.UÐ.UØ#; 4¤<Ô#;ð $ð $Ø%ð$Ø)5ð$ð $ð ð ð ð ð ð �
ð ",¤ð 7ð 7�IØ—M’M )Ô"5Ñ6Ô6Ð6Ð6Ø�Ø �øàð 	3Ø7˜tœ|Ô7ð  ð  Ø!ð Ø%1ð ð  ð ð ð ð ð ð ˆJð (œ_ð 3ð 3�	Ø—’˜iÔ1Ñ2Ô2Ð2Ð2àˆr)   rF   ÚstrúList[float]c                ó<   — |                       |g¬¦  «        d         S )ú¥Embed a query using a GigaChat embeddings models.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        ©r5   r   )rG   )r&   rF   s     r'   Úembed_queryzGigaChatEmbeddings.embed_query®   s"   € ð ×#Ò#¨4¨&Ð#Ñ1Ô1°!Ô4Ð4r)   c              ƒ  óP   K  — |                       |g¬¦  «        ƒ d{V —†}|d         S )rN   rO   Nr   )rJ   )r&   rF   Údocss      r'   Úaembed_queryzGigaChatEmbeddings.aembed_query¹   s;   è è € ð ×*Ò*°$°Ð*Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆØ�AŒwˆr)   )r"   r   )r*   r   r"   r   )r5   r6   r"   r7   )rF   rK   r"   rL   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r   r   r   r   r   r    r!   r   r(   r   r4   rG   rJ   rP   rS   r:   r)   r'   r   r      sÂ  € € € € € € ð	ð 	ð #€HÐ"Ð"Ð"Ñ"ØØ"€HÐ"Ð"Ð"Ñ"ØØ!%€KÐ%Ð%Ð%Ñ%ØØ€EÐÐÐÑØ-à"&€LÐ&Ð&Ð&Ñ&Ø%à€EÐÐÐÑØØ€DÐÐÐÑØ%Ø"€HÐ"Ð"Ð"Ñ"Ø%à"€GÐ"Ð"Ð"Ñ"ØGØ'+ÐÐ+Ð+Ð+Ñ+Ø/à$(€NÐ(Ð(Ð(Ñ(Ø#€IÐ#Ð#Ð#Ñ#Ø"€HÐ"Ð"Ð"Ñ"Ø'+ÐÐ+Ð+Ð+Ñ+ð ð
ð 
ð 
ñ „_ð
ð* ðð ð ñ „Xðð ð  ð  ð  ðD"ð "ð "ð "ðH	5ð 	5ð 	5ð 	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   Ú	getLoggerrT   r/   r=   r>   r   r:   r)   r'   ú<module>rc      s7  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø )Ð )Ð )Ð )Ð )Ð )Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€àÐ ØÐ ð €Ø
ØØ>ðñ ô ð
kð kð kð kð k˜ Jñ kô kñô ð
kð kð kr)   