
    7|h                         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y)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                    d| vrt        d      | j                  d      }t               }||vrt        d| d       ||          }i }t        t	        |      v r|j                  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/test/engine/venv/lib/python3.12/site-packages/langchain_community/llms/loading.pyload_llm_from_configr      s    f=>>**W%K+-**8K=0BCDD+{+-GK+z'/BB<BJJ0%=
89 +V+{++    filec                    t        | t              rt        |       }n| }|j                  dk(  r*t	        |      5 }t        j                  |      }ddd       nQ|j                  j                  d      r+t	        |d      5 }t        j                  |      }ddd       nt        d      t        fi |S # 1 sw Y   xY w# 1 sw Y   !xY w)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)   &   s     $J		7")_ 	"YYq\F	" 	"				"	"#4	5)S! 	'Q^^A&F	' 	' 9::1&11	" 	"	' 	's   B5?C5B>C
)__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 4 9'H $, , , ,,25d# 2s 2w 2r   