
    NgC                    h    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dS )    )annotations)AnyIteratorListOptional)
Embeddings)	BaseModeltexts	List[str]sizeintreturnIterator[List[str]]c              #  j   K   t          dt          |           |          D ]}| |||z            V  d S Nr   )rangelen)r
   r   is      m/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/embeddings/javelin_ai_gateway.py_chunkr   	   sM      1c%jj$'' " "ADL!!!!!" "    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_keykwargsc                   	 ddl m}m} n# t          $ r t          d          w xY w t	                      j        di | | j        r<	  || j        | j                  | _        d S # |$ r}t          d          |d }~ww xY wd S )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)selfr   r!   r"   e	__class__s        r   r)   z#JavelinAIGatewayEmbeddings.__init__+   s   		          	 	 	D  	 	""6""" 	GG+m!-t7K   % G G G !>??QFG	G 	Gs     &
A( (B-A==Br
   r   r   List[List[float]]c                   g }t          |d          D ]}	 | j                            | j        d|i          }|                                }|                    di                               dg           }|D ]!}d|v r|                    |d                    "# t          $ r)}t          dt          |          z              Y d }~d }~ww xY w|S 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	:{..tzwPSn.UU IIKK	#,==#D#D#H#HQS#T#T , = =D"d**"))${*;<<<=  : : :/#a&&899999999: s   BB
C&C

Cc                  K   g }t          |d          D ]}	 | j                            | j        d|i           d {V }|                                }|                    di                               dg           }|D ]!}d|v r|                    |d                    "# t          $ r)}t          dt          |          z              Y d }~d }~ww xY w|S r0   )
r   r   aquery_router   r8   r9   r:   r*   r;   r   r<   s	            r   _aqueryz"JavelinAIGatewayEmbeddings._aqueryP   s-     
%$$ 	: 	:C:![55JGS> 6         !IIKK	#,==#D#D#H#HQS#T#T , = =D"d**"))${*;<<<=  : : :/#a&&899999999: s   BB$$
C.CCc                ,    |                      |          S NrC   r+   r
   s     r   embed_documentsz*JavelinAIGatewayEmbeddings.embed_documentsb   s    {{5!!!r   textList[float]c                :    |                      |g          d         S r   rI   )r+   rL   s     r   embed_queryz&JavelinAIGatewayEmbeddings.embed_querye   s    {{D6""1%%r   c                <   K   |                      |           d {V S rH   rF   rJ   s     r   aembed_documentsz+JavelinAIGatewayEmbeddings.aembed_documentsh   s*      \\%(((((((((r   c                N   K   |                      |g           d {V }|d         S r   rQ   )r+   rL   results      r   aembed_queryz'JavelinAIGatewayEmbeddings.aembed_queryk   s5      ||TF++++++++ayr   )r   r   )r
   r   r   r.   )rL   r   r   rM   )__name__
__module____qualname____doc____annotations__r   r   r)   rC   rF   rK   rO   rR   rU   __classcell__)r-   s   @r   r   r      s	           KKKJJJ:!%K%%%%1%)O))))5G G G G G G*       $" " " "& & & &) ) ) )       r   r   N)r
   r   r   r   r   r   )
__future__r   typingr   r   r   r   langchain_core.embeddingsr   pydanticr	   r   r   r%   r   r   <module>r`      s    " " " " " " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      " " " "
_ _ _ _ _Y _ _ _ _ _r   