o
    `+ i                     @   s   d Z ddl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 ddlmZ ddlmZ ededd				ddddee dedee dee
 dee dee deee  dedefddZdS )zLoad agent.    N)Sequence)AnyOptional)
deprecated)BaseCallbackManager)BaseLanguageModel)BaseTool)AGENT_DEPRECATION_WARNING)AgentExecutor)	AgentType)
load_agent)AGENT_TO_CLASSz0.1.0z1.0)messageZremoval)tagstoolsllmagentcallback_manager
agent_pathagent_kwargsr   kwargsreturnc                K   s*  |rt |ng }|du r|du rtj}|dur!|dur!d}	t|	|durZ|tvr8d| dt  d}	t|	|t|trB|jn| t| }
|pLi }|
j	|| fd|i|}n.|durt
||| |d}tt ||j W d   n1 s|w   Y  nd}	t|	tjd
|| ||d	|S )a\  Load an agent executor given tools and LLM.

    Args:
        tools: List of tools this agent has access to.
        llm: Language model to use as the agent.
        agent: Agent type to use. If None and agent_path is also None, will default
            to AgentType.ZERO_SHOT_REACT_DESCRIPTION. Defaults to None.
        callback_manager: CallbackManager to use. Global callback manager is used if
            not provided. Defaults to None.
        agent_path: Path to serialized agent to use. If None and agent is also None,
            will default to AgentType.ZERO_SHOT_REACT_DESCRIPTION. Defaults to None.
        agent_kwargs: Additional keyword arguments to pass to the underlying agent.
            Defaults to None.
        tags: Tags to apply to the traced runs. Defaults to None.
        kwargs: Additional keyword arguments passed to the agent executor.

    Returns:
        An agent executor.

    Raises:
        ValueError: If both `agent` and `agent_path` are specified.
        ValueError: If `agent` is not a valid agent type.
        ValueError: If both `agent` and `agent_path` are None.
    NzLBoth `agent` and `agent_path` are specified, but at most only one should be.zGot unknown agent type: z. Valid types are: .r   )r   r   r   zISomehow both `agent` and `agent_path` are None, this should never happen.)r   r   r   r    )listr   ZZERO_SHOT_REACT_DESCRIPTION
ValueErrorr   keysappend
isinstancevalueZfrom_llm_and_toolsr   
contextlibsuppressNotImplementedErrorZ_agent_typer
   Zfrom_agent_and_tools)r   r   r   r   r   r   r   r   Ztags_msgZ	agent_clsZ	agent_objr   r   g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/langchain/agents/initialize.pyinitialize_agent   s^   (r%   )NNNN)__doc__r    collections.abcr   typingr   r   Zlangchain_core._apir   Zlangchain_core.callbacksr   Zlangchain_core.language_modelsr   Zlangchain_core.toolsr   Zlangchain._api.deprecationr	   Zlangchain.agents.agentr
   Zlangchain.agents.agent_typesr   Zlangchain.agents.loadingr   Zlangchain.agents.typesr   strdictr%   r   r   r   r$   <module>   sV    
	
