Ë
    ´Œj5  ã                  óº  — d Z ddlm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mZ dd
lm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% erddl&m'Z' ddhZ( e
ded¬«       G d„ de«      «       Z) e
ded¬«       G d„ d«      «       Z* e
ded¬«       G d„ de)«      «       Z+ e
ded¬«       G d„ de«      «       Z,y )!zPChain that implements the ReAct paper from https://arxiv.org/pdf/2210.03629.pdf.é    )Úannotations)ÚSequence)ÚTYPE_CHECKINGÚAnyÚOptional)Ú
deprecated)ÚDocument)ÚBaseLanguageModel)ÚBasePromptTemplate)ÚBaseToolÚTool)ÚField)ÚAGENT_DEPRECATION_WARNING)ÚAgentÚAgentExecutorÚAgentOutputParser)Ú	AgentType©ÚReActOutputParser©ÚTEXTWORLD_PROMPT©ÚWIKI_PROMPT)Úvalidate_tools_single_input)ÚDocstoreÚLookupÚSearchz0.1.0z1.0)ÚmessageÚremovalc                  ó¸   ‡ — e Zd ZU dZ ee¬«      Zded<   edd„«       Z	e
dd„«       Zedd„«       Zedˆ fd„«       Ze
dd	„«       Ze
dd
„«       Ze
dd„«       Zˆ xZS )ÚReActDocstoreAgentzAgent for the ReAct chain.)Údefault_factoryr   Úoutput_parserc                ó   — t        «       S )Nr   )ÚclsÚkwargss     úe/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/agents/react/base.pyÚ_get_default_output_parserz-ReActDocstoreAgent._get_default_output_parser(   s   € ä Ó"Ð"ó    c                ó"   — t         j                  S )z#Return Identifier of an agent type.)r   ÚREACT_DOCSTORE©Úselfs    r'   Ú_agent_typezReActDocstoreAgent._agent_type,   s   € ô ×'Ñ'Ð'r)   c                ó   — t         S ©zReturn default prompt.r   ©r%   Útoolss     r'   Úcreate_promptz ReActDocstoreAgent.create_prompt1   s
   € ô Ðr)   c                ó  •— t        | j                  |«       t        ‰| �  |«       t	        |«      t	        t
        «      k7  rd|› �}t        |«      ‚|D �ch c]  }|j                  ’Œ }}|t
        k7  rd|› �}t        |«      ‚y c c}w )Nz-Exactly two tools must be specified, but got z,Tool names should be Lookup and Search, got )r   Ú__name__ÚsuperÚ_validate_toolsÚlenÚ_LOOKUP_AND_SEARCH_TOOLSÚ
