
    dh                        S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJrJr  SS jr " S S\
\5      r " S	 S
\5      rg)    )annotations)AnyDictIteratorList)urlparse)
Embeddings)	BaseModelPrivateAttrc              #  V   #    [        S[        U 5      U5       H  nXX!-    v   M     g 7f)Nr   )rangelen)textssizeis      ]/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/mlflow.py_chunkr   
   s)     1c%j$'!! (s   ')c                     ^  \ rS rSr% SrS\S'    S\S'    \" 5       rS\S'    0 rS\S	'    0 r	S\S
'   SU 4S jjr
\SS j5       rSS jrSS jrSS jrSS jrSrU =r$ )MlflowEmbeddings   a  Embedding LLMs in MLflow.

To use, you should have the `mlflow[genai]` python package installed.
For more information, see https://mlflow.org/docs/latest/llms/deployments.

Example:
    .. code-block:: python

        from langchain_community.embeddings import MlflowEmbeddings

        embeddings = MlflowEmbeddings(
            target_uri="http://localhost:5000",
            endpoint="embeddings",
        )
strendpoint
target_urir   _clientDict[str, str]query_paramsdocuments_paramsc                   > [         TU ]  " S0 UD6  U R                  5          SSKJn  U" U R
                  5      U l        g ! [         a  n[        SU R                   S35      UeS nAff = f)Nr   )get_deploy_clientz;Failed to create the client. Please run `pip install mlflowz#` to install required dependencies. )	super__init___validate_urimlflow.deploymentsr   r   r   ImportError_mlflow_extras)selfkwargsr   e	__class__s       r   r"   MlflowEmbeddings.__init__*   su    "6"		<,T__=DL 	1151D1D0E F)) 		s   A 
A*A%%A*c                    g)Nz[genai]r    )r'   s    r   r&   MlflowEmbeddings._mlflow_extras8   s        c                    U R                   S:X  a  g / SQn[        U R                   5      R                  U;  a  [        SU R                    SU S35      eg )N
databricks)httphttpsr0   zInvalid target URI: z. The scheme must be one of .)r   r   scheme
ValueError)r'   alloweds     r   r#   MlflowEmbeddings._validate_uri<   s\    ??l*1DOO$++7:&t&7 8--4IQ8  ;r.   c                    / n[        US5       HF  nU R                  R                  U R                  SU0UES9nUR	                  S US    5       5        MH     U$ )N   input)r   inputsc              3  (   #    U H	  oS    v   M     g7f)	embeddingNr    ).0rs     r   	<genexpr>)MlflowEmbeddings.embed.<locals>.<genexpr>M   s     Clnls   data)r   r   predictr   extend)r'   r   params
embeddingstxtresps         r   embedMlflowEmbeddings.embedF   sg    (*
%$C<<''// ( D Cd6lCC % r.   c                4    U R                  XR                  S9$ )NrE   )rI   r   )r'   r   s     r   embed_documents MlflowEmbeddings.embed_documentsP   s    zz%(=(=z>>r.   c                >    U R                  U/U R                  S9S   $ )NrL   r   )rI   r   )r'   texts     r   embed_queryMlflowEmbeddings.embed_queryS   s"    zz4&):):z;A>>r.   )r   )r(   r   )returnr   )rS   None)r   	List[str]rE   r   rS   List[List[float]])r   rU   rS   rV   )rP   r   rS   zList[float])__name__
__module____qualname____firstlineno____doc____annotations__r   r   r   r   r"   propertyr&   r#   rI   rM   rQ   __static_attributes____classcell__)r*   s   @r   r   r      ss      MO =GS ,#%L.%.')n)  ?? ?r.   r   c                  >    \ rS rSr% SrSS0rS\S'   SS0rS\S'   S	rg
)MlflowCohereEmbeddingsW   z Cohere embedding LLMs in MLflow.
input_typesearch_queryr   r   search_documentr   r    N)	rW   rX   rY   rZ   r[   r   r\   r   r^   r    r.   r   ra   ra   W   s%    *$0.#AL.A(46G'HnHr.   ra   N)r   rU   r   intrS   zIterator[List[str]])
__future__r   typingr   r   r   r   urllib.parser   langchain_core.embeddingsr	   pydanticr
   r   r   r   ra   r    r.   r   <module>rl      s<    " , , ! 0 +"
E?z9 E?PI- Ir.   