§
    è˜ºh;  ã                  ó(  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZ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mZmZm Z  d d
l!m"Z" d dl#m$Z$ d dl%m&Z& erd dl'm(Z(m)Z)  ej*        e+¦  «        Z, G d„ d¦  «        Z-dS )é    )ÚannotationsN)	ÚTYPE_CHECKINGÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚOptionalÚTupleÚUnion)ÚAgentActionÚAgentFinishÚ	AgentStep)Údumpd)ÚRunInfo)ÚAddableDict)Úget_color_mapping)ÚAsyncCallbackManagerÚAsyncCallbackManagerForChainRunÚCallbackManagerÚCallbackManagerForChainRunÚ	Callbacks)ÚRUN_KEY)ÚBaseTool)Úasyncio_timeout)ÚAgentExecutorÚNextStepOutputc                  óp  — e Zd ZU dZ	 d:ddddddœd;d„Zded<   d
ed	<   ded<   ded<   ded<   ded<   ded<   ed<d„¦   «         Zej        d=d„¦   «         Zed>d„¦   «         Z	e	j        d?d„¦   «         Z	ed@d„¦   «         Z
ed<d„¦   «         ZdAd „ZdAd!„ZdBd'„ZdCd+„ZdDd-„ZdEd1„ZdFd3„ZdGd4„ZdHd5„ZdId8„ZdJd9„ZdS )KÚAgentExecutorIteratorzIterator for AgentExecutor.NF)ÚtagsÚmetadataÚrun_nameÚinclude_run_infoÚyield_actionsÚagent_executorr   Úinputsr   Ú	callbacksr   r    úOptional[list[str]]r!   úOptional[Dict[str, Any]]r"   úOptional[str]r#   Úboolr$   c               óž   — || _         || _        || _        || _        || _        || _        || _        || _        |                      ¦   «          dS )z|
        Initialize the AgentExecutorIterator with the given AgentExecutor,
        inputs, and optional callbacks.
        N)	Ú_agent_executorr&   r'   r    r!   r"   r#   r$   Úreset)	Úselfr%   r&   r'   r    r!   r"   r#   r$   s	            úg/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain/agents/agent_iterator.pyÚ__init__zAgentExecutorIterator.__init__0   sP   € ð   .ˆÔØˆŒØ"ˆŒØˆŒ	Ø ˆŒØ ˆŒØ 0ˆÔØ*ˆÔØ�
Š
‰Œˆˆˆó    úDict[str, str]Ú_inputsÚreturnc                ó   — | j         S ©N)r4   ©r/   s    r0   r&   zAgentExecutorIterator.inputsR   s
   € àŒ|Ðr2   ÚNonec                óD   — | j                              |¦  «        | _        d S r7   )r%   Úprep_inputsr4   )r/   r&   s     r0   r&   zAgentExecutorIterator.inputsV   s   € àÔ*×6Ò6°vÑ>Ô>ˆŒˆˆr2   c                ó   — | j         S r7   )r-   r8   s    r0   r%   z$AgentExecutorIterator.agent_executorZ   s   € àÔ#Ð#r2   c                ó,   — || _         | j        | _        d S r7   )r-   r&   )r/   r%   s     r0   r%   z$AgentExecutorIterator.agent_executor^   s   € à-ˆÔà”kˆŒˆˆr2   úDict[str, BaseTool]c                ó.   — d„ | j         j        D ¦   «         S )Nc                ó   — i | ]
}|j         |“ŒS © ©Úname©Ú.0Útools     r0   ú
<dictcomp>z:AgentExecutorIterator.name_to_tool_map.<locals>.<dictcomp>f   s   € ÐFÐFÐF D�”	˜4ÐFÐFÐFr2   )r%   Útoolsr8   s    r0   Úname_to_tool_mapz&AgentExecutorIterator.name_to_tool_mapd   s   € àFÐF¨DÔ,?Ô,EÐFÑFÔFÐFr2   c                óP   — t          d„ | j        j        D ¦   «         ddg¬¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S rA   rB   rD   s     r0   ú
<listcomp>z7AgentExecutorIterator.color_mapping.<locals>.<listcomp>k   s   € Ð=Ð=Ð=˜4ˆTŒYÐ=Ð=Ð=r2   ÚgreenÚred)Úexcluded_colors)r   r%   rH   r8   s    r0   Úcolor_mappingz#AgentExecutorIterator.color_mappingh   s8   € å Ø=Ð= 4Ô#6Ô#<Ð=Ñ=Ô=Ø$ eÐ,ð
ñ 
ô 
ð 	
r2   c                ó”   — t                                d¦  «         g | _        d| _        d| _        t          j        ¦   «         | _        dS )z}
        Reset the iterator to its initial state, clearing intermediate steps,
        iterations, and time elapsed.
        z0(Re)setting AgentExecutorIterator to fresh stater   g        N)ÚloggerÚdebugÚintermediate_stepsÚ
