
    7|hU                    v    d dl mZ d dlmZmZ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mZ  G d de      Zy	)
    )annotations)AnyDictListMappingOptional)urlparse)CallbackManagerForLLMRun)LLM)FieldPrivateAttrc                      e Zd ZU dZded<   	 ded<   	 dZded<   	 dZd	ed
<   	 dZded<   	 dZded<   	  e	e
      Zded<   	 	  e       Zded<   d fdZddZedd       Zedd       Z	 	 d	 	 	 	 	 	 	 	 	 d dZed!d       Z xZS )"Mlflowa  MLflow LLM service.

    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.llms import Mlflow

            completions = Mlflow(
                target_uri="http://localhost:5000",
                endpoint="test",
                temperature=0.1,
            )
    strendpoint
target_urig        floattemperature   intnNOptional[List[str]]stopzOptional[int]
max_tokens)default_factoryDict[str, Any]extra_paramsr   _clientc                    t        |   di | | j                          	 ddlm}  || j
                        | _        y # t        $ r}t        d      |d }~ww xY w)Nr   )get_deploy_clientzeFailed to create the client. Please run `pip install mlflow[genai]` to install required dependencies. )super__init___validate_urimlflow.deploymentsr    r   r   ImportError)selfkwargsr    e	__class__s       ^/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/llms/mlflow.pyr#   zMlflow.__init__/   s^    "6"		<,T__=DL 	) 		s   A   	A	AAc                    | j                   dk(  ry g d}t        | j                         j                  |vrt        d| j                    d| d      y )N
databricks)httphttpsr-   zInvalid target URI: z. The scheme must be one of .)r   r	   scheme
ValueError)r'   alloweds     r+   r$   zMlflow._validate_uri=   s\    ??l*1DOO$++7:&t&7 8--4IQ8  ;    c                    | j                   | j                  | j                  | j                  | j                  | j
                  | j                  dS )Nr   r   r   r   r   r   r   r6   r'   s    r+   _default_paramszMlflow._default_paramsG   sC     //++II// --
 	
r4   c                    | j                   S )N)r8   r7   s    r+   _identifying_paramszMlflow._identifying_paramsS   s    ###r4   c                   || j                   | j                  d| j                  |}| j                  xs |x}r||d<   | j                  | j                  |d<   | j
                  j                  | j                  |      }|d   d   d   S )N)promptr   r   r   r   )r   inputschoicesr   text)r   r   r   r   r   r   predictr   )r'   r<   r   run_managerr(   dataresps          r+   _callzMlflow._callW   s     ++ 
 	 

  
 99$$4$DL??&!%D||##T]]4#HIq!&))r4   c                     y)Nmlflowr!   r7   s    r+   	_llm_typezMlflow._llm_typem   s    r4   )r(   r   )returnNone)rH   r   )rH   zMapping[str, Any])NN)
r<   r   r   r   rA   z"Optional[CallbackManagerForLLMRun]r(   r   rH   r   )rH   r   )__name__
__module____qualname____doc____annotations__r   r   r   r   r   dictr   r   r   r#   r$   propertyr8   r:   rD   rG   __classcell__)r*   s   @r+   r   r      s    " MO K#AsJ7 $D
$ $J$3#(#>L.>71=GS  	
 	
 $ $ %):>	** "* 8	*
 * 
*,  r4   r   N)
__future__r   typingr   r   r   r   r   urllib.parser	   langchain_core.callbacksr
   langchain_core.language_modelsr   pydanticr   r   r   r!   r4   r+   <module>rX      s(    " 5 5 ! = . 'dS dr4   