
    7|h                     f    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y)	    )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y)ManifestWrapperz HazyResearch's Manifest library.Nclient
llm_kwargsforbid)extravaluesreturnc                 p    	 ddl m} t        |d   |      st        	 |S # t        $ r t	        d      w xY w)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/test/engine/venv/lib/python3.12/site-packages/langchain_community/llms/manifest.pyvalidate_environmentz$ManifestWrapper.validate_environment   sO    		)fX.9   :   	D 	s     5c                     | j                   xs i }i | j                  j                  j                         j	                         |S )N)r   r   client_poolget_current_clientget_model_params)selfkwargss     r   _identifying_paramsz#ManifestWrapper._identifying_params"   sF    &B
kk%%88:KKM

 	
    c                      y)zReturn type of llm.r    )r!   s    r   	_llm_typezManifestWrapper._llm_type*   s     r$   promptstoprun_managerr"   c                     |t        |      dk7  rt        d|       | j                  xs i }i ||}|||d<    | j                  j                  |fi |S )z!Call out to LLM through Manifest.   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/   st     D	Q%LTFS  &B%F%f%#'F< t{{v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   
WS#X%6 
 
 3   %):>	11 tCy!1 67	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 = 3 ) 61c 61r$   