§
    ™Štj©   ã                   ó  — d Z ddlmZ ddl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dz  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dz  d!e	dz  d"e	dz  dedz  d#e!d$ed%e!dz  dedefd&„Z"ej        ej#        dd'ddd(œde	d)ed*eded+ed,e	dz  dedz  dedefd-„Z$	 	 d1de	d/ededz  dedef
d0„Z%dS )2zLoad summarizing chains.é    )ÚMapping)ÚAnyÚ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dS )ÚLoadingCallablez2Interface for loading the combine documents chain.ÚllmÚkwargsÚreturnc                 ó   — dS )z-Callable to load the combine documents chain.N© )Úselfr   r   s      úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_classic/chains/summarize/chain.pyÚ__call__zLoadingCallable.__call__   s   € € € ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r	   r   r   r   r   r   r      sJ   € € € € € Ø<Ð<ð<àð<ð ð<ð 
#ð	<ð <ð <ð <ð <ð <r   r   ÚtextN)ÚpromptÚdocument_variable_nameÚverboser   r"   r#   r$   r   r   c                óH   — 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(   $   sN   € õ ˜S¨¸ÐAÑAÔ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.   r/   r0   r1   r2   c          	      óH  — t          | |||
¬¦  «        }|p| }t          ||||
¬¦  «        }	 t          ||||
¬¦  «        }|€d }|�d}t          |¦  «        ‚n&|p| }t          t          ||||
¬¦  «        |¬¦  «        }t          |||	||
|¬¦  «        }t	          d|||||
dœ|¤ŽS )N)r   r"   r$   r1   )r'   r#   r$   r1   zfcollapse_llm provided, but collapse_prompt was not: please provide one or stop providing collapse_llm.)r'   r#   )Úcombine_documents_chainÚcollapse_documents_chainr0   r$   r1   r2   )r'   Úreduce_documents_chainr#   r$   r1   r   )r   r   Ú
ValueErrorr   r
   )r   r)   r*   r+   r,   r-   r.   r/   r$   r0   r1   r2   r   Ú	map_chainÚ_reduce_llmÚreduce_chainr4   Úcollapse_chainÚmsgÚ_collapse_llmr6   s                        r   Ú_load_map_reduce_chainr>   D   sM  € õ  ØØØØð	ñ ô €Ið Ð# €KÝØØØØð	ñ ô €Lðõ@ 2ØØ=ØØð	ñ ô Ðð ÐØˆØÐ#ð>ð õ ˜S‘/”/Ð!ð $ð %Ð+¨ˆÝ,ÝØ!Ø&ØØ#ð	ñ ô ð $Bð
ñ 
ô 
ˆõ 2Ø 7Ø!/ØØØØ1ðñ ô Ðõ #ð ØØ5Ø@ØØðð ð ðð ð r   Úexisting_answer)Úquestion_promptÚrefine_promptr#   Úinitial_response_nameÚ
refine_llmr$   r@   rA   rB   rC   c          	      óv   — t          | ||¬¦  «        }|p| }	t          |	||¬¦  «        }
t          d||
|||dœ|¤ŽS )Nr&   )Úinitial_llm_chainÚrefine_llm_chainr#   rB   r$   r   )r   r   )r   r@   rA   r#   rB   rC   r$   r   Úinitial_chainÚ_refine_llmÚrefine_chains              r   Ú_load_refine_chainrJ   ¬   sk   € õ  ¨_ÀgÐNÑNÔN€MØÐ# €KÝ °MÈ7ÐSÑSÔS€LÝð Ø'Ø%Ø5Ø3Øðð ð ðð ð r   ÚstuffÚ
chain_typec                 ó¨   — t           t          t          dœ}||vr)d|› d|                     ¦   «         › �}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.
        **kwargs: Additional keyword arguments.

    Returns:
        A chain to use for summarizing.
    )rK   Ú
map_reduceÚrefinezGot unsupported chain type: z. Should be one of r$   )r(   r>   rJ   Úkeysr7   )r   rL   r$   r   Úloader_mappingr<   s         r   Úload_summarize_chainrR   Ä   s…   € õ( #Ý,Ý$ð5ð 5€Nð
 ˜Ð'Ð'ð8¨:ð 8ð 8Ø .× 3Ò 3Ñ 5Ô 5ð8ð 8ð 	õ ˜‰oŒoÐØ%ˆ>˜*Ô% cÐEÐE°7ÐE¸fÐEÐEÐEr   )rK   N)&r    Úcollections.abcr   Útypingr   r   Úlangchain_core.callbacksr   Úlangchain_core.language_modelsr   Úlangchain_core.promptsr   Ú/langchain_classic.chains.combine_documents.baser	   Ú5langchain_classic.chains.combine_documents.map_reducer
   Ú1langchain_classic.chains.combine_documents.reducer   Ú1langchain_classic.chains.combine_documents.refiner   Ú0langchain_classic.chains.combine_documents.stuffr   Úlangchain_classic.chains.llmr   Ú"langchain_classic.chains.summarizer   r   r   r   ÚPROMPTÚstrÚboolr(   Úintr>   ÚREFINE_PROMPTrJ   rR   r   r   r   ú<module>rd      s¬  ðØ Ð à #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à .Ð .Ð .Ð .Ð .Ð .Ø <Ð <Ð <Ð <Ð <Ð <Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à UÐ UÐ UÐ UÐ UÐ Uðð ð ð ð ð ð SÐ RÐ RÐ RÐ RÐ RØ RÐ RÐ RÐ RÐ RÐ RØ PÐ PÐ PÐ PÐ PÐ PØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð<ð <ð <ð <ð <�hñ <ô <ð <ð ".Ô!4Ø"(Øðð ð Ø	ðð ðð  ð	ð
 �D‰[ðð ðð ðð ð ð ðF &7Ô%=Ø):Ô)AØ*0Ø-3Ø15Ø+/Ø-1ØØØØ'+ðeð eð eØ	ðeð #ðeð 'ð	eð
 %(ðeð (+ðeð (¨$Ñ.ðeð " DÑ(ðeð $ dÑ*ðeð �D‰[ðeð ðeð ðeð  ™*ðeð ðeð ðeð eð eð eðV +9Ô*?Ø(6Ô(DØ"(Ø!2Ø+/Øðð ð Ø	ðð (ðð &ð	ð
  ðð ðð " DÑ(ðð �D‰[ðð ðð ðð ð ð ð4 ØðFð FØ	ðFàðFð �D‰[ðFð ð	Fð
 ðFð Fð Fð Fð Fð Fr   