Ë
    µŒj+  ã                   óx   — d dl mZmZmZmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZ d dlmZ  G d„ dee«      Zy)	é    )ÚAnyÚDictÚListÚOptional)Ú
Embeddings)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚFieldÚ	SecretStr)ÚRequestsc                   óø   — e Zd ZU dZ edd¬«      Zee   ed<   dZ	e
ed<   	 dZee
   ed<   	  ed	¬
«      Zededefd„«       Zede
fd„«       Zdee
   deee      fd„Zdee
   deee      fd„Zde
dee   fd„Zy)ÚEdenAiEmbeddingsz~EdenAI embedding.
    environment variable ``EDENAI_API_KEY`` set with your API key, or pass
    it as a named parameter.
    NzEdenAI API Token)ÚdescriptionÚedenai_api_keyÚopenaiÚproviderÚmodelÚforbid)ÚextraÚvaluesÚreturnc                 ó8   — t        t        |dd«      «      |d<   |S )z,Validate that api key exists in environment.r   ÚEDENAI_API_KEY)r   r	   )Úclsr   s     úo/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/embeddings/edenai.pyÚvalidate_environmentz%EdenAiEmbeddings.validate_environment$   s)   € ô $9Ü  Ð)9Ð;KÓLó$
ˆÐÑ ð ˆó    c                  ó   — ddl m}  d| › �S )Nr   ©Ú__version__z
langchain/)Úlangchain_communityr#   r"   s    r   Úget_user_agentzEdenAiEmbeddings.get_user_agent,   s   € å3à˜K˜=Ð)Ð)r    Útextsc                 ó4  — d}ddd| j                   j                  «       › �| j                  «       dœ}|| j                  dœ}| j                  �| j                  | j                  i|d<   t        |¬«      }|j                  ||¬«      }|j                  d	k\  rt        d
|j                  › �«      ‚|j                  dk\  rt        d|j                  › �«      ‚|j                  dk7  r%t        d|j                  › d|j                  › �«      ‚|j                  «       }|| j                     }|j                  d«      dk(  r,|j                  di «      j                  d«      }	t        |	«      ‚g }
|| j                     d   D ]  }|d   }|
j                  |«       Œ |
S )z$Compute embeddings using EdenAi api.z)https://api.edenai.run/v2/text/embeddingszapplication/jsonzBearer )Úacceptzcontent-typeÚauthorizationz
User-Agent)r&   Ú	providersÚsettings)Úheaders)ÚurlÚdataiô  zEdenAI Server: Error i�  z$EdenAI received an invalid payload: éÈ   z3EdenAI returned an unexpected response with status z: ÚstatusÚfailÚerrorÚmessageÚitemsÚ	embedding)r   Úget_secret_valuer%   r   r   r   ÚpostÚstatus_codeÚ	ExceptionÚ
ValueErrorÚtextÚjsonÚgetÚappend)Úselfr&   r-   r,   ÚpayloadÚrequestÚresponseÚtempÚprovider_responseÚerr_msgÚ
embeddingsÚ
embed_itemr5   s                r   Ú_generate_embeddingsz%EdenAiEmbeddings._generate_embeddings2   s£  € à9ˆð )Ø.Ø& t×':Ñ':×'KÑ'KÓ'MÐ&NÐOØ×-Ñ-Ó/ñ	
ˆð -2ÀÇÁÑ"Nˆà�:‰:Ð!Ø#'§=¡=°$·*±*Ð"=ˆG�JÑä 7Ô+ˆØ—<‘< C¨g�<Ó6ˆØ×Ñ 3Ò&ÜÐ3°H×4HÑ4HÐ3IÐJÓKÐKØ×!Ñ! SÒ(ÜÐCÀHÇMÁMÀ?ÐSÓTÐTØ×!Ñ! SÒ(ÜØEØ×'Ñ'Ð(¨¨8¯=©=¨/ð;óð ð
 �}‰}‹ˆà  §¡Ñ/ÐØ× Ñ  Ó*¨fÒ4Ø'×+Ñ+¨G°RÓ8×<Ñ<¸YÓGˆGÜ˜GÓ$Ð$àˆ
Ø˜tŸ}™}Ñ-¨gÔ6ˆJØ" ;Ñ/ˆIà×Ñ˜iÕ(ð 7ð
 Ðr    c                 ó$   — | j                  |«      S )z³Embed a list of documents using EdenAI.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        ©rH   )r?   r&   s     r   Úembed_documentsz EdenAiEmbeddings.embed_documents]   s   € ð ×(Ñ(¨Ó/Ð/r    r;   c                 ó,   — | j                  |g«      d   S )z�Embed a query using EdenAI.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r   rJ   )r?   r;   s     r   Úembed_queryzEdenAiEmbeddings.embed_queryi   s   € ð ×(Ñ(¨$¨Ó0°Ñ3Ð3r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ú__annotations__r   Ústrr   r   Úmodel_configr
   r   r   Ústaticmethodr%   r   ÚfloatrH   rK   rM   © r    r   r   r      sä   … ññ
 +0°ÐBTÔ*U€N�H˜YÑ'ÓUà€HˆcÓØ<à€Eˆ8�C‰=Óðñ
 Øô€Lð ð¨$ð °4ò ó ðð ð*˜Cò *ó ð*ð
)¨$¨s©)ð )¸¸TÀ%¹[Ñ8Ió )ðV
0 T¨#¡Yð 
0°4¸¸U¹Ñ3Dó 
0ð	4 ð 	4¨¨U©ô 	4r    r   N)Útypingr   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.utilsr   r	   r
   Úpydanticr   r   r   r   Ú&langchain_community.utilities.requestsr   r   rW   r    r   Ú<module>r]      s3   ðß ,Ó ,å 0ß VÑ V÷ó õ <ôc4�y *õ c4r    