Ë
    µŒjÃ  ã                   ó€   — 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y)é    )Ú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                 óP   •— t        ‰| �  di |¤Ž dd| j                  › �i| _        y)z,Initialize the Cloudflare Workers AI client.r   r   N© )ÚsuperÚ__init__r   r   )Úselfr   Ú	__class__s     €ú}/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/embeddings/cloudflare_workersai.pyr   z&CloudflareWorkersAIEmbeddings.__init__.   s+   ø€ ä‰ÑÑ"˜6Ò"à'¨7°4·>±>Ð2BÐ)CÐDˆ�ó    Úforbidr   )ÚextraÚprotected_namespacesÚtextsÚreturnc                 óÚ  — | j                   r|D �cg c]  }|j                  dd«      ‘Œ }}t        dt        |«      | j                  «      D �cg c]  }|||| j                  z    ‘Œ }}g }|D ]q  }t        j                  | j                  › d| j                  › d| j                  › �| j                  d|i¬«      }|j                  |j                  «       d   d	   «       Œs |S c c}w c c}w )
z¿Compute doc embeddings using Cloudflare Workers AI.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        Ú
Ú r   Ú/ú/ai/run/Útext©r   ÚjsonÚresultÚdata)r   ÚreplaceÚrangeÚlenr   ÚrequestsÚpostr   r   r   r   Úextendr.   )r   r%   r,   ÚiÚbatchesÚ
embeddingsÚbatchÚresponses           r    Úembed_documentsz-CloudflareWorkersAIEmbeddings.embed_documents6   sô   € ð ×ÒÙ9>Ó?¹°�T—\‘\ $¨Õ,¸ˆEÐ?ô ˜1œc %›j¨$¯/©/Ô:ó
á:�ð �!�a˜$Ÿ/™/Ñ)Ò*Ø:ð 	ð 
ð ˆ
ãˆEÜ—}‘}Ø×$Ñ$Ð% Q t§¡Ð&7°xÀÇÁÐ?PÐQØŸ™Ø˜e�_ôˆHð
 ×Ñ˜hŸm™m›o¨hÑ7¸Ñ?Õ@ð ð Ðùò! @ùò
s   ‘C#ÁC(r,   c                 ó
  — | j                   r|j                  dd«      n|}t        j                  | j                  › d| j
                  › d| j                  › �| j                  d|gi¬«      }|j                  «       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)   r*   r+   r,   r-   r/   r0   r   )	r   r1   r4   r5   r   r   r   r   r.   )r   r,   r;   s      r    Úembed_queryz)CloudflareWorkersAIEmbeddings.embed_queryR   s   € ð +/×*>Ò*>ˆt�|‰|˜D #Ô&ÀDˆÜ—=‘=Ø× Ñ Ð!  4§?¡?Ð"3°8¸D¿O¹OÐ;LÐMØ—L‘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<   r>   Ú__classcell__)r   s   @r    r   r      s§   ø… ñð* H€L�#ÓGØƒOØƒNØ(€J�Ó(Ø€J�ÓØ €O�TÓ Ø.°	Ð:€GˆT�#�s�(‰^Ó:ðE õ Eñ  HÀ2ÔF€Lð T¨#¡Yð °4¸¸U¹Ñ3Dó ð84 ð 4¨¨U©÷ 4r!   r   )Útypingr   r   r   r4   Úlangchain_core._api.deprecationr   Úlangchain_core.embeddingsr   Úpydanticr   r	   rE   r   r   r!   r    Ú<module>rO      sK   ðß "Ñ "ã Ý 6Ý 0ß *à0Ð ñ Ø
ØØKôô
Q4 I¨zó Q4óñ
Q4r!   