o
    Zhd                     @  sT   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
 G dd deZdS )	    )annotations)AnyOptional)CallbackManagerForToolRun)BaseToolBraveSearchWrapperc                   @  sR   e Zd ZU dZdZded< dZded< ded< e		ddddZ		ddddZ	d	S )BraveSearchz"Tool that queries the BraveSearch.Zbrave_searchstrnamezsa search engine. useful for when you need to answer questions about current events. input should be a search query.descriptionr   search_wrapperNapi_keysearch_kwargsOptional[dict]kwargsr   returnc                 K  s"   t ||pi d}| dd|i|S )a  Create a tool from an api key.

        Args:
            api_key: The api key to use.
            search_kwargs: Any additional kwargs to pass to the search wrapper.
            **kwargs: Any additional kwargs to pass to the tool.

        Returns:
            A tool.
        )r   r   r   N r   )clsr   r   r   wrapperr   r   b/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/tools/brave_search/tool.pyfrom_api_key   s   zBraveSearch.from_api_keyqueryrun_manager#Optional[CallbackManagerForToolRun]c                 C  s   | j |S )zUse the tool.)r   run)selfr   r   r   r   r   _run'   s   zBraveSearch._run)N)r   r
   r   r   r   r   r   r	   )r   r
   r   r   r   r
   )
__name__
__module____qualname____doc__r   __annotations__r   classmethodr   r   r   r   r   r   r	      s   
 
r	   N)
__future__r   typingr   r   Zlangchain_core.callbacksr   Zlangchain_core.toolsr   Z*langchain_community.utilities.brave_searchr   r	   r   r   r   r   <module>   s    