Ë
    ´Œjðm  ã                  ó
  — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	 ddl
Z
ddlmZ ddl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 ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z.m/Z/ erddl0m1Z1 ddl2m3Z3 	 ddl4m5Z5m6Z6 dZ8dKd„Z9dLd„Z:dMd„Z;	 	 	 	 	 	 dNd „Z<dOd!„Z=dPd"„Z>dQd#„Z?dRd$„Z@	 	 	 	 	 	 dSd%„ZAdPd&„ZBdTd'„ZCdUd(„ZDdPd)„ZE	 	 	 	 	 	 dVd*„ZFdWd+„ZG	 	 	 	 	 	 dXd,„ZHdYd-„ZIdZd.„ZJd[d/„ZKd\d0„ZLi d1eK“d2e:“d3e9“d4e>“d5e?“d6e@“d7eL“d8eB“d9eD“d:e;“d;e<“d<e=“d=eA“d>eC“d?eE“d@eF“dAeI“eGeHeJdBœ¥ZM edCdDdE¬F«      d]dG„«       ZN edCdDdE¬F«      d^dH„«       ZOd_dI„ZPy# e7$ r dJd„Z5dJd„Z6Y ŒÝw xY w)`z!Functionality for loading chains.é    )ÚannotationsN)ÚPath)ÚTYPE_CHECKINGÚAnyÚUnion)Ú
deprecated)Ú_load_output_parserÚload_promptÚload_prompt_from_config)ÚReduceDocumentsChain)ÚAPIChain)ÚChain)ÚMapReduceDocumentsChain)ÚMapRerankDocumentsChain)ÚRefineDocumentsChain)ÚStuffDocumentsChain)ÚHypotheticalDocumentEmbedder)ÚLLMChain)ÚLLMCheckerChain)ÚLLMMathChain)ÚQAWithSourcesChain)ÚRetrievalQAWithSourcesChain)ÚVectorDBQAWithSourcesChain)ÚRetrievalQAÚ
VectorDBQA©ÚGraphCypherQAChain©ÚLLMRequestsChain)Úload_llmÚload_llm_from_configc                 ó   — d}t        |«      ‚)NzŽTo use this load_llm functionality you must install the langchain_community package. You can install it with `pip install langchain_community`©ÚImportError©ÚargsÚkwargsÚmsgs      úb/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/chains/loading.pyr    r    *   ó   € ðHð 	ô
 ˜#ÓÐó    c                 ó   — d}t        |«      ‚)NzšTo use this load_llm_from_config functionality you must install the langchain_community package. You can install it with `pip install langchain_community`r#   r%   s      r)   r!   r!   2   r*   r+   zHhttps://raw.githubusercontent.com/hwchase17/langchain-hub/master/chains/c                ól  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t	        |«      }n,d| v rt        | j                  d«      «      }nd}t        |«      ‚t        | «       t        d||dœ| ¤ŽS )	z Load LLM chain from config dict.ÚllmÚllm_pathú+One of `llm` or `llm_path` must be present.ÚpromptÚprompt_pathz1One of `prompt` or `prompt_path` must be present.©r.   r1   © )Úpopr!   r    Ú
ValueErrorr   r
   r	   r   )Úconfigr'   Ú
llm_configr.   r(   Úprompt_configr1   s          r)   Ú_load_llm_chainr:   >   s¼   € à��Ø—Z‘Z Ó&ˆ
Ü" :Ñ8°Ñ8‰Ø	�vÑ	Ü�v—z‘z *Ó-Ñ8°Ñ8‰à;ˆÜ˜‹oÐà�6ÑØŸ
™
 8Ó,ˆÜ(¨Ó7‰Ø	˜&Ñ	 Ü˜VŸZ™Z¨Ó6Ó7‰àAˆÜ˜‹oÐÜ˜ÔäÐ5˜ FÑ5¨fÑ5Ð5r+   c                ó  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d|v r|j                  d«      }nd}t        |«      ‚t	        d||dœ| ¤ŽS )z;Load hypothetical document embedder chain from config dict.Ú	llm_chainÚllm_chain_pathú7One of `llm_chain` or `llm_chain_path` must be present.Ú
