Ë
    ´Œjz  ã                   ó  — 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mZ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m Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z&  eded¬«       G d„ de«      «       Z'y)é    )ÚSequence)ÚAnyÚOptional)Ú
deprecated)ÚAgentAction)ÚBaseCallbackManager)ÚBaseLanguageModel)ÚBasePromptTemplate)ÚChatPromptTemplateÚHumanMessagePromptTemplateÚSystemMessagePromptTemplate)ÚBaseTool)ÚField)ÚAGENT_DEPRECATION_WARNING)ÚAgentÚAgentOutputParser©ÚChatOutputParser)ÚFORMAT_INSTRUCTIONSÚHUMAN_MESSAGEÚSYSTEM_MESSAGE_PREFIXÚSYSTEM_MESSAGE_SUFFIX)Úvalidate_tools_single_input)ÚLLMChainz0.1.0z1.0)ÚmessageÚremovalc                   ó°  ‡ — e Zd ZU dZ ee¬«      Zeed<   	 e	de
fd„«       Ze	de
fd„«       Zdeeee
f      de
fˆ fd„Zed	edefd
„«       Zedee   ddfˆ fd„«       Ze	dee
   fd„«       Zeeeeedfdee   de
de
de
de
deee
      defd„«       Zeddeeeedfdedee   dee    dee   de
de
de
de
deee
      d	ede!fd„«       Z"e	de
fd„«       Z#ˆ xZ$S )Ú	ChatAgentzChat Agent.)Údefault_factoryÚoutput_parserÚreturnc                  ó   — y)z&Prefix to append the observation with.zObservation: © ©Úselfs    úd/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/agents/chat/base.pyÚobservation_prefixzChatAgent.observation_prefix)   s   € ð ó    c                  ó   — y)z#Prefix to append the llm call with.zThought:r#   r$   s    r&   Ú
llm_prefixzChatAgent.llm_prefix.   s   € ð r(   Úintermediate_stepsc                 ón   •— t         ‰| �  |«      }t        |t        «      sd}t	        |«      ‚|rd|› �S |S )Nz*agent_scratchpad should be of type string.zhThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):
)ÚsuperÚ_construct_scratchpadÚ
isinstanceÚstrÚ
ValueError)r%   r+   Úagent_scratchpadÚmsgÚ	__class__s       €r&   r.   zChatAgent._construct_scratchpad3   sQ   ø€ ô !™7Ñ8Ð9KÓLÐÜÐ*¬CÔ0Ø>ˆCÜ˜S“/Ð!Ùð1à1AÐ0BðDðð
  Ðr(   Úkwargsc                 ó   — t        «       S ©Nr   )Úclsr5   s     r&   Ú_get_default_output_parserz$ChatAgent._get_default_output_parserC   s   € äÓ!Ð!r(   ÚtoolsNc                 óR   •— t         ‰| �  |«       t        | j                  |¬«       y )N)Ú
class_namer:   )r-   Ú_validate_toolsr   Ú__name__)r8   r:   r4   s     €r&   r=   zChatAgent._validate_toolsG   s   ø€ ä‰Ñ Ô&Ü#¨s¯|©|À5ÖIr(   c                 ó   — dgS )NzObservation:r#   r$   s    r&   Ú_stopzChatAgent._stopL   s   € àÐÐr(   Úsystem_message_prefixÚsystem_message_suffixÚhuman_messageÚformat_instructionsÚinput_variablesc                 ó�  — dj                  |D �cg c]  }|j                  › d|j                  › �‘Œ c}«      }dj                  |D �cg c]  }|j                  ‘Œ c}«      }	|j                  |	¬«      }|› d|› d|› d|› �}
t	        j
                  |
«      t        j
                  |«      g}|€ddg}t        ||¬«      S c c}w c c}w )	ag  Create a prompt from a list of tools.

        Args:
            tools: A list of tools.
            system_message_prefix: The system message prefix.
                Default is SYSTEM_MESSAGE_PREFIX.
            system_message_suffix: The system message suffix.
                Default is SYSTEM_MESSAGE_SUFFIX.
            human_message: The human message. Default is HUMAN_MESSAGE.
            format_instructions: The format instructions.
                Default is FORMAT_INSTRUCTIONS.
            input_variables: The input variables. Default is None.

        Returns:
            A prompt template.
        Ú
z: z, )Ú
tool_namesz

