a
    bg
                     @  s   d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZmZ ddlmZ erpddlmZ d	eed	d	d
d	fddddddddddddddZd	S )zJson agent.    )annotations)TYPE_CHECKINGAnyDictListOptional)BaseCallbackManager)BaseLanguageModel)JSON_PREFIXJSON_SUFFIX)JsonToolkitAgentExecutorNFr	   r   zOptional[BaseCallbackManager]strzOptional[str]zOptional[List[str]]boolzOptional[Dict[str, Any]]r   r   )llmtoolkitcallback_managerprefixsuffixformat_instructionsinput_variablesverboseagent_executor_kwargskwargsreturnc	                 K  s   ddl m}
 ddlm} ddlm} | }|dur<d|ini }|j|f|||d|}|| ||d}d	d
 |D }|f ||d|	}|
jf ||||d|pi S )a  Construct a json agent from an LLM and tools.

    Args:
        llm: The language model to use.
        toolkit: The toolkit to use.
        callback_manager: The callback manager to use. Default is None.
        prefix: The prefix to use. Default is JSON_PREFIX.
        suffix: The suffix to use. Default is JSON_SUFFIX.
        format_instructions: The format instructions to use. Default is None.
        input_variables: The input variables to use. Default is None.
        verbose: Whether to print verbose output. Default is False.
        agent_executor_kwargs: Optional additional arguments for the agent executor.
        kwargs: Additional arguments for the agent.

    Returns:
        The agent executor.
    r   r   )ZeroShotAgent)LLMChainNr   )r   r   r   )r   promptr   c                 S  s   g | ]
}|j qS  )name).0Ztoolr   r   z/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/agent_toolkits/json/base.py
<listcomp>D       z%create_json_agent.<locals>.<listcomp>)	llm_chainZallowed_tools)agenttoolsr   r   )	langchain.agents.agentr   Zlangchain.agents.mrkl.baser   Zlangchain.chains.llmr   Z	get_toolsZcreate_promptZfrom_agent_and_tools)r   r   r   r   r   r   r   r   r   r   r   r   r   r'   Zprompt_paramsr   r%   Z
tool_namesr&   r   r   r"   create_json_agent   s@    
r)   )__doc__
__future__r   typingr   r   r   r   r   Zlangchain_core.callbacksr   Zlangchain_core.language_modelsr	   Z.langchain_community.agent_toolkits.json.promptr
   r   Z/langchain_community.agent_toolkits.json.toolkitr   r(   r   r)   r   r   r   r"   <module>   s    