embeddingsz`embeddings` must be present.)r<   Úbase_embeddingsr4   )r5   Úload_chain_from_configÚ
load_chainr6   r   )r7   r'   Úllm_chain_configr<   r(   r?   s         r)   Ú_load_hyde_chainrD   V   s    € à�fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	àGˆÜ˜‹oÐØ�vÑØ—Z‘Z Ó-‰
à-ˆÜ˜‹oÐÜ'ð ØØ"ñð ñð r+   c                ó–  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        |t
        «      sd|› �}t        |«      ‚d| v r| j                  d«      }t        |«      }n,d| v rt        | j                  d«      «      }nd}t        |«      ‚t        d	||dœ| ¤ŽS )
Nr<   r=   r>   úExpected LLMChain, got Údocument_promptÚdocument_prompt_pathzCOne of `document_prompt` or `document_prompt_path` must be present.)r<   rG   r4   )	r5   rA   rB   r6   Ú
isinstancer   r   r
   r   )r7   r'   rC   r<   r(   r9   rG   s          r)   Ú_load_stuff_documents_chainrJ   l   sç   € Ø�fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	àGˆÜ˜‹oÐä�i¤Ô*Ø'¨	 {Ð3ˆÜ˜‹oÐà˜FÑ"ØŸ
™
Ð#4Ó5ˆÜ1°-Ó@‰Ø	 6Ñ	)Ü% f§j¡jÐ1GÓ&HÓI‰àSˆÜ˜‹oÐäð ØØ'ñð ñð r+   c                ó”  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        |t
        «      sd|› �}t        |«      ‚d| v rt        | j                  d«      fi |¤Ž}n,d| v rt        | j                  d«      fi |¤Ž}nt        | fi |¤Ž}t        d||dœ| ¤ŽS )	Nr<   r=   r>   rF   Úreduce_documents_chainÚreduce_documents_chain_path)r<   rL   r4   )r5   rA   rB   r6   rI   r   Ú_load_reduce_documents_chainr   )r7   r'   rC   r<   r(   rL   s         r)   Ú _load_map_reduce_documents_chainrO   Š   s  € ð �fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	àGˆÜ˜‹oÐä�i¤Ô*Ø'¨	 {Ð3ˆÜ˜‹oÐà 6Ñ)Ü!7Ø�J‰JÐ/Ó0ñ"
àñ"
Ñð 
'¨&Ñ	0Ü!+Ø�J‰JÐ4Ó5ñ"
àñ"
Ñô
 ">¸fÑ!OÈÑ!OÐä"ð ØØ5ñð ñð r+   c                ób  — d }d }d| v r| j                  d«      }t        |fi |¤Ž}nod| v r| j                  d«      }t        |fi |¤Ž}nMd| v rt        | j                  d«      fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r#| j                  d«      }|€d }nst        |fi |¤Ž}nfd| v rt        | j                  d«      fi |¤Ž}nFd| v r#| j                  d«      }|€d }n,t        |fi |¤Ž}nd	| v rt        | j                  d	«      fi |¤Ž}t	        d||d
