
    Mi
                         S SK r S SKrS SKJr  S SKJrJrJr  S SKr	S SK
JrJr  S SKJr  S SKJrJr  S SKJrJr  \(       a  S SKJr   " S	 S
\5      r\ " S S\5      5       rg)    N)	dataclass)TYPE_CHECKINGListOptional)Field	SecretStr)Element)BaseEmbeddingEncoderEmbeddingConfig)FileHandlerrequires_dependenciesVertexAIEmbeddingsc                   d    \ rS rSr% \\S'   \" SS9r\\	   \S'   S r
\" SS/S	S
9SS j5       rSrg)VertexAIEmbeddingConfig   api_keyztextembedding-gecko@001)default
model_namec                 "   [         R                  R                  SS5      n[        U5      nUR	                  [
        R                  " [
        R                  " U R                  R                  5       5      5      5        U[         R                  S'   g )Nz/tmpz"google-vertex-app-credentials.jsonGOOGLE_APPLICATION_CREDENTIALS)ospathjoinr   
write_filejsondumpsloadsr   get_secret_valueenviron)selfapplication_credentials_pathcredentials_files      u/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/unstructured/embed/vertexai.py register_application_credentials8VertexAIEmbeddingConfig.register_application_credentials   s`    ')ww||F<`'a$&'CD##DJJtzz$,,:W:W:Y/Z$[\7S

34    	langchainlangchain_google_vertexaizembed-vertexai)extrasc                 R    SSK Jn  U R                  5         U" U R                  S9nU$ )z=Creates a Langchain VertexAI python client to embed elements.r   r   )r   )r)   r   r%   r   )r!   r   vertexai_clients      r$   
get_client"VertexAIEmbeddingConfig.get_client   s(     	A--/,Hr'    N)returnr   )__name__
__module____qualname____firstlineno__r   __annotations__r   r   r   strr%   r   r-   __static_attributes__r/   r'   r$   r   r      sG     %.G HJHT 	12	r'   r   c                   ~    \ rS rSr% \\S'   S\\   4S jrS r	S r
S rS rS	\\   S\\   4S
 jrS\\   4S jrSrg)VertexAIEmbeddingEncoder+   configr0   c                      U R                  SS9$ )NzA sample query.)query)embed_queryr!   s    r$   get_exemplary_embedding0VertexAIEmbeddingEncoder.get_exemplary_embedding/   s    &788r'   c                     g Nr/   r?   s    r$   
initialize#VertexAIEmbeddingEncoder.initialize2   s    r'   c                 N    U R                  5       n[        R                  " U5      $ rC   )r@   npshaper!   exemplary_embeddings     r$   num_of_dimensions*VertexAIEmbeddingEncoder.num_of_dimensions5   s!    "::<xx+,,r'   c                     U R                  5       n[        R                  " [        R                  R	                  U5      S5      $ )Ng      ?)r@   rG   iscloselinalgnormrI   s     r$   is_unit_vector'VertexAIEmbeddingEncoder.is_unit_vector9   s0    "::<zz"))..)<=sCCr'   c                 n    U R                   R                  5       nUR                  [        U5      5      nU$ rC   )r;   r-   r>   r6   )r!   r=   clientresults       r$   r>   $VertexAIEmbeddingEncoder.embed_query=   s-    '')##CJ/r'   elementsc                     U R                   R                  5       nUR                  U Vs/ s H  n[        U5      PM     sn5      nU R	                  X5      nU$ s  snf rC   )r;   r-   embed_documentsr6   _add_embeddings_to_elements)r!   rW   rT   e
embeddingselements_with_embeddingss         r$   rY   (VertexAIEmbeddingEncoder.embed_documentsB   sT    '')++X,FXSVX,FG
#'#C#CH#Y '' -Gs   Ac                 n    [        U5      [        U5      :X  d   e[        X5       H  u  p4XCl        M     U$ rC   )lenzipr\   )r!   rW   r\   element	embeddings        r$   rZ   4VertexAIEmbeddingEncoder._add_embeddings_to_elementsH   s5    8}J///"%h";G!* #<r'   r/   N)r1   r2   r3   r4   r   r5   r   floatr@   rD   rK   rQ   r>   r	   rY   rZ   r7   r/   r'   r$   r9   r9   +   sX    ##9e 9-D
(W ($w- (4= r'   r9   )r   r   dataclassesr   typingr   r   r   numpyrG   pydanticr   r   unstructured.documents.elementsr	   unstructured.embed.interfacesr
   r   unstructured.utilsr   r   r)   r   r   r9   r/   r'   r$   <module>rm      sV     	 ! 0 0  % P A<o .  3    r'   