iterationsÚtime_elapsedÚtimeÚ
start_timer8   s    r0   r.   zAgentExecutorIterator.reseto   s?   € õ
 	�ŠÐGÑHÔHÐHØACˆÔØˆŒàˆÔÝœ)™+œ+ˆŒˆˆr2   c                ó¾   — | xj         dz  c_         t          j        ¦   «         | j        z
  | _        t                               d| j         › d| j        d›d�¦  «         dS )zQ
        Increment the number of iterations and update the time elapsed.
        é   zAgent Iterations: z (z.2fz
s elapsed)N)rU   rW   rX   rV   rR   rS   r8   s    r0   Úupdate_iterationsz'AgentExecutorIterator.update_iterations{   sg   € ð 	ˆŒ˜1ÑˆŒÝ œI™KœK¨$¬/Ñ9ˆÔÝ�ŠØU ¤ÐUÐU°DÔ4EÐUÐUÐUÐUñ	
ô 	
ð 	
ð 	
ð 	
r2   ÚoutputsúDict[str, Any]Úrun_managerúBUnion[CallbackManagerForChainRun, AsyncCallbackManagerForChainRun]r   c                ó¬   — t          | j                             | j        |d¬¦  «        ¦  «        }| j        rt          |j        ¬¦  «        |t          <   |S )NT)Úreturn_only_outputs)Úrun_id)r   r%   Úprep_outputsr&   r#   r   rb   r   )r/   r\   r^   Úprepared_outputss       r0   Úmake_final_outputsz(AgentExecutorIterator.make_final_outputs…   se   € õ 'ØÔ×,Ò,Ø”˜W¸$ð -ñ ô ñ
ô 
Ðð
 Ô ð 	KÝ(/°{Ô7IÐ(JÑ(JÔ(JÐ�WÑ%ØÐr2   r/   ú'AgentExecutorIterator'úIterator[AddableDict]c           	   #  óœ  K  — t                                d¦  «         |                      ¦   «          t          j        | j        | j        j        | j        j        | j        | j        j        | j	        | j        j	        ¦  «        }| 
                    t          | j        ¦  «        | j        | j        ¬¦  «        }	 | j                             | j        | j        ¦  «        �r/g }| j                             | j        | j        | j        | j        |¦  «        D ]{}|                     |¦  «         | j        r]t/          |t0          ¦  «        rt3          |g|j        ¬¦  «        V — ŒMt/          |t6          ¦  «        rt3          |g|j        ¬¦  «        V — Œ|| j                             |¦  «        }|                      ¦   «          |                      ||¦  «        }d|v}| j        r|r|V — |rd S | j                             | j        | j        ¦  «        �°/n(# t>          $ r}|                      |¦  «         ‚ d }~ww xY w|  !                    |¦  «        V — d S )Nz"Initialising AgentExecutorIteratorrB   ©ÚactionsÚmessages©Ústepsrk   Úintermediate_step)"rR   rS   r.   r   Ú	configurer'   r%   Úverboser    r!   Úon_chain_startr   r&   r"   Ú_should_continuerU   rV   Ú_iter_next_steprI   rP   rT   Úappendr$   Ú
isinstancer   r   rk   r   Ú_consume_next_stepr[   Ú_process_next_step_outputÚBaseExceptionÚon_chain_errorÚ_stop©	r/   Úcallback_managerr^   Únext_step_seqÚchunkÚ	next_stepÚoutputÚis_finalÚes	            r0   Ú__iter__zAgentExecutorIterator.__iter__–   sŒ  è è € Ý�ŠÐ9Ñ:Ô:Ð:Ø�
Š
‰ŒˆÝ*Ô4ØŒNØÔÔ)ØÔÔ'ØŒIØÔÔ$ØŒMØÔÔ(ñ
ô 
Ðð '×5Ò5Ý�$Ô%Ñ&Ô&ØŒKØ”ð 6ñ 
ô 
ˆð
'	ØÔ%×6Ò6Ø” Ô!2ñô ñ #ð
 13�Ø!Ô0×@Ò@ØÔ)ØÔ&Ø”KØÔ+Øñô ð Vð V�Eð "×(Ò(¨Ñ/Ô/Ð/ð Ô)ð VÝ% e­[Ñ9Ô9ð VÝ"-°u°gÈÌÐ"WÑ"WÔ"WÐWÐWÐWÐWÝ'¨­yÑ9Ô9ð VÝ"-°U°GÀeÄnÐ"UÑ"UÔ"UÐUÐUÐUøð !Ô/×BÒBÀ=ÑQÔQ�	à×&Ò&Ñ(Ô(Ð(à×7Ò7¸	À;ÑOÔO�Ø.°fÐ<�ð Ô)ð !¨Xð !Ø �L�L�Làð Ø�FðG Ô%×6Ò6Ø” Ô!2ñô ñ #øøõH ð 	ð 	ð 	Ø×&Ò& qÑ)Ô)Ð)Øøøøøð	øøøð
 �jŠj˜Ñ%Ô%Ð%Ð%Ð%Ð%Ð%s   Â7D-H Ç&&H È