œ| ¤ŽS )NÚcombine_documents_chainÚcombine_document_chainÚcombine_documents_chain_pathÚcombine_document_chain_pathúSOne of `combine_documents_chain` or `combine_documents_chain_path` must be present.Úcollapse_documents_chainÚcollapse_documents_chain_pathÚcollapse_document_chainÚcollapse_document_chain_path)rQ   rV   r4   )r5   rA   rB   r6   r   )r7   r'   rQ   rV   Úcombine_document_chain_configr(   Úcollapse_document_chain_configs          r)   rN   rN   ¯   sÄ  € Ø"ÐØ#Ðà  FÑ*Ø(.¯
©
Ð3LÓ(MÐ%Ü"8Ø)ñ#
àñ#
Ñð 
" VÑ	+Ø(.¯
©
Ð3KÓ(LÐ%Ü"8Ø)ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð 
'¨&Ñ	0Ü",Ø�J‰JÐ4Ó5ñ#
àñ#
Ñð>ð 	ô ˜‹oÐà! VÑ+Ø)/¯©Ð4NÓ)OÐ&Ø)Ð1Ø'+Ñ$ä'=Ø.ñ(àñ(Ñ$ð 
)¨FÑ	2Ü#-Ø�J‰JÐ6Ó7ñ$
àñ$
Ñ ð 
# fÑ	,Ø)/¯©Ð4MÓ)NÐ&Ø)Ð1Ø'+Ñ$ä'=Ø.ñ(àñ(Ñ$ð 
(¨6Ñ	1Ü#-Ø�J‰JÐ5Ó6ñ$
àñ$
Ð ô
  ð Ø 7Ø!9ñð ñð r+   c                ó   — d}t        |«      ‚)z$Load LLM Bash chain from config dicta   LLMBash Chain is not available through LangChain anymore. The relevant code can be found in langchain_experimental, but it is not appropriate for production usage due to security concerns. Please refer to langchain-experimental repository for more details.©ÚNotImplementedError©r7   r'   r(   s      r)   Ú_load_llm_bash_chainr`   ô   s   € ð	Xð ô ˜cÓ
"Ð"r+   c           	     óº  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t	        |«      }nd| v rt        | j                  d«      «      }d| v r| j                  d«      }t	        |«      }nd| v rt        | j                  d«      «      }d| v r| j                  d«      }	t	        |	«      }
nd	| v rt        | j                  d	«      «      }
d
| v r| j                  d
«      }t	        |«      }nd| v rt        | j                  d«      «      }t        d|
dœ| ¤ŽS )Nr.   r/   r0   Úcreate_draft_answer_promptÚcreate_draft_answer_prompt_pathÚlist_assertions_promptÚlist_assertions_prompt_pathÚcheck_assertions_promptÚcheck_assertions_prompt_pathÚrevised_answer_promptÚrevised_answer_prompt_path)r.   rb   rd   rf   rh   r4   )r5   r!   r    r6   r   r
   r   )r7   r'   r8   r.   r(   Ú!create_draft_answer_prompt_configrb   Úlist_assertions_prompt_configrd   Úcheck_assertions_prompt_configrf   Úrevised_answer_prompt_configrh   s                r)   Ú_load_llm_checker_chainrn   ÿ   s–  € Ø��Ø—Z‘Z Ó&ˆ
Ü" :Ñ8°Ñ8‰Ø	�vÑ	Ü�v—z‘z *Ó-Ñ8°Ñ8‰à;ˆÜ˜‹oÐØ# vÑ-Ø,2¯J©JÐ7SÓ,TÐ)Ü%<Ø-ó&
Ñ"ð 
+¨fÑ	4Ü%0Ø�J‰JÐ8Ó9ó&
Ð"ð   6Ñ)Ø(.¯
©
Ð3KÓ(LÐ%Ü!8Ð9VÓ!WÑØ	&¨&Ñ	0Ü!,¨V¯Z©ZÐ8UÓ-VÓ!WÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"9Ø*ó#
Ñð 
(¨6Ñ	1Ü"-Ø�J‰JÐ5Ó6ó#
Ðð  &Ñ(Ø'-§z¡zÐ2IÓ'JÐ$Ü 7Ð8TÓ UÑØ	%¨Ñ	/Ü +¨F¯J©JÐ7SÓ,TÓ UÐÜð ØØ#=Ø5Ø 7Ø3ñð ñð r+   c                óâ  — d }d| v r| j                  d«      }t        |fi |¤Ž}nod| v rt        | j                  d«      fi |¤Ž}nOd| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt	        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t        |«      }nd| v rt        | j                  d«      «      }|rt        d
|dœ| ¤ŽS t        d
d	œ| ¤ŽS )Nr<   r=   r.   r/   r>   r1   r2   )r<   r1   r3   r4   )	r5   rA   rB   r!   r    r6   r   r
   r   )	r7   r'   r<   rC   r8   r.   r(   r9   r1   s	            r)   Ú_load_llm_math_chainrp   .  s  € Ø€IØ�fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	à	�&‰Ø—Z‘Z Ó&ˆ
