Ë
    uPêjT3  ã            	       ó2  — U d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	Z	d dl
Z
d dlmZ d dlmZmZmZ d dlmZ ddlmZ d	d
lmZ ddlmZ  e«       Zeed<   dZeed<   ed   Zeed<   dededz  dededz  fd„Zdededz  dededz  fd„Z  G d„ de«      Z!y)é    N)ÚCallable)ÚAnyÚFinalÚLiteralÚget_args)ÚLogging)ÚAsyncHTTPHandlerÚHTTPHandlerÚget_async_httpx_client)ÚEmbeddingResponseé   )ÚBaseLLMé   )ÚHuggingFaceErroré   )ÚHuggingFaceEmbeddingConfigÚconfigzhttps://huggingface.coÚ
HF_HUB_URL)úsentence-similarityzfeature-extractionÚrerankÚembedÚ
similarityÚhf_tasks_embeddingsÚmodelÚ	task_typeÚapi_baseÚreturnc                 óä   — |�(|t        t        «      v r|S t        d|› dt        › �«      ‚t        d¬«      }|j	                  |› d| › �¬«      }|j                  «       }|j	                  dd «      }|S )NúInvalid task_type=ú. Expected one of=r   ©Úconcurrent_limitú/api/models/©ÚurlÚpipeline_tag)r   r   Ú	Exceptionr
   ÚgetÚjson©r   r   r   Úhttp_clientÚ
model_infoÚmodel_info_dictr&   s          úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/embedding/handler.pyÚget_hf_task_embedding_for_modelr/       s�   € ØÐØœÔ!4Ó5Ñ5ØÐäÐ0°°Ð;MÔNaÐMbÐcÓdÐdÜ$°aÔ8€Kà#Ÿ™¨x¨j¸ÀUÀGÐ,L˜ÓM€Jà'Ÿ_™_Ó.€Oà&5×&9Ñ&9¸.È$Ó&O€LàÐó    c              ƒ   ó0  K  — |�(|t        t        «      v r|S t        d|› dt        › �«      ‚t        t        j
                  j                  ¬«      }|j                  |› d| › �¬«      ƒ d {  –—† }|j                  «       }|j                  dd «      }|S 7 Œ(­w)Nr   r    ©Úllm_providerr#   r$   r&   )	r   r   r'   r   ÚlitellmÚLlmProvidersÚHUGGINGFACEr(   r)   r*   s          r.   Ú%async_get_hf_task_embedding_for_modelr7   1   sŸ   è ø€ ØÐØœÔ!4Ó5Ñ5ØÐäÐ0°°Ð;MÔNaÐMbÐcÓdÐdÜ/Ü×)Ñ)×5Ñ5ô€Kð *Ÿo™o°X°J¸lÈ5È'Ð2R˜oÓS×S€Jà'Ÿ_™_Ó.€Oà&5×&9Ñ&9¸.È$Ó&O€LàÐð Tús   ‚A)BÁ+BÁ,)Bc                   ó8  ‡ — e Zd ZU dZej
                  dz  ed<   dZej                  dz  ed<   d!ˆ fd„Z	de
