
    h                         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_name2   
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     q/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/embeddings/cloudflare_workersai.pyr   z&CloudflareWorkersAIEmbeddings.__init__.   s+    "6"'74>>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 )
zCompute 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? 1c%j$//:
 !a$//)*
 
 
 	AE}}$$%Qt&7x?PQe_H
 hmmoh7?@	A ! @
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 )
zCompute 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??"38DOO;LMLL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 OT .	:GT#s(^:E E H2FL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4Iz Q4
Q4r!   