Ü" :Ñ8°Ñ8‰ð 
�vÑ	Ü�v—z‘z *Ó-Ñ8°Ñ8‰àGˆÜ˜‹oÐØ�6ÑØŸ
™
 8Ó,ˆÜ(¨Ó7‰Ø	˜&Ñ	 Ü˜VŸZ™Z¨Ó6Ó7ˆÙÜÐI i¸ÑIÀ&ÑIÐIÜÐ9˜C¨Ñ9°&Ñ9Ð9r+   c                óº   — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        dd|i| ¤ŽS )Nr<   r=   r>   r4   )r5   rA   rB   r6   r   )r7   r'   rC   r<   r(   s        r)   Ú _load_map_rerank_documents_chainrr   J  sn   € ð �fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	àGˆÜ˜‹oÐÜ"ÑA¨YÐA¸&ÑAÐAr+   c                ó   — d}t        |«      ‚)NzûPALChain is not available through LangChain anymore. The relevant code can be found in langchain_experimental, but it is not appropriate for production usage due to security concerns. Please refer to langchain-experimental repository for more details.r]   r_   s      r)   Ú_load_pal_chainrt   Y  s   € ð	Xð ô ˜cÓ
"Ð"r+   c                óÚ  — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t	        |«      }nd| v rt        | j                  d«      «      }t        d
||d	œ| ¤ŽS )NÚinitial_llm_chainÚinitial_llm_chain_pathzGOne of `initial_llm_chain` or `initial_llm_chain_path` must be present.Úrefine_llm_chainÚrefine_llm_chain_pathzEOne of `refine_llm_chain` or `refine_llm_chain_path` must be present.rG   rH   )rv   rx   rG   r4   )r5   rA   rB   r6   r   r
   r   )	r7   r'   Úinitial_llm_chain_configrv   r(   Úrefine_llm_chain_configrx   r9   rG   s	            r)   Ú_load_refine_documents_chainr|   c  s  € Ø˜fÑ$Ø#)§:¡:Ð.AÓ#BÐ Ü2Ð3KÑVÈvÑVÑØ	! VÑ	+Ü& v§z¡zÐ2JÓ'KÑVÈvÑVÑàWˆÜ˜‹oÐØ˜VÑ#Ø"(§*¡*Ð-?Ó"@ÐÜ1Ð2IÑTÈVÑTÑØ	  FÑ	*Ü% f§j¡jÐ1HÓ&IÑTÈVÑTÑàUˆÜ˜‹oÐØ˜FÑ"ØŸ
