§
    šŠtjÃ  ã                   ó”   — d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
mZ dZ eddd	¬
¦  «         G d„ de
e¦  «        ¦   «         ZdS )é    )ÚAnyÚDictÚListN)Ú
deprecated)Ú
Embeddings)Ú	BaseModelÚ
ConfigDictz@cf/baai/bge-base-en-v1.5z0.3.23z1.0z2langchain_cloudflare.CloudflareWorkersAIEmbeddings)ÚsinceÚremovalÚalternative_importc                   ó  ‡ — e Zd ZU dZdZeed<   eed<   eed<   eZeed<   dZ	e
ed<   d	Zeed
<   ddiZeeef         ed<   defˆ fd„Z edd¬¦  «        Zdee         deee                  fd„Zdedee         fd„Zˆ xZS )ÚCloudflareWorkersAIEmbeddingsaP  Cloudflare Workers AI embedding model.

    To use, you need to provide an API token and
    account ID to access Cloudflare Workers AI.

    Example:
        .. code-block:: python

            from langchain_community.embeddings import CloudflareWorkersAIEmbeddings

            account_id = "my_account_id"
            api_token = "my_secret_api_token"
            model_name =  "@cf/baai/bge-small-en-v1.5"

            cf = CloudflareWorkersAIEmbeddings(
                account_id=account_id,
                api_token=api_token,
                model_name=model_name
            )
    z-https://api.cloudflare.com/client/v4/accountsÚapi_base_urlÚ
account_idÚ	api_tokenÚ
model_nameé2   Ú
batch_sizeTÚstrip_new_linesÚAuthorizationúBearer ÚheadersÚkwargsc                 ó\   •—  t          ¦   «         j        di |¤Ž dd| j        › �i| _        dS )z,Initialize the Cloudflare Workers AI client.r   r   N© )ÚsuperÚ__init__r   r   )Úselfr   Ú	__class__s     €úq/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/cloudflare_workersai.pyr   z&CloudflareWorkersAIEmbeddings.__init__.   s;   ø€ à�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"à'Ð)C°4´>Ð)CÐ)CÐDˆŒˆˆó    Úforbidr   )ÚextraÚprotected_namespacesÚtextsÚreturnc                 ón  ‡ ‡— ‰ j         rd„ ‰D ¦   «         Šˆ ˆfd„t          dt          ‰¦  «        ‰ j        ¦  «        D ¦   «         }g }|D ]j}t	          j        ‰ j        › d‰ j        › d‰ j        › �‰ j	        d|i¬¦  «        }| 
                    |                     ¦   «         d         d	         ¦  «         Œk|S )
z¿Compute doc embeddings using Cloudflare Workers AI.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        c                 ó:   — g | ]}|                      d d¦  «        ‘ŒS )ú
ú )Úreplace)Ú.0Útexts     r    ú
<listcomp>zACloudflareWorkersAIEmbeddings.embed_documents.<locals>.<listcomp>@   s&   € Ð?Ð?Ð?°�T—\’\ $¨Ñ,Ô,Ð?Ð?Ð?r!   c                 ó4   •— g | ]}‰||‰j         z   …         ‘ŒS r   )r   )r,   Úir   r%   s     €€r    r.   zACloudflareWorkersAIEmbeddings.embed_documents.<locals>.<listcomp>B   s:   ø€ ð 
ð 
ð 
àð �!�a˜$œ/Ñ)Ð)Ô*ð
ð 
ð 
r!   r   ú/ú/ai/run/r-   ©r   ÚjsonÚresultÚdata)r   ÚrangeÚlenr   ÚrequestsÚpostr   r   r   r   Úextendr4   )r   r%   ÚbatchesÚ
embeddingsÚbatchÚresponses   ``    r    Úembed_documentsz-CloudflareWorkersAIEmbeddings.embed_documents6   sñ   øø€ ð Ôð 	@Ø?Ð?¸Ð?Ñ?Ô?ˆEð
ð 
ð 
ð 
ð 
å˜1�c %™jœj¨$¬/Ñ:Ô:ð
ñ 
ô 
ˆð ˆ
àð 	Að 	AˆEÝ”}ØÔ$ÐQÐQ t¤ÐQÐQÀÄÐQÐQØœØ˜e�_ðñ ô ˆHð
 ×Ò˜hŸmšm™oœo¨hÔ7¸Ô?Ñ@Ô@Ð@Ð@àÐr!   r-   c                 óø   — | j         r|                     dd¦  «        n|}t          j        | j        › d| j        › d| j        › �| j        d|gi¬¦  «        }|                     ¦   «         d         d         d	         S )
z©Compute query embeddings using Cloudflare Workers AI.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r)   r*   r1   r2   r-   r3   r5   r6   r   )	r   r+   r9   r:   r   r   r   r   r4   )r   r-   r?   s      r    Úembed_queryz)CloudflareWorkersAIEmbeddings.embed_queryR   sˆ   € ð +/Ô*>ÐHˆt�|Š|˜D #Ñ&Ô&Ð&ÀDˆÝ”=ØÔ ÐMÐM 4¤?ÐMÐM¸D¼OÐMÐMØ”LØ˜4˜&Ð!ð
ñ 
ô 
ˆð
 �}Š}‰Œ˜xÔ(¨Ô0°Ô3Ð3r!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__ÚDEFAULT_MODEL_NAMEr   r   Úintr   Úboolr   r   r   r   r	   Úmodel_configr   Úfloatr@   rB   Ú__classcell__)r   s   @r    r   r      s4  ø€ € € € € € ðð ð* H€L�#ÐGÐGÑGØ€O€O�OØ€N€N�NØ(€J�Ð(Ð(Ñ(Ø€J�ÐÐÑØ €O�TÐ Ð Ñ Ø.°	Ð:€GˆT�#�s�(Œ^Ð:Ð:Ñ:ðE ð Eð Eð Eð Eð Eð Eð �: HÀ2ÐFÑFÔF€Lð T¨#¤Yð °4¸¸U¼Ô3Dð ð ð ð ð84 ð 4¨¨U¬ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4r!   r   )Útypingr   r   r   r9   Úlangchain_core._api.deprecationr   Úlangchain_core.embeddingsr   Úpydanticr   r	   rI   r   r   r!   r    ú<module>rS      s×   ðØ "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à0Ð ð €Ø
ØØKðñ ô ð
Q4ð Q4ð Q4ð Q4ð Q4 I¨zñ Q4ô Q4ñô ð
Q4ð Q4ð Q4r!   