
    Ahs                     J   S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJrJrJr   " S S\5      r\R<                  SSS.S\
S\S\S\\    S\S\4S jjr!\R<                  \R<                  SSSSSSSSSS.S\
S\S\S\S\S \\   S!\\
   S"\\
   S\\    S#\"S$\S%\\"   S\S\4S& jjr#\R<                  \RH                  SS'SSS(.S\
S)\S*\S\S+\S,\\
   S\\    S\S\4S- jjr%  S0S\
S.\S\\    S\S\4
S/ jjr&g)1zLoad summarizing chains.    )Mapping)AnyOptionalProtocol)	Callbacks)BaseLanguageModel)BasePromptTemplate)BaseCombineDocumentsChain)MapReduceDocumentsChain)ReduceDocumentsChain)RefineDocumentsChain)StuffDocumentsChain)LLMChain)map_reduce_promptrefine_promptsstuff_promptc                   .    \ rS rSrSrS\S\S\4S jrSr	g)	LoadingCallable   z2Interface for loading the combine documents chain.llmkwargsreturnc                     g)z-Callable to load the combine documents chain.N )selfr   r   s      X/var/www/html/shao/venv/lib/python3.13/site-packages/langchain/chains/summarize/chain.py__call__LoadingCallable.__call__   s        r   N)
__name__
__module____qualname____firstlineno____doc__r   r   r
   r   __static_attributes__r   r   r   r   r      s&    <<< < 
#	<r   r   textN)promptdocument_variable_nameverboser   r'   r(   r)   r   r   c                4    [        XUS9n[        SUUUS.UD6$ )Nr   r'   r)   )	llm_chainr(   r)   r   )r   r   )r   r'   r(   r)   r   r,   s         r   _load_stuff_chainr-      s5     SAI 5 	 r   i  )
map_promptcombine_promptcombine_document_variable_name!map_reduce_document_variable_namecollapse_prompt
reduce_llmcollapse_llmr)   	token_max	callbackscollapse_max_retriesr.   r/   r0   r1   r2   r3   r4   r5   r6   r7   c          	         [        U UUU
S9nU=(       d    U n[        UUUU
S9n[        UUUU
S9nUc  S nUb  Sn[        U5      eOU=(       d    U n[        [        UUUU
S9US9n[        UUU	UU
US9n[	        SUUUUU
S.UD6$ )N)r   r'   r)   r6   )r,   r(   r)   r6   zfcollapse_llm provided, but collapse_prompt was not: please provide one or stop providing collapse_llm.)r,   r(   )combine_documents_chaincollapse_documents_chainr5   r)   r6   r7   )r,   reduce_documents_chainr(   r)   r6   r   )r   r   
ValueErrorr   r   )r   r.   r/   r0   r1   r2   r3   r4   r)   r5   r6   r7   r   	map_chain_reduce_llmreduce_chainr9   collapse_chainmsg_collapse_llmr;   s                        r   _load_map_reduce_chainrC   0   s      	I #K	L 2=	 #>  S/! $ %+,!&#	 $B
 2 7!/1 # 5@  r   existing_answer)question_promptrefine_promptr(   initial_response_name
refine_llmr)   rE   rF   rG   rH   c          	      b    [        XUS9nU=(       d    U n	[        XUS9n
[        SUU
UUUS.UD6$ )Nr+   )initial_llm_chainrefine_llm_chainr(   rG   r)   r   )r   r   )r   rE   rF   r(   rG   rH   r)   r   initial_chain_refine_llmrefine_chains              r   _load_refine_chainrO   y   sQ     gNM#K7SL '%53  r   
chain_typec                     [         [        [        S.nX;  a!  SU SUR                  5        3n[	        U5      eXA   " U 4SU0UD6$ )a~  Load summarizing chain.

Args:
    llm: Language Model to use in the chain.
    chain_type: Type of document combining chain to use. Should be one of "stuff",
        "map_reduce", and "refine".
    verbose: Whether chains should be run in verbose mode or not. Note that this
        applies to all chains that make up the final chain.

Returns:
    A chain to use for summarizing.
)stuff
map_reducerefinezGot unsupported chain type: z. Should be one of r)   )r-   rC   rO   keysr<   )r   rP   r)   r   loader_mappingrA   s         r   load_summarize_chainrW      se    & #,$5N
 '*:, 7  . 3 3 568 	 o%cE7EfEEr   )rR   N)'r$   collections.abcr   typingr   r   r   langchain_core.callbacksr   langchain_core.language_modelsr   langchain_core.promptsr	   'langchain.chains.combine_documents.baser
   -langchain.chains.combine_documents.map_reducer   )langchain.chains.combine_documents.reducer   )langchain.chains.combine_documents.refiner   (langchain.chains.combine_documents.stuffr   langchain.chains.llmr   langchain.chains.summarizer   r   r   r   PROMPTstrboolr-   intrC   REFINE_PROMPTrO   rW   r   r   r   <module>ri      sF    # * * . < 5 M Q J J H ) V V<h < ".!4!4"("	   	
 d^  * &7%=%=):)A)A*0-348.204"*.F	F #F '	F
 %(F (+F 01F *+F ,-F d^F F F #3-F F FX +9*?*?(6(D(D"(!2.2"	 ( &	
    *+ d^  4 "F	FF d^F 	F
 Fr   