
    dh:                     l    S r SSKrSSKJrJr  SSKrSSKJr  SSKJ	r	J
r
Jr  SrSrSr " S	 S
\	\5      rg)z+Wrapper around Bookend AI embedding models.    N)AnyList)
Embeddings)	BaseModel
ConfigDictFieldzhttps://api.bookend.ai/
embeddingsz/models/predictc                      ^  \ rS rSr% Sr\\S'    \\S'    \\S'    \" \S9r	\\S'   \
" SS	9rS
\4U 4S jjrS\\   S\\\      4S jrS\S\\   4S jrSrU =r$ )BookendEmbeddings   aK  Bookend AI sentence_transformers embedding models.

Example:
    .. code-block:: python

        from langchain_community.embeddings import BookendEmbeddings

        bookend = BookendEmbeddings(
            domain={domain}
            api_token={api_token}
            model_id={model_id}
        )
        bookend.embed_documents([
            "Please put on these earmuffs because I can't you hear.",
            "Baby wipes are made of chocolate stardust.",
        ])
        bookend.embed_query(
            "She only paints with bold colors; she does not like pastels."
        )
domain	api_tokenmodel_id)default_factoryauth_header )protected_namespaceskwargsc                 j   > [         TU ]  " S0 UD6  SSR                  U R                  5      0U l        g )NAuthorizationzBasic {}r   )super__init__formatr   r   )selfr   	__class__s     ^/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/bookend.pyr   BookendEmbeddings.__init__/   s/    "6"+Z->->t~~-NO    textsreturnc           	      D   / nU R                   nSUS'   U R                  [        S.nU Hs  n[        R                  " USSSS.5      n[
        R                  " S[        U R                  -   [        -   UUUS9nUR                  UR                  5       S   S	   5        Mu     U$ )
zEmbed documents using a Bookend deployed embeddings model.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.
zapplication/json; charset=utf-8zContent-Type)r   taskN)textquestioncontextinstructionPOST)headersparamsdatar   r*   )r   r   DEFAULT_TASKjsondumpsrequestsrequestAPI_URLr   PATHappend)r   r   resultr(   r)   r#   r*   rs           r   embed_documents!BookendEmbeddings.embed_documents3   s     """C 

 D::  $##'	D   $++%,A MM!&&(1+f-.! $ r   r#   c                 ,    U R                  U/5      S   $ )zEmbed a query using a Bookend deployed embeddings model.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.
r   )r5   )r   r#   s     r   embed_queryBookendEmbeddings.embed_queryX   s     ##TF+A..r   )r   )__name__
__module____qualname____firstlineno____doc__str__annotations__r   dictr   r   model_configr   r   r   floatr5   r8   __static_attributes____classcell__)r   s   @r   r   r      s    * KTNXM%d3K326LP P#T#Y #4U3D #J	/ 	/U 	/ 	/r   r   )r>   r,   typingr   r   r.   langchain_core.embeddingsr   pydanticr   r   r   r0   r+   r1   r   r   r   r   <module>rI      s9    1    0 1 1
#R/	: R/r   