HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/langchain/agents/chat/__pycache__/base.cpython-310.pyc
o

���g��@s�ddlmZmZmZmZmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZddlmZmZmZddlmZdd	lmZdd
lmZddlmZmZddlmZdd
lm Z m!Z!m"Z"m#Z#ddl$m%Z%ddl&m'Z'ededd�Gdd�de��Z(dS)�)�Any�List�Optional�Sequence�Tuple)�
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)�LLMChainz0.1.0z1.0)�message�removalcsleZdZUdZeed�Zeed<	e	de
fdd��Ze	de
fdd��Zd	e
eee
fde
f�fd
d�Zededefd
d��Zedeeddf�fdd��Ze	de
e
fdd��Zeeeeedfdeede
de
de
de
dee
e
defdd��Zeddeeeedfdedeedee deede
de
de
de
dee
e
dede!fdd��Z"e	de
fd d!��Z#�Z$S)"�	ChatAgentzChat Agent.)�default_factory�
output_parser�returncC�dS)z&Prefix to append the observation with.z
Observation: ���selfr#r#�E/usr/local/lib/python3.10/dist-packages/langchain/agents/chat/base.py�observation_prefix(�zChatAgent.observation_prefixcCr")z#Prefix to append the llm call with.zThought:r#r$r#r#r&�
llm_prefix-r(zChatAgent.llm_prefix�intermediate_stepscs0t��|�}t|t�std��|rd|��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��	__class__r#r&r,2s
��zChatAgent._construct_scratchpad�kwargscKst�S�Nr)�clsr3r#r#r&�_get_default_output_parserA�z$ChatAgent._get_default_output_parser�toolsNcst��|�t|j|d�dS)N)�
class_namer8)r+�_validate_toolsr�__name__)r5r8r1r#r&r:EszChatAgent._validate_toolscCsdgS)NzObservation:r#r$r#r#r&�_stopJr7zChatAgent._stop�system_message_prefix�system_message_suffix�
human_message�format_instructions�input_variablescCsvd�dd�|D��}d�dd�|D��}|j|d�}d�||||g�}	t�|	�t�|�g}
|dur5d	d
g}t||
d�S)agCreate 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.
        �
cSsg|]}|j�d|j���qS)z: )�name�description��.0�toolr#r#r&�
<listcomp>isz+ChatAgent.create_prompt.<locals>.<listcomp>z, cS�g|]}|j�qSr#�rCrEr#r#r&rHj�)�
tool_namesz

N�inputr0)rA�messages)�join�formatr�
from_templater
r)r5r8r=r>r?r@rA�tool_stringsrL�templaterNr#r#r&�
create_promptNs ��	�zChatAgent.create_prompt�llm�callback_managerc
Ks^|�|�|j||||||	d�}t|||d�}dd�|D�}
|p#|��}|d||
|d�|
��S)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.
        )r=r>r?r@rA)rU�promptrVcSrIr#rJrEr#r#r&rH�rKz0ChatAgent.from_llm_and_tools.<locals>.<listcomp>)�	llm_chain�
allowed_toolsr Nr#)r:rTrr6)r5rUr8rVr r=r>r?r@rAr3rWrXrL�_output_parserr#r#r&�from_llm_and_tools|s.
"����zChatAgent.from_llm_and_toolscCst�r4)r/r$r#r#r&�_agent_type�szChatAgent._agent_type)%r;�
__module__�__qualname__�__doc__rrr r�__annotations__�propertyr.r'r)rrrr,�classmethodrr6rrr:r<rrrrrrrTr
r	rr[r\�
__classcell__r#r#r1r&rs�
��������
��-��������	�

���8rN))�typingrrrrr�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.agentrr�#langchain.agents.chat.output_parserr�langchain.agents.chat.promptrrrr�langchain.agents.utilsr�langchain.chains.llmrrr#r#r#r&�<module>s*