a
    bgd                     @  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                   @  s`   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d dddZddd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_wrapperNzOptional[dict]r   )api_keysearch_kwargskwargsreturnc                 K  s"   t ||p
i d}| f 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   r   )clsr   r   r   wrapper r   y/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/tools/brave_search/tool.pyfrom_api_key   s    zBraveSearch.from_api_keyz#Optional[CallbackManagerForToolRun])queryrun_managerr   c                 C  s   | j |S )zUse the tool.)r   run)selfr   r   r   r   r   _run'   s    zBraveSearch._run)N)N)
__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
   