dedz  defd„Zd	ed
edz  dede
dedefd„Zdededefd„Zde
d	eded   dededefd„Zdeded	ede
dedefd„Z	 d"d	ede
dej,                  j$                  deej0                  z  dededededz  dedededz  fd„Zdd ej0                  d«      ddi fd	ede
dededededededz  dedz  deej0                  z  dedz  deez  dz  defˆ fd „Zˆ xZ S )#ÚHuggingFaceEmbeddingNÚ_client_sessionÚ_aclient_sessionr   c                 ó"   •— t         ‰| �  «        y ©N)ÚsuperÚ__init__)ÚselfÚ	__class__s    €r.   r?   zHuggingFaceEmbedding.__init__H   s   ø€ Ü‰ÑÕr0   Úinputr&   c                 óÔ   — |€d|iS |dk(  s|dk(  r(t        |«      dk  rt        dd¬«      ‚d|d   |d	d  d
œiS |dk(  r(t        |«      dk  rt        dd¬«      ‚d|d   |d	d  dœiS d|iS )NÚinputsr   r   r   é�  z)sentence-similarity requires 2+ sentences©Ústatus_codeÚmessager   r   ©Úsource_sentenceÚ	sentencesr   zreranker requires 2+ sentences)ÚqueryÚtexts)Úlenr   )r@   rB   r&   s      r.   Ú _transform_input_on_pipeline_tagz5HuggingFaceEmbedding._transform_input_on_pipeline_tagK   sª   € ØÐØ˜eÐ$Ð$ØÐ0Ò0°LÀLÒ4PÜ�5‹z˜AŠ~Ü&Ø #ØGôð ð °%¸±(ÈÈqÈrÈÑSÐTÐTØ˜XÒ%Ü�5‹z˜AŠ~Ü&Ø #Ø<ôð ð ¨¨a©¸5ÀÀ¸9ÑEÐFÐFØ˜%Ð Ð r0   r   r   Ú	embed_urlÚoptional_paramsc              ƒ   ó®   K  — t        ||t        ¬«      ƒ d {  –—† }| j                  ||¬«      }t        |j	                  «       «      dkD  r||d<   |S 7 Œ:­w)N©r   r   r   ©rB   r&   r   Úoptions)r7   r   rO   rN   Úkeys)r@   r   r   rP   rB   rQ   Úhf_taskÚdatas           r.   Ú_async_transform_inputz+HuggingFaceEmbedding._async_transform_input^   s[   è ø€ ô >ÀEÐU^ÔisÔt×tˆà×;Ñ;À%ÐV]Ð;Ó^ˆäˆ×#Ñ#Ó%Ó&¨Ò*Ø-ˆD�‰Oàˆð uús   ‚A˜A™;ArX   c                 óì   — t         j                  «       }g d¢}|j                  «       D ]H  \  }}||v r|j                  di «       ||d   |<   Œ%||v r|j                  di «       ||d   |<   ŒD|||<   ŒJ |S )N)Ú
min_lengthÚ
max_lengthÚtop_kÚtop_pÚtemperatureÚrepetition_penaltyÚmax_timerU   Ú
parameters)r   Úget_special_options_paramsÚitemsÚ
setdefault)r@   rX   rQ   Úspecial_options_keysÚspecial_parameters_keysÚkÚvs          r.   Ú_process_optional_paramsz-HuggingFaceEmbedding._process_optional_paramso   s’   € Ü&,×&GÑ&GÓ&IÐò*
Ðð $×)Ñ)Ó+ò 	‰DˆAˆqØÐ(Ñ(Ø—‘ 	¨2Ô.Ø%&��Y‘ Ò"ØÐ-Ñ-Ø—‘ ¨bÔ1Ø()��\Ñ" 1Ò%à��Q’ð	ð ˆr0   Ú	call_type)ÚsyncÚasyncc                 óx  — i }d|v r)t        |«      dk(  rt        dd¬«      ‚d|d   |dd  dœi}n[d|i}|j                  d	d «      }|d
k(  rt        ||t        ¬«      }n|dk(  r| j                  ||||¬«      S | j                  |¬«      }t        |j                  «       «      dkD  r| j                  ||¬«      }|S )Nzsentence-transformersr   rE   z+sentence transformers requires 2+ sentencesrF   rD   r   rI   Ú
input_typerl   rS   rm   )r   r   rP   rB   rT   )rX   rQ   )	rN   r   Úpopr/   r   rY   rO   rV   rj   )	r@   rB   r   rk   rQ   rP   rX   r   rW   s	            r.   Ú_transform_inputz%HuggingFaceEmbedding._transform_input‡   sê   € ð ˆð # eÑ+Ü�5‹z˜QŠÜ&Ø #ØIôð ð °%¸±(ÈÈqÈrÈÑSÐT‰Dà˜eÐ$ˆDà.×2Ñ2°<ÀÓFˆIà˜FÒ"Ü!@ÀuÐXaÔlvÔ!w‘Ø˜gÒ%Ø×2Ñ2¸È)Ð_hÐpuÐ2ÓvÐvà×8Ñ8¸uÐSZÐ8Ó[ˆDäˆ×#Ñ#Ó%Ó&¨Ò*Ø×0Ñ0°dÈOÐ0Ó\ˆDàˆr0   Ú
embeddingsÚmodel_responseÚencodingc                 ó
  — g }d|v r#|d   D ]  \  }}|j                  d||dœ«       Œ nwt        |«      D ]i  \  }}t        |t        «      s#t        |t        «      r)t        |d   t        «      r|j                  d||dœ«       ŒO|j                  d||d   d   dœ«       Œk d|_        ||_        ||_        d}	|D ]!  }
