
    Ng              
          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r.d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*	ZQ eeReQ+          ZSd,eTd-efd.ZUg d/ZVd0S )1a  
**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/   r0   r1   r,   r+   r*   )deprecated_lookupsnamereturnc                    | t           v rjt          t                    j        d         }t	          t          t                    j        | |          }d|z   }d|z   }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)r7   HERErelative_pathold_pathnew_paths        U/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain/agents/__init__.py__getattr__rH   w   s    H~~%a(&NN!$D
 
 
  -/,}< W W ;CW W KSW W W
 
 	
 T"""    )*r
   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r$   r   r)   r-   r.   r/   r0   r1   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.baser0   +langchain_community.agent_toolkits.sql.baser1   r=   DEPRECATED_LOOKUP__package__rB   strrH   __all__ rI   rG   <module>rp      s   >       % % % % % % % % 3 3 3 3 3 3 % % % % % % - - - - - - * * * * * *                B A A A A A        3 2 2 2 2 2 D D D D D D M M M M M M 8 8 8 8 8 8 B B B B B B / / / / / / ? ? ? ? ? ? ? ?        Y X X X X X H H H H H H ; ; ; ; ; ; G G G G G G G G               O N N N N N @ @ @ @ @ @ @ @ MNNNNNN         
 UTTTTTPPPPPP      YXXXXXLLLLLL   HMISQEALI
 
  $OKDUVVV #c #c # # # #&+ + +rI   