
    Ngd                    b    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dS )	    )annotations)AnyOptional)CallbackManagerForToolRun)BaseToolBraveSearchWrapperc                  b    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	d	S )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_wrapperNapi_keysearch_kwargsOptional[dict]kwargsr   returnc                <    t          ||p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.
        )r   r   r    r   )clsr   r   r   wrappers        g/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/brave_search/tool.pyfrom_api_keyzBraveSearch.from_api_key   s7     %WMDWUWXXXs44'4V444    queryrun_manager#Optional[CallbackManagerForToolRun]c                6    | j                             |          S )zUse the tool.)r   run)selfr   r   s      r   _runzBraveSearch._run'   s     "&&u---r   )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         ,,D	+     
 '&&&;?5 5 5 5 [5& <@. . . . . . .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 I I I I I". ". ". ". ".( ". ". ". ". ".r   