
    Ng                     n    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  G d de	          ZdS )	    )AnyDictListMappingOptional)CallbackManagerForLLMRun)LLM)pre_init)
ConfigDictc                      e Zd ZU dZdZeed<   dZee	         ed<    e
d          Zede	de	fd	            Zedeeef         fd
            Zedefd            Z	 	 ddedeee                  dee         dedef
dZdS )ManifestWrapperz HazyResearch's Manifest library.Nclient
llm_kwargsforbid)extravaluesreturnc                     	 ddl m} t          |d         |          st          n# t          $ r t	          d          w xY w|S )z3Validate that python package exists in environment.r   )Manifestr   z[Could not import manifest python package. Please install it with `pip install manifest-ml`.)manifestr   
isinstance
ValueErrorImportError)clsr   r   s      ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/llms/manifest.pyvalidate_environmentz$ManifestWrapper.validate_environment   su    		))))))fX.99 !  ! 	 	 	D  	
 s	   #& A c                 |    | j         pi }i | j        j                                                                        |S )N)r   r   client_poolget_current_clientget_model_params)selfkwargss     r   _identifying_paramsz#ManifestWrapper._identifying_params"   sE    &B
k%88::KKMM

 	
    c                     dS )zReturn type of llm.r    )r!   s    r   	_llm_typezManifestWrapper._llm_type*   s	     zr$   promptstoprun_managerr"   c                     |%t          |          dk    rt          d|           | j        pi }i ||}|||d<    | j        j        |fi |S )z!Call out to LLM through Manifest.N   z:Manifest currently only supports a single stop token, got 
stop_token)lenNotImplementedErrorr   r   run)r!   r(   r)   r*   r"   paramss         r   _callzManifestWrapper._call/   s~     D		Q%STSS   &B%F%f%#'F< t{v00000r$   )NN)__name__
__module____qualname____doc__r   r   __annotations__r   r   r   r   model_configr
   r   propertyr   strr#   r'   r   r   r2   r&   r$   r   r   r   	   s>        **FC!%J%%%:  L $ 4    X 
WS#X%6 
 
 
 X
 3    X %):>	1 11 tCy!1 67	1
 1 
1 1 1 1 1 1r$   r   N)typingr   r   r   r   r   langchain_core.callbacksr   #langchain_core.language_models.llmsr	   langchain_core.utilsr
   pydanticr   r   r&   r$   r   <module>r@      s    5 5 5 5 5 5 5 5 5 5 5 5 5 5 = = = = = = 3 3 3 3 3 3 ) ) ) ) ) )      61 61 61 61 61c 61 61 61 61 61r$   