Ë
    uPêjÝ  ã                   ó|   — d Z ddlmZ ddlZddlmZ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  G d
„ dee«      Zy)zN
Translates from OpenAI's `/v1/embeddings` to IBM's `/text/embeddings` route.
é    )ÚFinalN)ÚBaseEmbeddingConfigÚLiteLLMLoggingObj)ÚAllEmbeddingInputValues)ÚWatsonXAIEndpoint)ÚEmbeddingResponseÚUsageé   )ÚIBMWatsonXMixinÚ_get_api_paramsc                   óÔ   — e Z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dedz  dedz  dededededz  defd„Zdedej                  dedededz  dedededefd„Zy)ÚIBMWatsonXEmbeddingConfigÚmodelÚreturnc                 ó   — g S ©N© )Úselfr   s     ún/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/embed/transformation.pyÚget_supported_openai_paramsz5IBMWatsonXEmbeddingConfig.get_supported_openai_params   s   € Øˆ	ó    Únon_default_paramsÚoptional_paramsÚdrop_paramsc                 ó   — |S r   r   )r   r   r   r   r   s        r   Úmap_openai_paramsz+IBMWatsonXEmbeddingConfig.map_openai_params   s
   € ð Ðr   ÚinputÚheadersc                 ó  — t        ||¬«      }| j                  ||¬«      }t        |t        «      r|g}nHt        |t        «      r5t        |«      dkD  r$t        |d   t        t        f«      rt        d«      ‚|}n|g}||dœ|¥S )N)Úparamsr   )r   Ú
api_paramsr   z6WatsonX embeddings require a string or list of strings)ÚinputsÚ
parameters)r   Ú_prepare_payloadÚ
isinstanceÚstrÚlistÚlenÚintÚ
ValueError)r   r   r   r   r   Úwatsonx_api_paramsÚwatsonx_auth_payloadr"   s           r   Útransform_embedding_requestz5IBMWatsonXEmbeddingConfig.transform_embedding_request!   s›   € ô %4¸?ÐRWÔ$XÐØ&*×&;Ñ&;ØØ)ð '<ó '
Ðô
 �eœSÔ!Ø!& ‰FÜ˜œtÔ$Ü�5‹z˜AŠ~¤*¨U°1©X¼¼c°{Ô"CÜ Ð!YÓZÐZØ‰Fà�WˆFð Ø)ñ
ð #ð
ð 	
r   NÚapi_baseÚapi_keyÚlitellm_paramsÚstreamc                 óX  — | j                  |¬«      }t        j                  j                  }|j	                  d«      r5dj                  |j                  d«      dd  «      }	|j                  |	¬«      }|j                  d«      |z   }| j                  ||j                  dd «      ¬«      }|S )N)r.   zdeployment/ú/é   )Údeployment_idÚapi_version)Úurlr6   )Ú_get_base_urlr   Ú
EMBEDDINGSÚvalueÚ
startswithÚjoinÚsplitÚformatÚrstripÚ_add_api_version_to_urlÚpop)
r   r.   r/   r   r   r0   r1   r7   Úendpointr5   s
             r   Úget_complete_urlz*IBMWatsonXEmbeddingConfig.get_complete_url=   s¡   € ð × Ñ ¨(Ð Ó3ˆÜ$×/Ñ/×5Ñ5ˆØ×Ñ˜MÔ*Ø#&§8¡8¨E¯K©K¸Ó,<¸Q¸RÐ,@Ó#AˆMØ—‘°]�ÓCˆHØ�j‰j˜‹o Ñ(ˆð ×*Ñ*¨sÀ×@SÑ@SÐTaÐcgÓ@hÐ*ÓiˆØˆ
r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	           	      óŠ  — |j                  |j                  ¬«       |j                  «       }	|€t        |	j	                  dd «      ¬«      }|	j	                  dg «      }
g }t        |
«      D ]  \  }}|j                  d||d   dœ«       Œ d|_        ||_        |	j	                  dd	«      }t        |d
t        |d	|¬«      «       |S )N)Úoriginal_responseÚmodel_id)r   ÚresultsÚ	embedding)ÚobjectÚindexrL   r'   Úinput_token_countr   Úusage)Úprompt_tokensÚcompletion_tokensÚtotal_tokens)Ú	post_callÚtextÚjsonr   ÚgetÚ	enumerateÚappendrM   ÚdataÚsetattrr	   )r   r   rD   rE   rF   r/   rG   r   r0   Ú	json_resprK   Úembedding_responseÚidxÚresultÚinput_tokenss                  r   Útransform_embedding_responsez6IBMWatsonXEmbeddingConfig.transform_embedding_responseQ   sä   € ð 	×ÑØ*×/Ñ/ð 	ô 	
ð (×,Ñ,Ó.ˆ	ØÐ!Ü.°Y·]±]À:ÈtÓ5TÔUˆNØ"Ÿ™ y°"Ó5ˆØ$&ÐÜ$ WÓ-ò 	‰KˆC�Ø×%Ñ%à)Ø Ø!'¨Ñ!4ñõð	ð !'ˆÔØ0ˆÔØ'Ÿm™mÐ,?ÀÓCˆÜØØÜØ*Ø"#Ø)ôô	
ð Ðr   r   )Ú__name__Ú
__module__Ú__qualname__r&   r'   r   ÚdictÚboolr   r   r-   rC   ÚhttpxÚResponser   r   ra   r   r   r   r   r      s?  „ ð°ð ¸ó ðà ðð ðð ð	ð
 ðð 
óð
àð
ð 'ð
ð ð	
ð
 ð
ð 
ó
ðF #ñà˜‘*ðð �t‘ðð ð	ð
 ðð ðð �t‘ðð 
óð('àð'ð —n‘nð'ð *ð	'ð
 'ð'ð �t‘ð'ð ð'ð ð'ð ð'ð 
ô'r   r   )Ú__doc__Útypingr   rg   Ú.litellm.llms.base_llm.embedding.transformationr   r   Úlitellm.types.llms.openair   Úlitellm.types.llms.watsonxr   Úlitellm.types.utilsr   r	   Úcommon_utilsr   r   r   r   r   r   ú<module>rp      s6   ðñõ ã ÷õ >Ý 8ß 8ç ;ôd Ð1Dõ dr   