™
Ð#4Ó5ˆÜ1°-Ó@‰Ø	 6Ñ	)Ü% f§j¡jÐ1GÓ&HÓIˆÜð Ø+Ø)Ø'ñð ñ	ð r+   c                óº   — d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        dd|i| ¤ŽS )NrQ   rS   rU   r4   )r5   rA   rB   r6   r   )r7   r'   Úcombine_documents_chain_configrQ   r(   s        r)   Ú_load_qa_with_sources_chainr   �  s…   € Ø  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð>ð 	ô ˜‹oÐÜÑXÐ6MÐXÐQWÑXÐXr+   c                ó   — d}t        |«      ‚)z)Load SQL Database chain from config dict.ae  SQLDatabaseChain is not available through LangChain anymore. The relevant code can be found in langchain_experimental, but it is not appropriate for production usage due to security concerns. Please refer to langchain-experimental repository for more details, or refer to this tutorial for best practices: https://python.langchain.com/docs/tutorials/sql_qa/r]   r_   s      r)   Ú_load_sql_database_chainr�   –  s   € ð	>ð ô ˜cÓ
"Ð"r+   c                ó  — d|v r|j                  d«      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        d||dœ| ¤ŽS ©NÚvectorstorez`vectorstore` must be present.rQ   rS   rU   )rQ   r„   r4   )r5   r6   rA   rB   r   ©r7   r'   r„   r(   r~   rQ   s         r)   Ú%_load_vector_db_qa_with_sources_chainr†   £  s¹   € ð ˜ÑØ—j‘j Ó/‰à.ˆÜ˜‹oÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð>ð 	ô ˜‹oÐÜ%ð Ø 7Øñð ñð r+   c                ó  — d|v r|j                  d«      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        d||dœ| ¤ŽS ©NÚ	retrieverz`retriever` must be present.rQ   rS   rU   )rQ   r‰   r4   )r5   r6   rA   rB   r   ©r7   r'   r‰   r(   r~   rQ   s         r)   Ú_load_retrieval_qar‹   Ä  s·   € Ø�fÑØ—J‘J˜{Ó+‰	à,ˆÜ˜‹oÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð>ð 	ô ˜‹oÐÜð Ø 7Øñð ñð r+   c                ó  — d|v r|j                  d«      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        d||dœ| ¤ŽS rˆ   )r5   r6   rA   rB   r   rŠ   s         r)   Ú%_load_retrieval_qa_with_sources_chainr�   â  s¹   € ð �fÑØ—J‘J˜{Ó+‰	à,ˆÜ˜‹oÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð>ð 	ô ˜‹oÐÜ&ð Ø 7Øñð ñð r+   c                ó  — d|v r|j                  d«      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚t	        d||dœ| ¤ŽS rƒ   )r5   r6   rA   rB   r   r…   s         r)   Ú_load_vector_db_qar�     s·   € Ø˜ÑØ—j‘j Ó/‰à.ˆÜ˜‹oÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð 
(¨6Ñ	1Ü",Ø�J‰JÐ5Ó6ñ#
àñ#
Ñð>ð 	ô ˜‹oÐÜð Ø 7Øñð ñð r+   c                óh  — d|v r|j                  d«      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}nd}t        |«      ‚	 ddlm}  |d|||d
œ| ¤ŽS # t
        $ r}	d	}t        |«      |	‚d }	~	ww xY w)NÚgraphz`graph` must be present.Úcypher_generation_chainz*`cypher_generation_chain` must be present.Úqa_chainz`qa_chain` must be present.r   r   z˜To use this GraphCypherQAChain functionality you must install the langchain_community package. You can install it with `pip install langchain_community`)r‘   r’   r“   r4   )r5   r6   rA   Ú*langchain_community.chains.graph_qa.cypherr   r$   )
r7   r'   r‘   r(   Úcypher_generation_chain_configr’   Úqa_chain_configr“   r   Úes
             r)   Ú_load_graph_cypher_chainr˜   !  sõ   € Ø�&ÑØ—
‘
˜7Ó#‰à(ˆÜ˜‹oÐØ  FÑ*Ø)/¯©Ð4MÓ)NÐ&Ü"8Ø*ñ#
àñ#
Ñð
 ;ˆÜ˜‹oÐØ�VÑØ Ÿ*™* ZÓ0ˆÜ)¨/ÑD¸VÑD‰à+ˆÜ˜‹oÐð&ÝQñ ð ØØ 7Øñð ñ	ð øô ò &ðHð 	ô
 ˜#Ó AÐ%ûð&ús   ÂB Â	B1ÂB,Â,B1c                ó   — d| v r| j                  d«      }t        |fi |¤Ž}n,d| v rt        | j                  d«      «      }nd}t        |«      ‚d| v r| j                  d«      }t        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d|v r|j                  d«      }nd}t        |«      ‚t	        d
