Ë
    uPêjÓ  ã                   óŠ   — d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZmZ d	d
lmZ  G d„ de	«      Zy)é    )ÚFinalN)ÚLogging)ÚBaseLLMException)ÚBaseEmbeddingConfig©Úget_secret_str)ÚAllEmbeddingInputValuesÚAllMessageValues)ÚEmbeddingResponseÚUsageé   ©ÚInfinityErrorc                   ó\  — e Zd ZdZdd„Z	 ddedz  dedz  deded	ed
edz  defd„Z	 	 ddedede	e
   ded	ededz  dedz  defd„Zdede	fd„Zdededededef
d„Zdededededef
d„Zdi i i fdedej"                  dedededz  deded	edefd„Zdededeej,                  z  defd„Zy) ÚInfinityEmbeddingConfigz?
    Reference: https://infinity.modal.michaelfeil.eu/docs
    ÚreturnNc                  ó   — y ©N© )Úselfs    ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/infinity/embedding/transformation.pyÚ__init__z InfinityEmbeddingConfig.__init__   s   € Øó    Úapi_baseÚapi_keyÚmodelÚoptional_paramsÚlitellm_paramsÚstreamc                 ón   — |€t        d«      ‚|j                  d«      }|j                  d«      s|› d�}|S )Nz,api_base is required for Infinity embeddingsú/z/embeddings)Ú
ValueErrorÚrstripÚendswith)r   r   r   r   r   r   r   s          r   Úget_complete_urlz(InfinityEmbeddingConfig.get_complete_url   sC   € ð ÐÜÐKÓLÐLà—?‘? 3Ó'ˆØ× Ñ  Ô/Ø"˜ ;Ð/ˆHØˆr   ÚheadersÚmessagesc                 óR   — |€t        d«      }d|› �dddœ}d|v r|d   |d<   i |¥|¥S )NÚINFINITY_API_KEYzBearer zapplication/json)ÚAuthorizationÚacceptzContent-Typer*   r   )	r   r&   r   r'   r   r   r   r   Údefault_headerss	            r   Úvalidate_environmentz,InfinityEmbeddingConfig.validate_environment(   sX   € ð ˆ?Ü$Ð%7Ó8ˆGð  ' w iÐ0Ø(Ø.ñ"
ˆð ˜gÑ%Ø/6°Ñ/GˆO˜OÑ,ð .�/Ð- WÐ-Ð-r   c                 ó
   — g d¢S )N)Úencoding_formatÚmodalityÚ
dimensionsr   )r   r   s     r   Úget_supported_openai_paramsz3InfinityEmbeddingConfig.get_supported_openai_paramsB   s   € ò
ð 	
r   Únon_default_paramsÚdrop_paramsc                 óN   — d|v r|d   |d<   d|v r|d   |d<   d|v r|d   |d<   |S )zu
        Map OpenAI params to Infinity params

        Reference: https://infinity.modal.michaelfeil.eu/docs
        r/   r0   r1   Úoutput_dimensionr   )r   r3   r   r   r4   s        r   Úmap_openai_paramsz)InfinityEmbeddingConfig.map_openai_paramsI   sU   € ð Ð 2Ñ2Ø1CÐDUÑ1VˆOÐ-Ñ.ØÐ+Ñ+Ø*<¸ZÑ*HˆO˜JÑ'ØÐ-Ñ-Ø2DÀ\Ñ2RˆOÐ.Ñ/ØÐr   Úinputc                 ó   — ||dœ|¥S )N)r8   r   r   )r   r   r8   r   r&   s        r   Útransform_embedding_requestz3InfinityEmbeddingConfig.transform_embedding_request]   s   € ð Øñ
ð ð
ð 	
r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	                 ó°  — 	 |j                  «       }	|	j                  d«      |_        |	j                  d«      |_        |	j                  d«      |_        t        |	j                  di «      j                  dd«      |	j                  di «      j                  dd«      ¬	«      }
|
|_
        |S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w)
N)ÚmessageÚstatus_coder   ÚdataÚobjectÚusageÚprompt_tokensr   Útotal_tokens)rE   rF   )ÚjsonÚ	Exceptionr   ÚtextrA   Úgetr   rB   rC   r   rD   )r   r   r;   r<   r=   r   r>   r   r   Úraw_response_jsonrD   s              r   Útransform_embedding_responsez4InfinityEmbeddingConfig.transform_embedding_responsej   sÔ   € ð	aØ'3×'8Ñ'8Ó':Ðð
  1×4Ñ4°WÓ=ˆÔØ/×3Ñ3°FÓ;ˆÔØ 1× 5Ñ 5°hÓ ?ˆÔäØ+×/Ñ/°¸Ó<×@Ñ@ÀÐRSÓTØ*×.Ñ.¨w¸Ó;×?Ñ?ÀÐPQÓRô
ˆð  %ˆÔØÐøô ò 	aÜ¨×(9Ñ(9À|×G_ÑG_Ô`Ð`ð	aús   ‚B* Â*+CÚerror_messagerA   c                 ó   — t        |||¬«      S )N)r@   rA   r&   r   )r   rM   rA   r&   s       r   Úget_error_classz'InfinityEmbeddingConfig.get_error_class†   s   € Ü ]ÀÐU\Ô]Ð]r   )r   Nr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚdictÚboolr%   Úlistr
   r-   r2   r7   r	   r:   ÚhttpxÚResponser   ÚLiteLLMLoggingObjrL   ÚintÚHeadersr   rO   r   r   r   r   r      sò  „ ñóð #ñà˜‘*ðð �t‘ðð ð	ð
 ðð ðð �t‘ðð 
óð0 #Ø#ñ.àð.ð ð.ð Ð'Ñ(ð	.ð
 ð.ð ð.ð �t‘ð.ð ˜‘*ð.ð 
ó.ð4
°ð 
¸ó 
ðà ðð ðð ð	ð
 ðð 
óð(
àð
ð 'ð
ð ð	
ð
 ð
ð 
ó
ð& #ØØ "Ø!ñàðð —n‘nðð *ð	ð
 'ðð �t‘ðð ðð ðð ðð 
óð8^¨Sð ^¸sð ^ÈTÐTY×TaÑTaÑMað ^Ðfvô ^r   r   )Útypingr   rX   Ú*litellm.litellm_core_utils.litellm_loggingr   rZ   Ú)litellm.llms.base_llm.chat.transformationr   Ú.litellm.llms.base_llm.embedding.transformationr   Úlitellm.secret_managers.mainr   Úlitellm.types.llms.openair	   r
   Úlitellm.types.utilsr   r   Úcommon_utilsr   r   r   r   r   ú<module>re      s1   ðÝ ã å SÝ FÝ NÝ 7ß Oß 8å (ôx^Ð1õ x^r   