H2ÈH-È-H2úAsyncIterator[AddableDict]c           	    óø  K  — t                                d¦  «         |                      ¦   «          t          j        | j        | j        j        | j        j        | j        | j        j        | j	        | j        j	        ¦  «        }| 
                    t          | j        ¦  «        | j        | j        ¬¦  «        ƒ d{V —†}	 t          | j        j        ¦  «        4 ƒd{V —† | j                             | j        | j        ¦  «        �rPg }| j                             | j        | j        | j        | j        |¦  «        2 3 d{V —†}|                     |¦  «         | j        r_t3          |t4          ¦  «        rt7          |g|j        ¬¦  «        W V — ŒSt3          |t:          ¦  «        rt7          |g|j        ¬¦  «        W V — Œƒ6 | j                             |¦  «        }|                      ¦   «          |                       ||¦  «        ƒ d{V —†}d|v}| j        r|r|W V — |r	 ddd¦  «        ƒd{V —† dS | j                             | j        | j        ¦  «        �°P	 ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   nd# tB          tD          j!        f$ r" |  #                    |¦  «        ƒ d{V —†W V — Y dS tH          $ r!}| %                    |¦  «        ƒ d{V —† ‚ d}~ww xY w|  #                    |¦  «        ƒ d{V —†W V — dS )z—
        N.B. __aiter__ must be a normal method, so need to initialize async run manager
        on first __anext__ call where we can await it
        z*Initialising AgentExecutorIterator (async)rB   Nri   rl   rn   )&rR   rS   r.   r   ro   r'   r%   rp   r    r!   rq   r   r&   r"   r   Úmax_execution_timerr   rU   rV   Ú_aiter_next_steprI   rP   rT   rt   r$   ru   r   r   rk   r   rv   r[   Ú_aprocess_next_step_outputÚTimeoutErrorÚasyncioÚ_astoprx   ry   r{   s	            r0   Ú	__aiter__zAgentExecutorIterator.__aiter__Ó   s“  è è € õ
 	�ŠÐAÑBÔBÐBØ�
Š
‰ŒˆÝ/Ô9ØŒNØÔÔ)ØÔÔ'ØŒIØÔÔ$ØŒMØÔÔ(ñ
ô 
Ðð -×;Ò;Ý�$Ô%Ñ&Ô&ØŒKØ”ð <ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð
1	Ý& tÔ':Ô'MÑNÔNð *ð *ð *ð *ð *ð *ð *ð *ØÔ)×:Ò:Ø”O TÔ%6ñô ñ )ð
 57�MØ'+Ô':×'KÒ'KØÔ-ØÔ*ØœØÔ/Ø#ñ(ô (ð "ð "ð "ð "ð "ð "ð "˜eð &×,Ò,¨UÑ3Ô3Ð3ð  Ô-ð "Ý)¨%µÑ=Ô=ð "Ý&1Ø-2¨G¸e¼nð'"ñ '"ô '"ð !"ð !"ð !"ð !"ð !"õ ",¨Eµ9Ñ!=Ô!=ð "Ý&1Ø+0¨'¸E¼Nð'"ñ '"ô '"ð !"ð !"ð !"ð !"øð!(ð* !%Ô 3× FÒ FÀ}Ñ UÔ U�Ià×*Ò*Ñ,Ô,Ð,à#'×#BÒ#BØ! ;ñ$ô $ð ð ð ð ð ð �Fð  3¸&Ð@�Hð  Ô-ð %°ð %Ø$˜˜˜˜àð ØðU*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *ð *ð *ØÔ)×:Ò:Ø”O TÔ%6ñô ñ )ð )ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *øøõV �gÔ2Ð3ð 	ð 	ð 	ØŸš KÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFˆFÝð 	ð 	ð 	Ø×,Ò,¨QÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Øøøøøð	øøøð
 —K’K Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,s\   Â=I8 ÃAI&Ä7F:Ä=CI&ÈI8 È-&I&ÉI8 É&