|||d	œ| ¤ŽS )NÚapi_request_chainÚapi_request_chain_pathzGOne of `api_request_chain` or `api_request_chain_path` must be present.Úapi_answer_chainÚapi_answer_chain_pathzEOne of `api_answer_chain` or `api_answer_chain_path` must be present.Úrequests_wrapperz#`requests_wrapper` must be present.)rš   rœ   rž   r4   )r5   rA   rB   r6   r   )r7   r'   Úapi_request_chain_configrš   r(   Úapi_answer_chain_configrœ   rž   s           r)   Ú_load_api_chainr¡   H  sý   € Ø˜fÑ$Ø#)§:¡:Ð.AÓ#BÐ Ü2Ð3KÑVÈvÑVÑØ	! VÑ	+Ü& v§z¡zÐ2JÓ'KÓLÑàWˆÜ˜‹oÐØ˜VÑ#Ø"(§*¡*Ð-?Ó"@ÐÜ1Ð2IÑTÈVÑTÑØ	  FÑ	*Ü% f§j¡jÐ1HÓ&IÑTÈVÑTÑàUˆÜ˜‹oÐØ˜VÑ#Ø!Ÿ:™:Ð&8Ó9Ñà3ˆÜ˜‹oÐÜð Ø+Ø)Ø)ñð ñ	ð r+   c                ó@  — 	 ddl m} d| v r| j                  d«      }t	        |fi |¤Ž}n-d| v rt        | j                  d«      fi |¤Ž}nd}t        |«      ‚d|v r|j                  d«      } |d	||dœ| ¤ŽS  |d	d|i| ¤ŽS # t        $ r}d}t        |«      |‚d }~ww xY w)
Nr   r   z‚To use this LLMRequestsChain functionality you must install the langchain package. You can install it with `pip install langchain`r<   r=   r>   rž   )r<   rž   r4   )Úlangchain.chains.llm_requestsr   r$   r5   rA   rB   r6   )r7   r'   r   r—   r(   rC   r<   rž   s           r)   Ú_load_llm_requests_chainr¤   f  sÝ   € ð&ÝBð �fÑØ!Ÿ:™: kÓ2ÐÜ*Ð+;ÑF¸vÑF‰	Ø	˜VÑ	#Ü˜vŸz™zÐ*:Ó;ÑF¸vÑF‰	àGˆÜ˜‹oÐØ˜VÑ#Ø!Ÿ:™:Ð&8Ó9ÐÙð 
ØØ-ñ
ð ñ
ð 	
ñ
 Ñ: iÐ:°6Ñ:Ð:øô/ ò &ð>ð 	ô
 ˜#Ó AÐ%ûð&ús   ‚B Â	BÂ
BÂBÚ	api_chainÚ
hyde_chainr<   Úllm_bash_chainÚllm_checker_chainÚllm_math_chainÚllm_requests_chainÚ	pal_chainÚqa_with_sources_chainÚstuff_documents_chainÚmap_reduce_documents_chainrL   Úmap_rerank_documents_chainÚrefine_documents_chainÚsql_database_chainÚvector_db_qa_with_sources_chainÚvector_db_qa)Úretrieval_qaÚretrieval_qa_with_sources_chainÚgraph_cypher_chainz0.2.13z†This function is deprecated and will be removed in langchain 1.0. At that point chains must be imported from their respective modules.z1.0)ÚsinceÚmessageÚremovalc                óœ   — d| vrd}t        |«      ‚| j                  d«      }|t        vrd|› d�}t        |«      ‚t        |   } || fi |¤ŽS )zLoad chain from Config Dict.Ú_typez#Must specify a chain Type in configzLoading z chain not supported)r6   r5   Útype_to_loader_dict)r7   r'   r(   Úconfig_typeÚchain_loaders        r)   rA   rA   ›  se   € ð �fÑØ3ˆÜ˜‹oÐØ—*‘*˜WÓ%€KàÔ-Ñ-Ø˜˜Ð%9Ð:ˆÜ˜‹oÐä& {Ñ3€LÙ˜Ñ) &Ñ)Ð)r+   c                óv   — t        | t        «      r| j                  d«      rd}t        |«      ‚t	        | fi |¤ŽS )zAUnified method for loading a chain from LangChainHub or local fs.zlc://z‘Loading from the deprecated github-based Hub is no longer supported. Please use the new LangChain Hub at https://smith.langchain.com/hub instead.)rI   ÚstrÚ
startswithÚRuntimeErrorÚ_load_chain_from_file)Úpathr'   r(   s      r)   rB   rB   ²  s@   € ô �$œÔ §¡°Ô!9ðð 	ô
 ˜3ÓÐÜ  Ñ0¨Ñ0Ð0r+   c                ó  — t        | t        «      rt        | «      n| }|j                  dk(  r/|j	                  «       5 }t        j                  |«      }ddd«       nW|j                  j                  d«      r/|j	                  «       5 }t        j                  |«      }ddd«       nd}t        |«      ‚d|v r|j                  d«      d<   d|v r|j                  d«      d<   t        fi |¤ŽS # 1 sw Y   ŒExY w# 1 sw Y   ŒQxY w)zLoad chain from file.z.jsonN)z.yamlz.ymlzFile type must be json or yamlÚverboseÚmemory)rI   rÀ   r   ÚsuffixÚopenÚjsonÚloadÚendswithÚyamlÚ	safe_loadr6   r5   rA   )Úfiler'   Ú	file_pathÚfr7   r(   s         r)   rÃ   rÃ   Æ  së   € ô )¨¬sÔ3”�T”
