Ë
    µŒjÌ  ã                   óp   — d Z ddlmZmZmZ ddlZddlmZ ddlm	Z	m
Z
mZ ddlmZmZmZ  G d„ dee«      Zy)	z#This file is for LLMRails Embeddingé    )ÚDictÚListÚOptionalN)Ú
Embeddings)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚ	SecretStrc                   óœ   — e Zd ZU dZdZeed<   	 dZee	   ed<   	  e
d¬«      Zeded	efd
„«       Zdee   d	eee      fd„Zded	ee   fd„Zy)ÚLLMRailsEmbeddingsa÷  LLMRails embedding models.

    To use, you should have the  environment
    variable ``LLM_RAILS_API_KEY`` set with your API key or pass it
    as a named parameter to the constructor.

    Model can be one of ["embedding-english-v1","embedding-multi-v1"]

    Example:
        .. code-block:: python

            from langchain_community.embeddings import LLMRailsEmbeddings
            cohere = LLMRailsEmbeddings(
                model="embedding-english-v1", api_key="my-api-key"
            )
    zembedding-english-v1ÚmodelNÚapi_keyÚforbid)ÚextraÚvaluesÚreturnc                 ó<   — t        t        |dd«      «      }||d<   |S )z,Validate that api key exists in environment.r   ÚLLM_RAILS_API_KEY)r   r   )Úclsr   r   s      úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/embeddings/llm_rails.pyÚvalidate_environmentz'LLMRailsEmbeddings.validate_environment'   s,   € ô (Ü  ¨Ð4GÓHó
ˆð $ˆˆyÑØˆó    Útextsc                 óÔ   — t        j                  dd| j                  j                  «       i|| j                  dœd¬«      }|j                  «       d   D �cg c]  }|d   ‘Œ	 c}S c c}w )z´Call out to Cohere's embedding endpoint.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        z&https://api.llmrails.com/v1/embeddingsz	X-API-KEY)Úinputr   é<   )ÚheadersÚjsonÚtimeoutÚdataÚ	embedding)ÚrequestsÚpostr   Úget_secret_valuer   r    )Úselfr   ÚresponseÚitems       r   Úembed_documentsz"LLMRailsEmbeddings.embed_documents0   se   € ô —=‘=Ø4Ø  $§,¡,×"?Ñ"?Ó"AÐBØ ¨4¯:©:Ñ6Øô	
ˆð /7¯m©m«o¸fÒ.EÓFÑ.E d��[Ó!Ð.EÑFÐFùÒFs   ÁA%Útextc                 ó,   — | j                  |g«      d   S )zœCall out to Cohere's embedding endpoint.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r   )r*   )r'   r+   s     r   Úembed_queryzLLMRailsEmbeddings.embed_queryA   s   € ð ×#Ñ# T FÓ+¨AÑ.Ð.r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   r   Úmodel_configr	   r   r   r   Úfloatr*   r-   © r   r   r   r      s‘   … ñð" (€Eˆ3Ó'Øà#'€GˆX�iÑ Ó'ØáØô€Lð ð¨$ð °4ò ó ððG T¨#¡Yð G°4¸¸U¹Ñ3Dó Gð"	/ ð 	/¨¨U©ô 	/r   r   )r1   Útypingr   r   r   r$   Úlangchain_core.embeddingsr   Úlangchain_core.utilsr   r   r	   Úpydanticr
   r   r   r   r6   r   r   Ú<module>r;      s.   ðÙ )ç 'Ñ 'ã Ý 0ß VÑ Vß 5Ñ 5ô?/˜ Jõ ?/r   