
    hC                    `    d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d	dZ G d dee
      Zy)
    )annotations)AnyIteratorListOptional)
Embeddings)	BaseModelc              #  V   K   t        dt        |       |      D ]  }| |||z      y wNr   )rangelen)textssizeis      o/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/embeddings/javelin_ai_gateway.py_chunkr   	   s3     1c%j$' "AD!!"s   ')c                       e Zd ZU dZded<   	 ded<   	 dZded<   	 dZded	<   	 d fd
ZddZddZ	ddZ
ddZddZddZ xZS )JavelinAIGatewayEmbeddingsa  Javelin AI Gateway embeddings.

    To use, you should have the ``javelin_sdk`` python package installed.
    For more information, see https://docs.getjavelin.io

    Example:
        .. code-block:: python

            from langchain_community.embeddings import JavelinAIGatewayEmbeddings

            embeddings = JavelinAIGatewayEmbeddings(
                gateway_uri="<javelin-ai-gateway-uri>",
                route="<your-javelin-gateway-embeddings-route>"
            )
    r   clientstrrouteNzOptional[str]gateway_urijavelin_api_keyc                    	 ddl m}m} t	        |   di | | j                  r%	  || j                  | j                        | _        y y # t        $ r t        d      w xY w# |$ r}t        d      |d }~ww xY w)Nr   )JavelinClientUnauthorizedErrorz^Could not import javelin_sdk python package. Please install it with `pip install javelin_sdk`.)base_urlapi_keyzJavelin: Incorrect API Key. )
javelin_sdkr   r   ImportErrorsuper__init__r   r   r   
ValueError)selfkwargsr   r   e	__class__s        r   r#   z#JavelinAIGatewayEmbeddings.__init__+   s    		 	"6"G+!--t7K7K   	D 	 % G !>?QFGs"   A #A$ A!$A:)A55A:c                ~   g }t        |d      D ]~  }	 | j                  j                  | j                  d|i      }|j	                         }|j                  di       j                  dg       }|D ]  }d|v s|j                  |d            |S # t        $ r!}t        dt        |      z          Y d }~d }~ww xY wN   input)
query_bodyllm_responsedata	embeddingzFailed to query route: )
r   r   query_router   dictgetappendr$   printr   	r%   r   
embeddingstxtresp	resp_dictembeddings_chunkitemr'   s	            r   _queryz!JavelinAIGatewayEmbeddings._query@   s    
%$ 
	:C	:{{..tzzwPSn.U IIK	#,==#D#H#HQS#T , =D"d*"))${*;<=
	:   :/#a&899:s   A$B8B	B<B77B<c                  K   g }t        |d      D ]  }	 | j                  j                  | j                  d|i       d {   }|j	                         }|j                  di       j                  dg       }|D ]  }d|v s|j                  |d            |S 7 Z# t        $ r!}t        dt        |      z          Y d }~d }~ww xY wwr*   )
r   r   aquery_router   r2   r3   r4   r$   r5   r   r6   s	            r   _aqueryz"JavelinAIGatewayEmbeddings._aqueryP   s     
%$ 	:C:![[55JJGS> 6   !IIK	#,==#D#H#HQS#T , =D"d*"))${*;<=	:   :/#a&899:sF   C,BB?BBCB	C'C>CCCc                $    | j                  |      S Nr=   r%   r   s     r   embed_documentsz*JavelinAIGatewayEmbeddings.embed_documentsb   s    {{5!!    c                ,    | j                  |g      d   S r   rC   )r%   texts     r   embed_queryz&JavelinAIGatewayEmbeddings.embed_querye   s    {{D6"1%%rF   c                @   K   | j                  |       d {   S 7 wrB   r@   rD   s     r   aembed_documentsz+JavelinAIGatewayEmbeddings.aembed_documentsh   s     \\%((((s   c                L   K   | j                  |g       d {   }|d   S 7 	wr   rK   )r%   rH   results      r   aembed_queryz'JavelinAIGatewayEmbeddings.aembed_queryk   s(     ||TF++ay ,s   $"
$)r&   r   )r   	List[str]returnzList[List[float]])rH   r   rQ   zList[float])__name__
__module____qualname____doc____annotations__r   r   r#   r=   r@   rE   rI   rL   rO   __classcell__)r(   s   @r   r   r      sX      KJ:!%K%1%)O])5G* $"&)rF   r   N)r   rP   r   intrQ   zIterator[List[str]])
__future__r   typingr   r   r   r   langchain_core.embeddingsr   pydanticr	   r   r   r   rF   r   <module>r]      s)    " 0 0 0 "
_Y _rF   