¸€Ià×Ñ˜7Ò"Ø�^‰^Ô Ü—Y‘Y˜q“\ˆF÷ Ðà	×	Ñ	×	"Ñ	"Ð#4Ô	5Ø�^‰^Ô Ü—^‘^ AÓ&ˆF÷ Ðð /ˆÜ˜‹oÐð �FÑØ"ŸJ™J yÓ1ˆˆyÑØ�6ÑØ!Ÿ:™: hÓ/ˆˆxÑô " &Ñ3¨FÑ3Ð3÷! Ðú÷ Ðús   ½C/ÂC;Ã/C8Ã;D)r&   r   r'   r   ÚreturnÚNone)r7   Údictr'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )r7   rÔ   r'   r   rÒ   r   )rÄ   úUnion[str, Path]r'   r   rÒ   r   )rÏ   rÕ   r'   r   rÒ   r   )QÚ__doc__Ú
__future__r   rÊ   Úpathlibr   Útypingr   r   r   rÍ   Úlangchain_core._apir   Úlangchain_core.prompts.loadingr	   r
   r   Úlangchain.chainsr   Úlangchain.chains.api.baser   Úlangchain.chains.baser   Ú-langchain.chains.combine_documents.map_reducer   Ú-langchain.chains.combine_documents.map_rerankr   Ú)langchain.chains.combine_documents.refiner   Ú(langchain.chains.combine_documents.stuffr   Úlangchain.chains.hyde.baser   Úlangchain.chains.llmr   Ú!langchain.chains.llm_checker.baser   Úlangchain.chains.llm_math.baser   Ú%langchain.chains.qa_with_sources.baser   Ú*langchain.chains.qa_with_sources.retrievalr   Ú*langchain.chains.qa_with_sources.vector_dbr   Ú"langchain.chains.retrieval_qa.baser   r   r”   r   r£   r   Ú langchain_community.llms.loadingr    r!   r$   ÚURL_BASEr:   rD   rJ   rO   rN   r`   rn   rp   rr   rt   r|   r   r�   r†   r‹   r�   r�   r˜   r¡   r¤   r¼   rA   rB   rÃ   r4   r+   r)   Ú<module>rí      s¤  ðÙ 'å "ã Ý ß ,Ñ ,ã Ý *÷ñ õ 2Ý .Ý 'Ý QÝ QÝ JÝ HÝ CÝ )Ý =Ý 7Ý DÝ RÝ Qß FáÝMå>ðßOð( V€ó6ó0ó,ð<"Øð"àð"ð ó"óJBóJ#ó,ó^:ð8BØðBàðBð óBó#óó<Yó*
#ðØðàðð  óóBð<Øðàðð !óóBó<$óNó<;ð:Ø�ðàÐ"ðð �ðð Ð*ð	ð
 Ð0ðð Ð*ðð Ð2ðð �ðð Ð8ðð Ð8ðð !Ð"Bðð Ð:ðð !Ð"Bðð Ð:ðð Ð2ðð  &Ð'Lð!ð" Ð&ð#ð$ 'Ø'LØ2ò)Ð ñ0 Ø
ð	Oð ôò*óð*ñ Ø
ð	Oð ôò	1óð	1ô4øð} ò óõðús   ÂE2 Å2FÆF