Ë
    ´Œjs  ã                   ó:  — d 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mZmZ  G d„ de«      Zej<                  dddœde
dededee    dedefd„Z!ej<                  ej<                  ddddddddddœde
dedededed ee   d!ee
   d"ee
   dee    d#e"d$ed%ee"   dedefd&„Z#ej<                  ejH                  dd'ddd(œde
d)ed*eded+ed,ee
   dee    dedefd-„Z%	 	 d0de
d.edee    dedef
d/„Z&y)1zLoad summarizing chains.é    )ÚMapping)ÚAnyÚOptionalÚProtocol)Ú	Callbacks)ÚBaseLanguageModel)ÚBasePromptTemplate)ÚBaseCombineDocumentsChain)ÚMapReduceDocumentsChain)ÚReduceDocumentsChain)ÚRefineDocumentsChain)ÚStuffDocumentsChain)ÚLLMChain)Úmap_reduce_promptÚrefine_promptsÚstuff_promptc                   ó$   — e Zd ZdZdededefd„Zy)ÚLoadingCallablez2Interface for loading the combine documents chain.ÚllmÚkwargsÚreturnc                  ó   — y)z-Callable to load the combine documents chain.N© )Úselfr   r   s      új/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/chains/summarize/chain.pyÚ__call__zLoadingCallable.__call__   s   � ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   r   r   r   r   r   r      s&   „ Ù<ð<àð<ð ð<ð 
#ô	<r   r   ÚtextN)ÚpromptÚdocument_variable_nameÚverboser   r#   r$   r%   r   r   c                ó<   — t        | ||¬«      }t        d|||dœ|¤ŽS )N©r   r#   r%   )Ú	llm_chainr$   r%   r   )r   r   )r   r#   r$   r%   r   r(   s         r   Ú_load_stuff_chainr)      s7   € ô ˜S¨¸ÔA€Iäð ØØ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+   r,   r-   r.   r/   r0   r1   r2   r3   c          	      ó  — t        | |||
¬«      }|xs | }t        ||||
¬«      }t        ||||
¬«      }|€d }|�-d}t        |«      ‚|xs | }t        t        ||||
¬«      |¬«      }t        |||	||
|¬«      }t	        d|||||
dœ|¤ŽS )N)r   r#   r%   r2   )r(   r$   r%   r2   zfcollapse_llm provided, but collapse_prompt was not: please provide one or stop providing collapse_llm.)r(   r$   )Úcombine_documents_chainÚcollapse_documents_chainr1   r%   r2   r3   )r(   Úreduce_documents_chainr$   r%   r2   r   )r   r   Ú
ValueErrorr   r   )r   r*   r+   r,   r-   r.   r/   r0   r%   r1   r2   r3   r   Ú	map_chainÚ_reduce_llmÚreduce_chainr5   Úcollapse_chainÚmsgÚ_collapse_llmr7   s                        r   Ú_load_map_reduce_chainr?   0   sø   € ô  ØØØØô	€Ið Ò# €KÜØØØØô	€Lô 2ØØ=ØØô	Ðð ÐØˆØÐ#ð>ð ô ˜S“/Ð!à$Ò+¨ˆÜ,ÜØ!Ø&ØØ#ô	ð $Bô
ˆô 2Ø 7Ø!/ØØØØ1ôÐô #ð ØØ5Ø@ØØñð ñð r   Úexisting_answer)Úquestion_promptÚrefine_promptr$   Úinitial_response_nameÚ
refine_llmr%   rA   rB   rC   rD   c          	      óh   — t        | ||¬«      }|xs | }	t        |	||¬«      }
t        d||
|||dœ|¤ŽS )Nr'   )Úinitial_llm_chainÚrefine_llm_chainr$   rC   r%   r   )r   r   )r   rA   rB   r$   rC   rD   r%   r   Úinitial_chainÚ_refine_llmÚrefine_chains              r   Ú_load_refine_chainrK   y   sU   € ô  ¨_ÀgÔN€MØÒ# €KÜ °MÈ7ÔS€LÜð Ø'Ø%Ø5Ø3Øñð ñð r   Ú
chain_typec                 óŒ   — t         t        t        dœ}||vr!d|› d|j                  «       › �}t	        |«      ‚ ||   | fd|i|¤ŽS )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)   r?   rK   Úkeysr8   )r   rL   r%   r   Úloader_mappingr=   s         r   Úload_summarize_chainrS   ‘   sk   € ô& #Ü,Ü$ñ5€Nð
 ˜Ñ'à*¨:¨,ð 7 Ø .× 3Ñ 3Ó 5Ð6ð8ð 	ô ˜‹oÐØ%ˆ>˜*Ñ% cÑE°7ÐE¸fÑEÐEr   )rN   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)   Úintr?   ÚREFINE_PROMPTrK   rS   r   r   r   Ú<module>re      sF  ðÙ å #ß *Ñ *å .Ý <Ý 5å MÝ QÝ JÝ JÝ HÝ )ß VÑ Vô<�hô <ð ".×!4Ñ!4Ø"(Ø"òØ	ðð ðð  ð	ð
 �d‰^ðð ðð óð* &7×%=Ñ%=Ø):×)AÑ)AØ*0Ø-3Ø48Ø.2Ø04Ø"ØØØ*.ò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   