Úinputr2   )rE   Úmessages)ÚjoinÚnameÚdescriptionÚformatr   Úfrom_templater   r   )r8   r:   rA   rB   rC   rD   rE   ÚtoolÚtool_stringsrH   ÚtemplaterJ   s               r&   Úcreate_promptzChatAgent.create_promptP   sÝ   € ð6 —y‘yÑQVÓ!WÑQVÈ T§Y¡Y K¨r°$×2BÑ2BÐ1CÒ"DÐQVÑ!WÓXˆØ—Y‘Y±eÓ<±e¨d §	£	°eÑ<Ó=ˆ
Ø1×8Ñ8ÀJÐ8ÓOÐØ+Ð,¨D°°¸dÐCVÐBWÐW[Ð\qÐ[rÐsˆä'×5Ñ5°hÓ?Ü&×4Ñ4°]ÓCð
ˆð Ð"Ø&Ð(:Ð;ˆOÜ!°/ÈHÔUÐUùò "XùÚ<s   �"B>ÁCÚllmÚcallback_managerc
                 óê   — | j                  |«       | j                  ||||||	¬«      }t        |||¬«      }|D �cg c]  }|j                  ‘Œ }}|xs | j	                  «       } | d|||dœ|
¤ŽS c c}w )a=  Construct an agent from an LLM and tools.

        Args:
            llm: The language model.
            tools: A list of tools.
            callback_manager: The callback manager. Default is None.
            output_parser: The output parser. Default is None.
            system_message_prefix: The system message prefix.
                Default is SYSTEM_MESSAGE_PREFIX.
            system_message_suffix: The system message suffix.
                Default is SYSTEM_MESSAGE_SUFFIX.
            human_message: The human message. Default is HUMAN_MESSAGE.
            format_instructions: The format instructions.
                Default is FORMAT_INSTRUCTIONS.
            input_variables: The input variables. Default is None.
            kwargs: Additional keyword arguments.

        Returns:
            An agent.
        )rA   rB   rC   rD   rE   )rT   ÚpromptrU   )Ú	llm_chainÚallowed_toolsr    r#   )r=   rS   r   rL   r9   )r8   rT   r:   rU   r    rA   rB   rC   rD   rE   r5   rW   rX   rP   rH   Ú_output_parsers                   r&   Úfrom_llm_and_toolszChatAgent.from_llm_and_toolsw   s¦   € ðD 	×Ñ˜EÔ"Ø×"Ñ"ØØ"7Ø"7Ø'Ø 3Ø+ð #ó 
ˆô ØØØ-ô
ˆ	ñ
 -2Ó2©E D�d—i“i¨Eˆ
Ð2Ø&ÒJ¨#×*HÑ*HÓ*JˆÙð 
ØØ$Ø(ñ
ð ñ	
ð 	
ùò 3s   »A0c                 ó   — t         ‚r7   )r1   r$   s    r&   Ú_agent_typezChatAgent._agent_type°   s   € äÐr(   )%r>   Ú
__module__Ú__qualname__Ú__doc__r   r   r    r   Ú__annotations__Úpropertyr0   r'   r*   ÚlistÚtupler   r.   Úclassmethodr   r9   r   r   r=   r@   r   r   r   r   r   r
   rS   r	   r   r   r[   r]   Ú__classcell__)r4   s   @r&   r   r      s1  ø… ñ á',Ð=MÔ'N€MÐ$ÓNØ&àð Cò ó ðð ð˜Cò ó ðð à   {°CÐ'7Ñ!8Ñ9ð ð 
õ ð  ð"°#ð "Ð:Kò "ó ð"ð ðJ H¨XÑ$6ð J¸4ô Jó ðJð ð �t˜C‘yò  ó ð ð ð &;Ø%:Ø*Ø#6Ø/3ñ$Và˜Ñ!ð$Vð  #ð$Vð  #ð	$Vð
 ð$Vð !ð$Vð " $ s¡)Ñ,ð$Vð 
ò$Vó ð$VðL ð
 ;?Ø59Ø%:Ø%:Ø*Ø#6Ø/3ñ6
àð6
ð ˜Ñ!ð6
ð #Ð#6Ñ7ð	6
ð
  Ð 1Ñ2ð6
ð  #ð6
ð  #ð6
ð ð6
ð !ð6
ð " $ s¡)Ñ,ð6
ð ð6
ð 
ò6
ó ð6
ðp ð˜Sò ó ôr(   r   N)(Úcollections.abcr   Útypingr   r   Úlangchain_core._apir   Úlangchain_core.agentsr   Úlangchain_core.callbacksr   Úlangchain_core.language_modelsr	   Úlangchain_core.promptsr
   Úlangchain_core.prompts.chatr   r   r   Úlangchain_core.toolsr   Úpydanticr   Úlangchain._api.deprecationr   Úlangchain.agents.agentr   r   Ú#langchain.agents.chat.output_parserr   Úlangchain.agents.chat.promptr   r   r   r   Úlangchain.agents.utilsr   Úlangchain.chains.llmr   r   r#   r(   r&   Ú<module>rw      ss   ðÝ $ß  å *Ý -Ý 8Ý <Ý 5÷ñ õ
 *Ý å @ß ;Ý @÷ó õ ?Ý )ñ ØØ%Øôô
O�ó Oóñ
Or(   