
    dh                     z    S SK JrJrJr  S SKrS SKJr  S SKJr  S SK	J
r
Jr  Sr\" SSS	S
9 " S S\
\5      5       rg)    )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                      ^  \ rS rSr% SrSr\\S'   \\S'   \\S'   \r	\\S'   Sr
\\S	'   S
r\\S'   SS0r\\\4   \S'   S\4U 4S jjr\" SSS9rS\\   S\\\      4S jrS\S\\   4S jrSrU =r$ )CloudflareWorkersAIEmbeddings   a  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                 R   > [         TU ]  " S0 UD6  SSU R                   30U l        g)z,Initialize the Cloudflare Workers AI client.r   r   N )super__init__r   r   )selfr   	__class__s     k/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/cloudflare_workersai.pyr   &CloudflareWorkersAIEmbeddings.__init__.   s+    "6"'74>>2B)CD    forbidr   )extraprotected_namespacestextsreturnc                    U R                   (       a   U Vs/ sH  o"R                  SS5      PM     nn[        S[        U5      U R                  5       Vs/ sH  nXX0R                  -    PM     nn/ nU Hp  n[
        R                  " U R                   SU R                   SU R                   3U R                  SU0S9nUR                  UR                  5       S   S	   5        Mr     U$ s  snf s  snf )
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   extendr0   )r   r'   r.   ibatches
embeddingsbatchresponses           r!   embed_documents-CloudflareWorkersAIEmbeddings.embed_documents6   s     9>?\\$,E? 1c%j$//:
: a//)*: 	 
 
E}}$$%Qt&7x?PQe_H
 hmmoh7?@  ! @
s   C)C.r.   c                    U R                   (       a  UR                  SS5      OUn[        R                  " U R                   SU R
                   SU R                   3U R                  SU/0S9nUR                  5       S   S   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/   r1   r2   r   )	r   r3   r6   r7   r   r   r   r   r0   )r   r.   r=   s      r!   embed_query)CloudflareWorkersAIEmbeddings.embed_queryR   s     +/*>*>t||D#&D==  !4??"38DOO;LMLL4&!

 }}x(033r#   )r   )__name__
__module____qualname____firstlineno____doc__r   str__annotations__DEFAULT_MODEL_NAMEr   r   intr   boolr   r   r   r   r	   model_configr   floatr>   rA   __static_attributes____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 4 4r#   r   )typingr   r   r   r6   langchain_core._api.deprecationr   langchain_core.embeddingsr   pydanticr   r	   rJ   r   r   r#   r!   <module>rU      sK    " "  6 0 *0  
K
Q4Iz Q4
Q4r#   