|	t        |j                  |
d¬«      «      z  }	Œ# t        |dt        j                  |	|	|	d d ¬	«      «       |S )
NÚsimilaritiesÚ	embedding)ÚobjectÚindexrw   r   Úlist© )Údisallowed_specialÚusage)Úprompt_tokensÚcompletion_tokensÚtotal_tokensÚprompt_tokens_detailsÚcompletion_tokens_details)ÚappendÚ	enumerateÚ
isinstanceÚfloatrz   rx   rX   r   rN   ÚencodeÚsetattrr4   ÚUsage)r@   rr   rs   r   rB   rt   Úoutput_dataÚidxrw   Úinput_tokensÚtexts              r.   Ú_process_embedding_responsez0HuggingFaceEmbedding._process_embedding_responseª   sE  € ð  ˆØ˜ZÑ'Ø",¨^Ñ"<ò ‘��YØ×"Ñ"à"-Ø!$Ø%.ñõñô #,¨JÓ"7ò ‘��YÜ˜i¬Ô/´:¸iÌÔ3NÔS]Ð^gÐhiÑ^jÔlqÔSrØ×&Ñ&à&1Ø%(Ø)2ñõð  ×&Ñ&à&1Ø%(Ø)2°1©°a©ñõðð" !'ˆÔØ)ˆÔØ$ˆÔØˆØò 	NˆDØœC §¡°È Ó LÓMÑM‰Lð	Nô 	ØØÜ�M‰MØ*Ø".Ø)Ø&*Ø*.ôô
	
ð Ðr0   ÚtimeoutÚlogging_objr   Úapi_keyÚheadersÚclientc              ƒ   ó¶  K  — | j                  ||d||¬«      }|j                  ||||	|dœ¬«       |€$t        t        j                  j
                  ¬«      }|j                  ||	t        j                  |«      ¬«      ƒ d {  –—† }|j                  ||d|i|¬«       |j                  «       }d	|v rt        d
|d	   ¬«      ‚| j                  |||||
¬«      S 7 ŒU­w)Nrl   ©rB   r   rk   rQ   rP   ©Úcomplete_input_dictr’   r   ©rB   r‘   Úadditional_argsr2   ©r’   rX   r—   ©rB   r‘   r™   Úoriginal_responseÚerroréô  rF   ©rr   rs   r   rB   rt   )rq   Úpre_callr   r4   r5   r6   Úpostr)   ÚdumpsÚ	post_callr   rŽ   )r@   r   rB   rs   r�   r�   rQ   r   r‘   r’   rt   r“   rX   Úresponserr   s                  r.   Ú
aembeddingzHuggingFaceEmbedding.aembeddingâ   s  è ø€ ð ×+Ñ+ØØØØ+Øð ,ó 
ˆð 	×ÑØØà'+Ø"Ø$ñð 	ô 	
ð ˆ>Ü+Ü$×1Ñ1×=Ñ=ôˆFð !'§¡¨H¸gÌDÏJÉJÐW[ÓL\ Ó ]×]ˆð 	×ÑØØØ2°DÐ9Ø&ð	 	ô 	
ð %ŸM™M›Oˆ
à�jÑ Ü"¨s¸JÀwÑ<OÔPÐPð ×/Ñ/Ø!Ø)ØØØð 0ó 
ð 	
ð! ^ús   ‚A?CÂCÂACÚlitellm_paramsr¥   c                 ót  •— t         ‰| �  «        t        j                  ||||g |¬«      }|j	                  dd «      }t        ||t        ¬«      }d}|j                  d«      r|}n_|	r|	}nZdt        j                  v rt        j                  dd«      }n1dt        j                  v rt        j                  dd«      }nd|› d	|› �}|d
u r.| j                  |||
||||t        |t        «      r|nd |||¬«      S | j                  ||d||¬«      }|j                  |||||dœ¬«       |�t        |t         «      st!        d¬«      }|j#                  ||t%        j&                  |«      ¬«      }|j)                  ||d|i|¬«       |j%                  «       }d|v rt+        d|d   ¬«      ‚| j-                  |||||¬«      S )N)r‘   r’   r   rQ   Úmessagesr¦   ro   rS   Ú )zhttp://zhttps://ÚHF_API_BASEÚHUGGINGFACE_API_BASEz4https://router.huggingface.co/hf-inference/pipeline/ú/T)rB   rs   r�   r�   r’   r   r‘   r“   r   rQ   rt   rl   r•   r–   r˜   r   r!   rš   r—   r›   r�   rž   rF   rŸ   )r>   rw   r   Úvalidate_environmentr(   r/   r   Ú
startswithÚosÚenvironÚgetenvr¥   r…   r	   rq   r    r
   r¡   r)   r¢   r£   r   rŽ   )r@   r   rB   rs   rQ   r¦   r�   rt   r‘   r   r�   r¥   r“   r’   r   ÚtaskrP   rX   r¤   rr   rA   s                       €r.   rw   zHuggingFaceEmbedding.embedding!  s  ø€ ô  	‰ÑÔÜ×-Ñ-ØØØØ+ØØ)ð .ó 