I0É0I8 É3I0É4I8 É84KÊ/	KÊ8KËKÚnext_step_outputú1Union[AgentFinish, List[Tuple[AgentAction, str]]]r   c                óæ  — t                                d¦  «         t          |t          ¦  «        r1t                                d¦  «         |                      ||¬¦  «        S | j                             |¦  «         t                                d¦  «         t          |¦  «        dk    r;|d         }| j         	                    |¦  «        }|�|                      ||¬¦  «        S t          |¬¦  «        S )	zj
        Process the output of the next step,
        handling AgentFinish and tool return cases.
        z$Processing output of Agent loop stepzBHit AgentFinish: _return -> on_chain_end -> run final output logic©r^   ú+Updated intermediate_steps with step outputrZ   r   N©rn   )rR   rS   ru   r   Ú_returnrT   ÚextendÚlenr%   Ú_get_tool_returnr   ©r/   r�   r^   Únext_step_actionÚtool_returns        r0   rw   z/AgentExecutorIterator._process_next_step_output  sî   € õ 	�ŠÐ;Ñ<Ô<Ð<ÝÐ&­Ñ4Ô4ð 	KÝ�LŠLØTñô ð ð —<’<Ð 0¸k�<ÑJÔJÐJàÔ×&Ò&Ð'7Ñ8Ô8Ð8Ý�ŠÐBÑCÔCÐCõ ÐÑ Ô  AÒ%Ð%Ø/°Ô2ÐØÔ-×>Ò>Ð?OÑPÔPˆKØÐ&Ø—|’| K¸[�|ÑIÔIÐIåÐ-=Ð>Ñ>Ô>Ð>r2   r   c              ƒ  ó  K  — t                                d¦  «         t          |t          ¦  «        r7t                                d¦  «         |                      ||¬¦  «        ƒ d{V —†S | j                             |¦  «         t                                d¦  «         t          |¦  «        dk    rA|d         }| j         	                    |¦  «        }|�|                      ||¬¦  «        ƒ d{V —†S t          |¬¦  «        S )	zp
        Process the output of the next async step,
        handling AgentFinish and tool return cases.
        z*Processing output of async Agent loop stepzCHit AgentFinish: _areturn -> on_chain_end -> run final output logicr�   Nr‘   rZ   r   r’   )rR   rS   ru   r   Ú_areturnrT   r”   r•   r%   r–   r   r—   s        r0   rˆ   z0AgentExecutorIterator._aprocess_next_step_output:  s  è è € õ 	�ŠÐAÑBÔBÐBÝÐ&­Ñ4Ô4ð 	RÝ�LŠLØUñô ð ð ŸšÐ'7À[˜ÑQÔQÐQÐQÐQÐQÐQÐQÐQàÔ×&Ò&Ð'7Ñ8Ô8Ð8Ý�ŠÐBÑCÔCÐCõ ÐÑ Ô  AÒ%Ð%Ø/°Ô2ÐØÔ-×>Ò>Ð?OÑPÔPˆKØÐ&Ø!Ÿ]š]¨;ÀK˜]ÑPÔPÐPÐPÐPÐPÐPÐPÐPåÐ-=Ð>Ñ>Ô>Ð>r2   c                ó¾   — t                                d¦  «          | j        j        j        | j        j        | j        fi | j        ¤Ž}|                      ||¬¦  «        S )zb
        Stop the iterator and raise a StopIteration exception with the stopped response.
        ú;Stopping agent prematurely due to triggering stop conditionr�   )	rR   Úwarningr%   ÚagentÚreturn_stopped_responseÚearly_stopping_methodrT   r&   r“   ©r/   r^   r€   s      r0   rz   zAgentExecutorIterator._stopV  si   € õ 	�ŠÐTÑUÔUÐUàB�Ô$Ô*ÔBØÔÔ5ØÔ#ð
ð 
ð Œkð
ð 
ˆð
 �|Š|˜F°ˆ|Ñ<Ô<Ð<r2   c              ƒ  óÎ   K  — t                                d¦  «          | j        j        j        | j        j        | j        fi | j        ¤Ž}|                      ||¬¦  «        ƒ d{V —†S )zu
        Stop the async iterator and raise a StopAsyncIteration exception with
        the stopped response.
        r�   r�   N)	rR   rž   r%   rŸ   r    r¡   rT   r&   r›   r¢   s      r0   r‹   zAgentExecutorIterator._astopc  s   è è € õ
 	�ŠÐTÑUÔUÐUØB�Ô$Ô*ÔBØÔÔ5ØÔ#ð
