
    {hd                    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
  G d de      Zy)	    )annotations)AnyOptional)CallbackManagerForToolRun)BaseToolBraveSearchWrapperc                  r    e Zd ZU dZdZded<   dZded<   ded<   e	 d	 	 	 	 	 	 	 dd
       Z	 d	 	 	 	 	 ddZ	y	)BraveSearchz"Tool that queries the BraveSearch.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_wrapperNc                8    t        ||xs i       } | 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.
        )api_keysearch_kwargsr    r   )clsr   r   kwargswrappers        e/var/www/html/engine/venv/lib/python3.12/site-packages/langchain_community/tools/brave_search/tool.pyfrom_api_keyzBraveSearch.from_api_key   s)     %WMDWUWX4'4V44    c                8    | j                   j                  |      S )zUse the tool.)r   run)selfqueryrun_managers      r   _runzBraveSearch._run'   s     ""&&u--r   )N)r   r   r   zOptional[dict]r   r   returnr   )r   r   r   z#Optional[CallbackManagerForToolRun]r!   r   )
__name__
__module____qualname____doc__r   __annotations__r   classmethodr   r    r   r   r   r   r      s    ,D#	+  
 '&;?55*85KN5	5 5& <@.. 9. 
	.r   r   N)
__future__r   typingr   r   langchain_core.callbacksr   langchain_core.toolsr   *langchain_community.utilities.brave_searchr	   r   r   r   r   <module>r-      s     "   > ) I".( ".r   