Ë
    õ¡ŸjÖ  ã                  ó`   — d Z ddlmZ ddlmZmZ ddlZddlm	Z	 ddl
mZ d
d„Z G d„ d	«      Zy)zM
author: Yagnik Poshiya
organization: Webbrains Technologies Private Limited
é    )Úannotations)ÚIterableÚListN)Úgenai)Útypesc                ó&  — t        j                  | t         j                  ¬«      }t         j                  j	                  |«      }t        j
                  |«      r|dk  r| S ||z  }|j                  t         j                  «      j                  «       S )N)Údtyper   )ÚnpÚasarrayÚfloat32ÚlinalgÚnormÚisfiniteÚastypeÚtolist)ÚvecÚaÚns      ú`/var/www/html/agent-engine/apps/workers/async/embedding-pipeline-worker/src/embeddings/gemini.pyÚ
_normalizer      sc   € Ü
�
‰
�3œbŸj™jÔ)€AÜ
�	‰	�‰�qÓ€AÜ�;‰;�qŒ>˜Q !šVØˆ
Ø	ˆA‰€AØ�8‰8”B—J‘JÓ×&Ñ&Ó(Ð(ó    c                  ó   — e Zd Zdd„Zdd„Zy)ÚGeminiEmbedderc               óh   — t        j                  |¬«      | _        || _        t	        |«      | _        y )N)Úapi_key)r   ÚClientÚ_clientÚ_modelÚintÚ_dim)Úselfr   ÚmodelÚoutput_dimensionalitys       r   Ú__init__zGeminiEmbedder.__init__   s&   € Ü—|‘|¨GÔ4ˆŒØˆŒÜÐ-Ó.ˆ�	r   c                ó8  — |sg S | j                   j                  j                  | j                  |t	        j
                  d| j                  ¬«      ¬«      }|j                  D �cg c]  }|j                  ‘Œ }}|D �cg c]  }t        |«      ‘Œ c}S c c}w c c}w )NÚRETRIEVAL_DOCUMENT)Ú	task_typer#   )r"   ÚcontentsÚconfig)
r   ÚmodelsÚembed_contentr   r   ÚEmbedContentConfigr    Ú
embeddingsÚvaluesr   )r!   ÚtextsÚresÚeÚvectorsÚvs         r   Úembed_documentszGeminiEmbedder.embed_documents   s…   € ÙØˆIØ�l‰l×!Ñ!×/Ñ/Ø—+‘+ØÜ×+Ñ+Ø.Ø&*§i¡iôð 0ó 
ˆð &)§^¡^Ö4 �1—8“8Ð4ˆÐ4à'.Ö/ !”
˜1•Ò/Ð/ùò 5ùâ/s   Á$BÁ=BN)r   Ústrr"   r5   r#   r   )r/   z	list[str]Úreturnzlist[list[float]])Ú__name__Ú
__module__Ú__qualname__r$   r4   © r   r   r   r      s   „ ó/ô
0r   r   )r   úlist[float]r6   r;   )Ú__doc__Ú
__future__r   Útypingr   r   Únumpyr
   Úgoogler   Úgoogle.genair   r   r   r:   r   r   ú<module>rB      s*   ðñõ
 #ç !ã Ý Ý ó)÷0ò 0r   