
    Ng
                        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rddlmZ d	eed	d	d
d	fd!d Zd	S )"zJson agent.    )annotations)TYPE_CHECKINGAnyDictListOptional)BaseCallbackManager)BaseLanguageModel)JSON_PREFIXJSON_SUFFIX)JsonToolkitAgentExecutorNFllmr
   toolkitr   callback_managerOptional[BaseCallbackManager]prefixstrsuffixformat_instructionsOptional[str]input_variablesOptional[List[str]]verboseboolagent_executor_kwargsOptional[Dict[str, Any]]kwargsr   returnr   c	                    ddl m}
 ddlm} ddlm} |                                }|d|ini } |j        |f|||d|} || ||          }d	 |D             } |d||d
|	} |
j        d||||d|pi 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                    g | ]	}|j         
S  )name).0tools     h/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/agent_toolkits/json/base.py
<listcomp>z%create_json_agent.<locals>.<listcomp>D   s    ...$)...    )	llm_chainallowed_tools)agenttoolsr   r   r&   )	langchain.agents.agentr   langchain.agents.mrkl.baser"   langchain.chains.llmr#   	get_toolscreate_promptfrom_agent_and_tools)r   r   r   r   r   r   r   r   r   r   r   r"   r#   r0   prompt_paramsr$   r-   
tool_namesr/   s                      r*   create_json_agentr9      s-   : 544444888888------E * 
 344 
 )]('	 
  F )  I
 /....JMRIZRR6RRE-=- )	 
 !&B  r,   )r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   )__doc__
__future__r   typingr   r   r   r   r   langchain_core.callbacksr	   langchain_core.language_modelsr
   .langchain_community.agent_toolkits.json.promptr   r   /langchain_community.agent_toolkits.json.toolkitr   r1   r   r9   r&   r,   r*   <module>rA      s      " " " " " " ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 8 8 8 8 8 < < < < < < S S S S S S S S G G G G G G 5444444 7;)-+/6:; ; ; ; ; ; ;r,   