§
    æ˜ºh\  ã                   óx   — d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ dZdZ G d„ de	e¦  «        Zd	S )
é    )ÚAnyÚDictÚListÚMappingÚOptional)Ú
Embeddings)Ú	BaseModelÚExtraÚFieldÚroot_validator©Úget_from_dict_or_envzRepresent this input: z9Represent the question for retrieving similar documents: c                   óî  — e Zd ZU dZ edd¬¦  «        Zee         ed<    edd¬¦  «        Z	ee
         ed<    edd¬¦  «        Zee         ed	<    eed
¬¦  «        Zeed<    eed¬¦  «        Zeed<    G d„ d¦  «        Z ed¬¦  «        dedefd„¦   «         Zedeeef         fd„¦   «         Zdee         d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dS )ÚOctoAIEmbeddingszÈOctoAI Compute Service embedding models.

    The environment variable ``OCTOAI_API_TOKEN`` should be set
    with your API token, or it can be passed
    as a named parameter to the constructor.
    NzEndpoint URL to use.)ÚdescriptionÚendpoint_urlz'Keyword arguments to pass to the model.Úmodel_kwargszOCTOAI API TokenÚoctoai_api_tokenz+Instruction to use for embedding documents.Úembed_instructionz'Instruction to use for embedding query.Úquery_instructionc                   ó    — e Zd ZdZej        ZdS )úOctoAIEmbeddings.Configz'Configuration for this pydantic object.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   ÚforbidÚextra© ó    úx/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/embeddings/octoai_embeddings.pyÚConfigr       s   € € € € € Ø5Ð5à”ˆˆˆr    r"   T)Úallow_reuseÚvaluesÚreturnc                 óV   — t          |dd¦  «        |d<   t          |dd¦  «        |d<   |S )z@Ensure that the API key and python package exist in environment.r   ÚOCTOAI_API_TOKENr   ÚENDPOINT_URLr   )Úclsr$   s     r!   Úvalidate_environmentz%OctoAIEmbeddings.validate_environment%   sF   € õ &:ØÐ&Ð(:ñ&
ô &
ˆÐ!Ñ"õ "6Ø�N Nñ"
ô "
ˆˆ~Ñð ˆr    c                 ó$   — | j         | j        pi dœS )z"Return the identifying parameters.©r   r   r,   )Úselfs    r!   Ú_identifying_paramsz$OctoAIEmbeddings._identifying_params0   s$   € ð !Ô-Ø Ô-Ð3°ð
ð 
ð 	
r    ÚtextsÚinstructionc                 óf  — ddl m} g }|                     | j        ¬¦  «        }|D ]Š}t	          |g¦  «        t	          |g¦  «        | j        pi dœ}	 |                     | j        |¦  «        }|d         }	n%# t          $ r}
t          d|
› �¦  «        |
‚d}
~
ww xY w| 
                    |	¦  «         Œ‹|S )z2Compute embeddings using an OctoAI instruct model.r   )Úclient)Útoken)Úsentencer0   Ú
parametersÚ
embeddingsz(Error raised by the inference endpoint: N)Úoctoair2   ÚClientr   Ústrr   Úinferr   Ú	ExceptionÚ
ValueErrorÚappend)r-   r/   r0   r2   r6   Úoctoai_clientÚtextÚparameter_payloadÚ	resp_jsonÚ	embeddingÚes              r!   Ú_compute_embeddingsz$OctoAIEmbeddings._compute_embeddings8   s÷   € ð 	"Ð!Ð!Ð!Ð!Ð!àˆ
ØŸš¨DÔ,A˜ÑBÔBˆàð 	)ð 	)ˆDå  ™KœKÝ" K =Ñ1Ô1Ø"Ô/Ð5°2ð!ð !ÐðXØ)×/Ò/°Ô0AÐCTÑUÔU�	Ø% lÔ3�	�	øÝð Xð Xð XÝ Ð!OÈAÐ!OÐ!OÑPÔPÐVWÐWøøøøðXøøøð ×Ò˜iÑ(Ô(Ð(Ð(àÐs   Á#A6Á6
BÂ BÂBc                 ót   — t          t          d„ |¦  «        ¦  «        }|                      || j        ¦  «        S )z;Compute document embeddings using an OctoAI instruct model.c                 ó.   — |                       dd¦  «        S )Nú
ú )Úreplace)Úxs    r!   ú<lambda>z2OctoAIEmbeddings.embed_documents.<locals>.<lambda>T   s   €  1§9¢9¨T°3Ñ#7Ô#7€ r    )ÚlistÚmaprD   r   )r-   r/   s     r!   Úembed_documentsz OctoAIEmbeddings.embed_documentsR   s6   € å•SÐ7Ð7¸Ñ?Ô?Ñ@Ô@ˆØ×'Ò'¨¨tÔ/EÑFÔFÐFr    r?   c                 ór   — |                      dd¦  «        }|                      |g| j        ¦  «        d         S )z7Compute query embedding using an OctoAI instruct model.rG   rH   r   )rI   rD   r   )r-   r?   s     r!   Úembed_queryzOctoAIEmbeddings.embed_queryW   s5   € à�|Š|˜D #Ñ&Ô&ˆØ×'Ò'¨¨°Ô0FÑGÔGÈÔJÐJr    )r   r   r   r   r   r   r   r9   Ú__annotations__r   Údictr   ÚDEFAULT_EMBED_INSTRUCTIONr   ÚDEFAULT_QUERY_INSTRUCTIONr   r"   r   r   r*   Úpropertyr   r   r.   r   ÚfloatrD   rN   rP   r   r    r!   r   r      s,  € € € € € € ðð ð #( %¨Ð:PÐ"QÑ"QÔ"Q€L�(˜3”-ÐQÐQÑQØ#( 5ØÐCð$ñ $ô $€L�(˜4”.ð ð ñ ð ', e¨DÐ>PÐ&QÑ&QÔ&QÐ�h˜s”mÐQÐQÑQØ"˜UØ!ØAðñ ô Ð�sð ð ñ ð #˜UØ!Ð/Xðñ ô Ð�sð ð ñ ðð ð ð ð ñ ô ð ð
 €^ Ð%Ñ%Ô%ð¨$ð °4ð ð ð ñ &Ô%ðð ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ðØ˜#”YðØ-0ðà	ˆd�5ŒkÔ	ðð ð ð ð4G T¨#¤Yð G°4¸¸U¼Ô3Dð Gð Gð Gð Gð
K ð K¨¨U¬ð Kð Kð Kð Kð Kð Kr    r   N)Útypingr   r   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.pydantic_v1r	   r
   r   r   Úlangchain_core.utilsr   rS   rT   r   r   r    r!   ú<module>r[      sÍ   ðØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 5Ð 5Ð 5Ð 5Ð 5Ð 5à4Ð ØWÐ ðOKð OKð OKð OKð OK�y *ñ OKô OKð OKð OKð OKr    