ValueErrorÚname©r%   r2   ÚmsgÚtoolÚ
tool_namesÚ	__class__s        €r'   r7   z"ReActDocstoreAgent._validate_tools6   s‡   ø€ ä# C§L¡L°%Ô8Ü‰Ñ Ô&Üˆu‹:œÔ5Ó6Ò6ØAÀ%ÀÐIˆCÜ˜S“/Ð!Ù,1Ó2©E D�d—i“i¨Eˆ
Ð2ØÔ1Ò1Ø@ÀÀÐMˆCÜ˜S“/Ð!ð 2ùò 3s   ÁBc                 ó   — y)z&Prefix to append the observation with.zObservation: © r,   s    r'   Úobservation_prefixz%ReActDocstoreAgent.observation_prefixB   s   € ð r)   c                ó   — dgS )Nz
Observation:rB   r,   s    r'   Ú_stopzReActDocstoreAgent._stopG   s   € à Ð!Ð!r)   c                 ó   — y)z#Prefix to append the LLM call with.zThought:rB   r,   s    r'   Ú
llm_prefixzReActDocstoreAgent.llm_prefixK   s   € ð r)   )r&   r   Úreturnr   ©rH   Ústr©r2   úSequence[BaseTool]rH   r   ©r2   rL   rH   ÚNone©rH   z	list[str])r5   Ú
__module__Ú__qualname__Ú__doc__r   r   r#   Ú__annotations__Úclassmethodr(   Úpropertyr.   r3   r7   rC   rE   rG   Ú__classcell__©r@   s   @r'   r!   r!      s£   ø… ñ %á',Ð=NÔ'O€MÐ$ÓOàò#ó ð#ð ò(ó ð(ð òó ðð ô	"ó ð	"ð òó ðð ò"ó ð"ð òó ôr)   r!   c                  óL   — e Zd ZdZdd„Zd	d„Zd	d„Zed
d„«       Zedd„«       Z	y)ÚDocstoreExplorerz5Class to assist with exploration of a document store.c                ó<   — || _         d| _        d| _        d| _        y)z=Initialize with a docstore, and set initial document to None.NÚ r   )ÚdocstoreÚdocumentÚ
lookup_strÚlookup_index)r-   r\   s     r'   Ú__init__zDocstoreExplorer.__init__Y   s   € à ˆŒØ,0ˆŒØˆŒØˆÕr)   c                ó�   — | j                   j                  |«      }t        |t        «      r|| _        | j
                  S d| _        |S )z5Search for a term in the docstore, and if found save.N)r\   ÚsearchÚ
isinstancer	   r]   Ú_summary)r-   ÚtermÚresults      r'   rb   zDocstoreExplorer.search`   s=   € à—‘×%Ñ% dÓ+ˆÜ�fœhÔ'Ø"ˆDŒMØ—=‘=Ð ØˆŒØˆr)   c                óþ  — | j                   €d}t        |«      ‚|j                  «       | j                  k7  r|j                  «       | _        d| _        n| xj                  dz  c_        | j
                  D �cg c]!  }| j                  |j                  «       v sŒ |‘Œ# }}t        |«      dk(  ry| j                  t        |«      k\  ryd| j                  dz   › dt        |«      › d�}|› d	|| j                     › �S c c}w )
