
    /j                        S SK Jr  S SKrS SKrS SKrS SKJr  S SKrS SKJ	r	  SSK
Jr  \ " S S5      5       rS	SSSS
.           SS jjrg)    )annotationsN)	dataclass)utils   )modelsc                  *    \ rS rSr% S\S'   S\S'   Srg)EmbeddingData   intindexzlist[float]	embedding N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       R/app/agent/.venv/lib/python3.13/site-packages/livekit/plugins/openai/embeddings.pyr	   r	      s    Jr   r	   ztext-embedding-3-small)model
dimensionsapi_keyhttp_sessionc           	       #    U=(       d    [         R                  R                  5       nU=(       d    [        R                  R                  S5      nU(       d  [        S5      eUR                  SSSU 30UU SUS.S9 IS h  vN nUR                  5       I S h  vN nUS	   n/ nU Hi  n	[        R                  " U	S
   5      n
[        U
5      S-  n[        [        R                  " SU-  U
5      5      nUR                  [!        U	S   US95        Mk     UsS S S 5      IS h  vN   $  N N N	! , IS h  vN  (       d  f       g = f7f)NOPENAI_API_KEYzOPENAI_API_KEY must be setz$https://api.openai.com/v1/embeddingsAuthorizationzBearer base64)r   inputencoding_formatr   )headersjsondatar      fr   )r   r   )r   http_contextr   osenvironget
ValueErrorpostr"   r   	b64decodelenliststructunpackappendr	   )r   r   r   r   r   respr"   r#   	list_datadbytes
num_floatsfloatss                r   create_embeddingsr8      s.      D5#5#5#B#B#DL9(89G566  . GG9"56'$	
 ! 	 	 
YY[ F|	A$$Q{^4EUqJ&--j(8%@AF]7vNO	  '	 	 	 !	 	 	 	s[   BE	D)E	D/D+A;D/E	#D-$E	+D/-E	/E5D86EE	)r   z	list[str]r   zmodels.EmbeddingModelsr   z
int | Noner   z
str | Noner   zaiohttp.ClientSession | Nonereturnzlist[EmbeddingData])
__future__r   r   r'   r/   dataclassesr   aiohttplivekit.agentsr    r   r	   r8   r   r   r   <module>r?      s    "  	  !        %=!15!! "! 	!
 ! /! !r   