
    MiH	                         S SK Jr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  \(       a  S SKJr   " S	 S
\5      r\ " S S\5      5       rg)    )	dataclassfield)TYPE_CHECKINGListOptionalN)Field	SecretStr)Element)BaseEmbeddingEncoderEmbeddingConfig)requires_dependenciesOpenAIc                   n    \ rS rSr% \\S'   \" SS9r\\S'   \" SS9r	\\S'   \
" SS	/S
S9SS j5       rSrg)OctoAiEmbeddingConfig   api_keyzthenlper/gte-large)default
model_namezhttps://text.octoai.run/v1base_urlopenaitiktokenzembed-octoai)extrasc                 `    SSK Jn  U" U R                  R                  5       U R                  S9$ )zGCreates an OpenAI python client to embed elements. Uses the OpenAI SDK.r   r   )r   r   )r   r   r   get_secret_valuer   )selfr   s     s/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/unstructured/embed/octoai.py
get_client OctoAiEmbeddingConfig.get_client   s%     	"dll;;=VV     N)returnr   )__name__
__module____qualname____firstlineno__r	   __annotations__r   r   strr   r   r   __static_attributes__r!   r    r   r   r      sL    $89J9">?Hc?	:W	Wr    r   c                       \ rS rSr% \\S'   \" SSS9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)OctoAIEmbeddingEncoder!   configFN)initr   _exemplary_embeddingr"   c                 $    U R                  S5      $ )NQ)embed_queryr   s    r   get_exemplary_embedding.OctoAIEmbeddingEncoder.get_exemplary_embedding'   s    $$r    c                     g Nr!   r3   s    r   
initialize!OctoAIEmbeddingEncoder.initialize*   s    r    c                 N    U R                  5       n[        R                  " U5      $ r7   )r4   npshaper   exemplary_embeddings     r   num_of_dimensions(OctoAIEmbeddingEncoder.num_of_dimensions-   s!    "::<xx+,,r    c                     U R                  5       n[        R                  " [        R                  R	                  U5      S5      $ )Ng      ?)r4   r;   iscloselinalgnormr=   s     r   is_unit_vector%OctoAIEmbeddingEncoder.is_unit_vector1   s0    "::<zz"))..)<=sCCr    c                     U R                   R                  5       nUR                  R                  [	        U5      U R                   R
                  S9nUR                  S   R                  $ )N)inputmodelr   )r-   r   
embeddingscreater(   r   data	embedding)r   queryclientresponses       r   r2   "OctoAIEmbeddingEncoder.embed_query5   sR    '')$$++#e*DKKDZDZ+[}}Q)))r    elementsc                 r    U Vs/ s H  o R                  U5      PM     nnU R                  X5      nU$ s  snf r7   )r2   _add_embeddings_to_elements)r   rR   erJ   elements_with_embeddingss        r   embed_documents&OctoAIEmbeddingEncoder.embed_documents:   s;    3;<8a&&q)8
<#'#C#CH#Y '' =s   4c                     [        U5      [        U5      :X  d   e/ n[        U5       H  u  pEX$   Ul        UR                  U5        M!     U$ r7   )len	enumeraterJ   append)r   rR   rJ   elements_w_embeddingielements         r   rT   2OctoAIEmbeddingEncoder._add_embeddings_to_elements?   sN    8}J///!#H-JA!+G ''0 . r    r!   )r#   r$   r%   r&   r   r'   r   r/   r   r   floatr4   r8   r?   rE   r2   r
   rW   rT   r)   r!   r    r   r+   r+   !   ss    !!27UD2Q(4;/Q%e %-D*
(W ($w- (
4= r    r+   )dataclassesr   r   typingr   r   r   numpyr;   pydanticr   r	   unstructured.documents.elementsr
   unstructured.embed.interfacesr   r   unstructured.utilsr   r   r   r   r+   r!   r    r   <module>ri      sR    ( 0 0  % P 4WO W  #1 # #r    