z%Lookup a term in document (if saved).z/Cannot lookup without a successful search firstr   é   z
No ResultszNo More Resultsz(Result Ú/Ú)Ú )r]   r:   Úlowerr^   r_   Ú_paragraphsr8   )r-   re   r=   ÚpÚlookupsÚresult_prefixs         r'   ÚlookupzDocstoreExplorer.lookupi   së   € à�=‰=Ð ØCˆCÜ˜S“/Ð!Ø�:‰:‹<˜4Ÿ?™?Ò*Ø"Ÿj™j›lˆDŒOØ !ˆDÕà×Ò Ñ"ÕØ"×.Ò.ÓOÑ.˜°$·/±/ÀQÇWÁWÃYÒ2N’1Ð.ˆÐOÜˆw‹<˜1ÒØØ×Ñ¤ G£Ò,Ø$Ø" 4×#4Ñ#4°qÑ#8Ð"9¸¼3¸w»<¸.ÈÐJˆØ�  '¨$×*;Ñ*;Ñ"<Ð!=Ð>Ð>ùò Ps   Á7!C:ÂC:c                ó    — | j                   d   S )Nr   )rm   r,   s    r'   rd   zDocstoreExplorer._summary{   s   € à×Ñ Ñ"Ð"r)   c                ó~   — | j                   €d}t        |«      ‚| j                   j                  j                  d«      S )Nz(Cannot get paragraphs without a documentz

)r]   r:   Úpage_contentÚsplit)r-   r=   s     r'   rm   zDocstoreExplorer._paragraphs   s6   € à�=‰=Ð Ø<ˆCÜ˜S“/Ð!Ø�}‰}×)Ñ)×/Ñ/°Ó7Ð7r)   N)r\   r   )re   rJ   rH   rJ   rI   rO   )
r5   rP   rQ   rR   r`   rb   rq   rU   rd   rm   rB   r)   r'   rY   rY   Q   s?   „ ñ @óóó?ð$ ò#ó ð#ð ò8ó ñ8r)   rY   c                  ó@   ‡ — e Zd ZdZedd„«       Zedˆ fd„«       Zˆ xZS )ÚReActTextWorldAgentz$Agent for the ReAct TextWorld chain.c                ó   — t         S r0   r   r1   s     r'   r3   z!ReActTextWorldAgent.create_prompt�   s
   € ô  Ðr)   c                óô   •— t        | j                  |«       t        ‰| �  |«       t	        |«      dk7  rd|› �}t        |«      ‚|D �ch c]  }|j                  ’Œ }}|dhk7  rd|› �}t        |«      ‚y c c}w )Nrh   z,Exactly one tool must be specified, but got ÚPlayzTool name should be Play, got )r   r5   r6   r7   r8   r:   r;   r<   s        €r'   r7   z#ReActTextWorldAgent._validate_tools”   s�   ø€ ä# C§L¡L°%Ô8Ü‰Ñ Ô&Üˆu‹:˜Š?Ø@ÀÀÐHˆCÜ˜S“/Ð!Ù,1Ó2©E D�d—i“i¨Eˆ
Ð2Ø˜&˜Ò!Ø2°:°,Ð?ˆCÜ˜S“/Ð!ð "ùò 3s   Á	A5rK   rM   )r5   rP   rQ   rR   rT   r3   r7   rV   rW   s   @r'   rw   rw   ‡   s.   ø„ ñ /àò ó ð ð ô	"ó ô	"r)   rw   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú
ReActChainz3[Deprecated] Chain that implements the ReAct paper.c                óÌ   •— t        |«      }t        d|j                  d¬«      t        d|j                  d¬«      g}t        j                  ||«      }t        ‰| �  d||dœ|¤Ž y)	z'Initialize with the LLM and a docstore.r   z"Search for a term in the docstore.)r;   ÚfuncÚdescriptionr   zLookup a term in the docstore.)Úagentr2   NrB   )rY   r   rb   rq   r!   Úfrom_llm_and_toolsr6   r`   )r-   Úllmr\   r&   Údocstore_explorerr2   r€   r@   s          €r'   r`   zReActChain.__init__©   sp   ø€ ä,¨XÓ6ÐäØØ&×-Ñ-Ø@ôô
 ØØ&×-Ñ-Ø<ôð
ˆô #×5Ñ5°c¸5ÓAˆÜ‰ÑÐ<˜u¨EÑ<°VÓ<r)   )r‚   r
   r\   r   r&   r   )r5   rP   rQ   rR   r`   rV   rW   s   @r'   r|   r|   ¡   s   ø„ ñ >÷=ñ =r)   r|   N)-rR   Ú
__future__r   Úcollections.abcr   Útypingr   r   r   Úlangchain_core._apir   Úlangchain_core.documentsr	   Úlangchain_core.language_modelsr
   Úlangchain_core.promptsr   Úlangchain_core.toolsr   r   Úpydanticr   Úlangchain._api.deprecationr   Úlangchain.agents.agentr   r   r   Úlangchain.agents.agent_typesr   Ú$langchain.agents.react.output_parserr   Ú'langchain.agents.react.textworld_promptr   Ú"langchain.agents.react.wiki_promptr   Úlangchain.agents.utilsr   Ú!langchain_community.docstore.baser   r9   r!   rY   rw   r|   rB   r)   r'   Ú<module>r•      sö   ðÙ Vå "å $ß /Ñ /å *Ý -Ý <Ý 5ß /Ý å @ß JÑ JÝ 2Ý BÝ DÝ :Ý >áÝ:ð % hÐ/Ð ñ ØØ%Øôô
+˜ó +óð
+ñ\ ØØ%Øô÷
.8ð .8óð
.8ñb ØØ%Øôô
"Ð,ó "óð
"ñ* ØØ%Øôô
=�ó =óñ
=r)   