ˆð +×.Ñ.¨|¸TÓBˆ	Ü5¸EÈYÔakÔlˆàˆ	Ø×ÑÐ3Ô4Ø‰IÙØ ‰IØœbŸj™jÑ(ÜŸ	™	 -°Ó4‰IØ#¤r§z¡zÑ1ÜŸ	™	Ð"8¸"Ó=‰IàNÈtÈfÐTUÐV[ÐU\Ð]ˆIð ˜ÑØ—?‘?ØØ-ØØ'ØØ"ØÜ!+¨FÔ4DÔ!E‘vÈ4ØØ /Ø!ð #ó ð ð  ×+Ñ+ØØØØ+Øð ,ó 
ˆð 	×ÑØØà'+Ø"Ø%ñð 	ô 	
ð ˆ>¤¨F´KÔ!@Ü °!Ô4ˆFØ Ÿ+™+ i¸ÄtÇzÁzÐRVÓGW˜+ÓXˆð 	×ÑØØØ2°DÐ9Ø&ð	 	ô 	
ð %ŸM™M›Oˆ
à�jÑ Ü"¨s¸JÀwÑ<OÔPÐPð ×/Ñ/Ø!Ø)ØØØð 0ó 
ð 	
r0   )r   Nr=   )!Ú__name__Ú
__module__Ú__qualname__r:   ÚhttpxÚClientÚ__annotations__r;   ÚAsyncClientr?   rz   ÚstrÚdictrO   rY   rj   r   rq   r   r   rŽ   r4   Úutilsr†   ÚTimeoutÚLiteLLMLoggingObjr   r	   r¥   Úboolr
   rw   Ú__classcell__)rA   s   @r.   r9   r9   D   sž  ø… Ø+/€O�U—\‘\ DÑ(Ó/Ø15Ð�e×'Ñ'¨$Ñ.Ó5õð!°dð !È#ÐPTÉ*ð !ÐY]ó !ð&àðð ˜‘:ðð ð	ð
 ðð ðð 
óð"¨Tð ÀDð ÈTó ð0!àð!ð ð!ð ˜?Ñ+ð	!ð
 ð!ð ð!ð 
ó!ðF6àð6ð *ð6ð ð	6ð
 ð6ð ð6ð 
ó6ðH +/ñ=
àð=
ð ð=
ð  Ÿ™×7Ñ7ð	=
ð
 ˜Ÿ™Ñ&ð=
ð 'ð=
ð ð=
ð ð=
ð �t‘ð=
ð ð=
ð ð=
ð ! 4Ñ'ó=
ðP #Ø#Ø)6¨¯©°tÓ)<Ø"&Ø8<Øñe
àðe
ð ðe
ð *ð	e
ð
 ðe
ð ðe
ð 'ðe
ð ðe
ð �t‘ðe
ð ˜‘*ðe
ð ˜Ÿ™Ñ&ðe
ð ˜4‘Kðe
ð Ð.Ñ.°Ñ5ðe
ð 
÷e
ñ e
r0   r9   )"r)   r¯   Úcollections.abcr   Útypingr   r   r   r   r¶   r4   Ú*litellm.litellm_core_utils.litellm_loggingr   r¾   Ú&litellm.llms.custom_httpx.http_handlerr	   r
   r   Úlitellm.types.utilsr   Úbaser   Úcommon_utilsr   Útransformationr   r   r¸   r   r   rº   r/   r7   r9   r{   r0   r.   ú<module>rÉ      sÍ   ðÜ Û 	Ý $ß 0Ó 0ã ã Ý S÷ñ õ
 2å Ý +Ý 6á*Ó,€ˆÓ ,à,€
ˆEÓ ,ð ØTñð �Uó ð¨3ð ¸3À¹:ð ÐQTð ÐY\Ð_cÑYcó ð"°sð ÀsÈTÁzð Ð]`ð ÐehÐkoÑeoó ô&B
˜7õ B
r0   