ð 
ð Œkð
ð 
ˆð
 —]’] 6°{�]ÑCÔCÐCÐCÐCÐCÐCÐCÐCr2   r€   r   c                ó°   — | j                              || j        |¬¦  «        }|j        |d<   |                     |¦  «         |                      ||¦  «        S )z:
        Return the final output of the iterator.
        r�   rk   )r%   r“   rT   rk   Úon_chain_endre   ©r/   r€   r^   Úreturned_outputs       r0   r“   zAgentExecutorIterator._returnp  sc   € ð Ô-×5Ò5Ø�DÔ+¸ð 6ñ 
ô 
ˆð '-¤oˆ˜
Ñ#Ø× Ò  Ñ1Ô1Ð1Ø×&Ò& ¸ÑDÔDÐDr2   c              ƒ  óÌ   K  — | j                              || j        |¬¦  «        ƒ d{V —†}|j        |d<   |                     |¦  «        ƒ d{V —† |                      ||¦  «        S )z@
        Return the final output of the async iterator.
        r�   Nrk   )r%   r›   rT   rk   r¥   re   r¦   s       r0   r›   zAgentExecutorIterator._areturn}  s—   è è € ð !%Ô 3× <Ò <Ø�DÔ+¸ð !=ñ !
ô !
ð 
ð 
ð 
ð 
ð 
ð 
ˆð '-¤oˆ˜
Ñ#Ø×&Ò& Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø×&Ò& ¸ÑDÔDÐDr2   r7   )r%   r   r&   r   r'   r   r    r(   r!   r)   r"   r*   r#   r+   r$   r+   )r5   r3   )r&   r   r5   r9   )r5   r   )r%   r   r5   r9   )r5   r>   )r5   r9   )r\   r]   r^   r_   r5   r   )r/   rf   r5   rg   )r5   r„   )r�   rŽ   r^   r   r5   r   )r�   rŽ   r^   r   r5   r   )r^   r   r5   r   )r^   r   r5   r   )r€   r   r^   r   r5   r   )r€   r   r^   r   r5   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   Ú__annotations__Úpropertyr&   Úsetterr%   rI   rP   r.   r[   re   rƒ   rŒ   rw   rˆ   rz   r‹   r“   r›   rA   r2   r0   r   r   -   sc  € € € € € € Ø%Ð%ð  $ð	ð %)Ø-1Ø"&Ø!&Ø#ðð ð ð ð ð ð4 ÐÐÑØÐÐÑØÐÐÑØ&Ð&Ð&Ñ&ØÐÐÑØÐÐÑØÐÐÑàðð ð ñ „Xðð „]ð?ð ?ð ?ñ „]ð?ð ð$ð $ð $ñ „Xð$ð Ôð"ð "ð "ñ Ôð"ð
 ðGð Gð Gñ „XðGð ð
ð 
ð 
ñ „Xð
ð
&ð 
&ð 
&ð 
&ð
ð 
ð 
ð 
ð ð  ð  ð  ð";&ð ;&ð ;&ð ;&ðzI-ð I-ð I-ð I-ðV?ð ?ð ?ð ?ð8?ð ?ð ?ð ?ð8=ð =ð =ð =ðDð Dð Dð DðEð Eð Eð EðEð Eð Eð Eð Eð Er2   r   ).Ú
__future__r   rŠ   ÚloggingrW   Útypingr   r   r   r   r   r	   r
   r   r   Úlangchain_core.agentsr   r   r   Úlangchain_core.load.dumpr   Úlangchain_core.outputsr   Úlangchain_core.runnables.utilsr   Úlangchain_core.utils.inputr   Úlangchain.callbacks.managerr   r   r   r   r   Úlangchain.schemar   Úlangchain.toolsr   Úlangchain.utilities.asyncior   Úlangchain.agents.agentr   r   Ú	getLoggerr©   rR   r   rA   r2   r0   ú<module>r¾      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð ð
 +Ð *Ð *Ð *Ð *Ð *Ø *Ð *Ð *Ð *Ð *Ð *Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ð %Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7àð EØDÐDÐDÐDÐDÐDÐDÐDà	ˆÔ	˜8Ñ	$Ô	$€ð[Eð [Eð [Eð [Eð [Eñ [Eô [Eð [Eð [Eð [Er2   