
    Ng                         d Z ddlZddlmZ ddlmZmZ ddlZddlm	Z	 ddl
mZ ddlmZ dZd	ed
ede	fdZdeeef         d
ede	fdZdS )z5Base interface for loading large language model APIs.    N)Path)AnyUnion)BaseLLM)
get_fields)get_type_to_cls_dictallow_dangerous_deserializationconfigkwargsreturnc                 F   d| vrt          d          |                     d          }t                      }||vrt          d| d           ||                     }i }t          t	          |          v r#|                    t          d          |t          <    |di | |S )zLoad LLM from Config Dict._typez"Must specify an LLM Type in configzLoading z LLM not supportedF )
ValueErrorpopr   $_ALLOW_DANGEROUS_DESERIALIZATION_ARGr   get)r
   r   config_typetype_to_cls_dictllm_clsload_kwargss         \/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/llms/loading.pyload_llm_from_configr      s    f=>>>**W%%K+--***CKCCCDDD+{+--GK+z'/B/BBB<BJJ0%=
 =
89 7++V+{+++    filec                    t          | t                    rt          |           }n| }|j        dk    r<t	          |          5 }t          j        |          }ddd           n# 1 swxY w Y   nf|j                            d          r=t	          |d          5 }t          j	        |          }ddd           n# 1 swxY w Y   nt          d          t          |fi |S )zLoad LLM from a file.z.jsonN)z.yamlz.ymlrzFile type must be json or yaml)
isinstancestrr   suffixopenjsonloadendswithyaml	safe_loadr   r   )r   r   	file_pathfr
   s        r   load_llmr)   &   sU    $ JJ			7"")__ 	"Yq\\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"			"	"#4	5	5 ;)S!! 	'Q^A&&F	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 9:::11&111s$   A##A'*A'B::B>B>)__doc__r"   pathlibr   typingr   r   r%   #langchain_core.language_models.llmsr   langchain_core.utils.pydanticr   langchain_community.llmsr   r   dictr   r   r)   r   r   r   <module>r1      s    ; ;                 7 7 7 7 7 7 4 4 4 4 4 4 9 9 9 9 9 9'H $, , , , , , ,,25d# 2s 2w 2 2 2 2 2 2r   