o
    Jjg                  
   @   s  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mZmZmZmZ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 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*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z? erddl@mAZA ddlBmCZCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK dd lLmMZM dd!lNmOZO g d"ZPd#d$d%d&d'd(d)d)d)d*	ZQeeReQd+ZSd,eTd-efd.d/ZUg d0ZVd1S )2a  
**Agent** is a class that uses an LLM to choose a sequence of actions to take.

In Chains, a sequence of actions is hardcoded. In Agents,
a language model is used as a reasoning engine to determine which actions
to take and in which order.

Agents select and use **Tools** and **Toolkits** for actions.

**Class hierarchy:**

.. code-block::

    BaseSingleActionAgent --> LLMSingleActionAgent
                              OpenAIFunctionsAgent
                              XMLAgent
                              Agent --> <name>Agent  # Examples: ZeroShotAgent, ChatAgent


    BaseMultiActionAgent  --> OpenAIMultiFunctionsAgent


**Main helpers:**

.. code-block::

    AgentType, AgentExecutor, AgentOutputParser, AgentExecutorIterator,
    AgentAction, AgentFinish

    )Path)TYPE_CHECKINGAny)as_import_path)Tool)tool)create_importer)AgentAgentExecutorAgentOutputParserBaseMultiActionAgentBaseSingleActionAgentLLMSingleActionAgent)AgentExecutorIterator)create_vectorstore_agentcreate_vectorstore_router_agent)	AgentType)ConversationalAgent)ConversationalChatAgent)initialize_agent)create_json_chat_agent)
load_agent)	MRKLChainZeroShotAgent)OpenAIFunctionsAgentcreate_openai_functions_agent)OpenAIMultiFunctionsAgent)create_openai_tools_agent)create_react_agent)
ReActChainReActTextWorldAgent)SelfAskWithSearchChain!create_self_ask_with_search_agent)StructuredChatAgentcreate_structured_chat_agent)create_tool_calling_agent)XMLAgentcreate_xml_agent)create_json_agent)get_all_tool_namesload_huggingface_tool
load_tools)create_openapi_agent)create_pbi_agent)create_pbi_chat_agent)create_spark_sql_agent)create_sql_agent)create_csv_agentcreate_pandas_dataframe_agentcreate_spark_dataframe_agentcreate_xorbits_agentz,langchain_community.agent_toolkits.json.basez/langchain_community.agent_toolkits.openapi.basez/langchain_community.agent_toolkits.powerbi.basez4langchain_community.agent_toolkits.powerbi.chat_basez1langchain_community.agent_toolkits.spark_sql.basez+langchain_community.agent_toolkits.sql.basez-langchain_community.agent_toolkits.load_tools)	r(   r,   r-   r.   r/   r0   r+   r*   r)   )deprecated_lookupsnamereturnc                 C   s\   | t v r*ttjd }tttj| |d}d| }d| }t|  d| d| dt| S )zGet attr name.   )suffixrelative_toz
langchain.zlangchain_experimental.z has been moved to langchain experimental. See https://github.com/langchain-ai/langchain/discussions/11680for more information.
Please update your import statement from: `z` to `z`.)DEPRECATED_CODEr   __file__parentsr   parentImportError_import_attribute)r6   HERErelative_pathold_pathnew_path rE   Q/var/www/html/zoom/venv/lib/python3.10/site-packages/langchain/agents/__init__.py__getattr__w   s   rG   )*r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r#   r   r(   r,   r-   r.   r/   r0   r   r   r)   r   r   r*   r+   r&   r   r'   r   r   r"   r   r$   r%   r   r   N)W__doc__pathlibr   typingr   r   langchain_core._api.pathr   langchain_core.toolsr   langchain_core.tools.convertr   langchain._apir   langchain.agents.agentr	   r
   r   r   r   r   langchain.agents.agent_iteratorr   0langchain.agents.agent_toolkits.vectorstore.baser   r   langchain.agents.agent_typesr   $langchain.agents.conversational.baser   )langchain.agents.conversational_chat.baser   langchain.agents.initializer   langchain.agents.json_chat.baser   langchain.agents.loadingr   langchain.agents.mrkl.baser   r   ,langchain.agents.openai_functions_agent.baser   r   2langchain.agents.openai_functions_multi_agent.baser   "langchain.agents.openai_tools.baser   langchain.agents.react.agentr   langchain.agents.react.baser   r    *langchain.agents.self_ask_with_search.baser!   r"   %langchain.agents.structured_chat.baser#   r$   (langchain.agents.tool_calling_agent.baser%   langchain.agents.xml.baser&   r'   ,langchain_community.agent_toolkits.json.baser(   -langchain_community.agent_toolkits.load_toolsr)   r*   r+   /langchain_community.agent_toolkits.openapi.baser,   /langchain_community.agent_toolkits.powerbi.baser-   4langchain_community.agent_toolkits.powerbi.chat_baser.   1langchain_community.agent_toolkits.spark_sql.baser/   +langchain_community.agent_toolkits.sql.baser0   r;   DEPRECATED_LOOKUP__package__r@   strrG   __all__rE   rE   rE   rF   <module>   s`     