Ë
    µŒjµ  ã                  ój   — 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
mZ d dlmZ  G d„ de«      Zy	)
é    )Úannotations)ÚAnyÚOptional)ÚCallbackManagerForToolRun)ÚBaseTool)ÚFieldÚ	SecretStr©ÚBraveSearchWrapperc                  ó–   — e Zd ZU dZdZded<   dZded<    ee¬«      Z	ded	<   e
	 d	 	 	 	 	 	 	 dd„«       Ze
dd„«       Z	 d	 	 	 	 	 dd„Zy
)ÚBraveSearcha1  Tool that queries the BraveSearch.

    Api key can be provided as an environment variable BRAVE_SEARCH_API_KEY
    or as a parameter.


    Example usages:
    .. code-block:: python
        # uses BRAVE_SEARCH_API_KEY from environment
        tool = BraveSearch()

    .. code-block:: python
        # uses the provided api key
        tool = BraveSearch.from_api_key("your-api-key")

    .. code-block:: python
        # uses the provided api key and search kwargs
        tool = BraveSearch.from_api_key(
                                api_key = "your-api-key",
                                search_kwargs={"max_results": 5}
                                )

    .. code-block:: python
        # uses BRAVE_SEARCH_API_KEY from environment
        tool = BraveSearch.from_search_kwargs({"max_results": 5})
    Úbrave_searchÚstrÚnamezsa search engine. useful for when you need to answer questions about current events. input should be a search query.Údescription)Údefault_factoryr   Úsearch_wrapperNc                óJ   — t        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   r	   )Úclsr   r   ÚkwargsÚwrappers        úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/tools/brave_search/tool.pyÚfrom_api_keyzBraveSearch.from_api_key0   s2   € ô %Ü˜gÓ&°mÒ6IÀrô
ˆñ Ñ4 'Ð4¨VÑ4Ð4ó    c                ó.   — t        |¬«      } | dd|i|¤ŽS )a9  Create a tool from search kwargs.

        Uses the environment variable BRAVE_SEARCH_API_KEY for api key.

        Args:
            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
   )r   r   r   r   s       r   Úfrom_search_kwargszBraveSearch.from_search_kwargsC   s!   € ô  %°=ÔAˆÙÑ4 'Ð4¨VÑ4Ð4r   c                ó8   — | j                   j                  |«      S )zUse the tool.)r   Úrun)ÚselfÚqueryÚrun_managers      r   Ú_runzBraveSearch._runV   s   € ð ×"Ñ"×&Ñ& uÓ-Ð-r   )N)r   r   r   zOptional[dict]r   r   Úreturnr   )r   Údictr   r   r&   r   )r#   r   r$   z#Optional[CallbackManagerForToolRun]r&   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   Úclassmethodr   r   r%   r   r   r   r   r      s§   … ñð6 €Dˆ#Óð	+ð �ó ñ
 */Ð?QÔ)R€NÐ&ÓRàà;?ð5Øð5Ø*8ð5ØKNð5à	ò5ó ð5ð$ ò5ó ð5ð* <@ð.àð.ð 9ð.ð 
ô	.r   r   N)Ú
__future__r   Útypingr   r   Úlangchain_core.callbacksr   Úlangchain_core.toolsr   Úpydanticr   r	   Ú*langchain_community.utilities.brave_searchr   r   r   r   r   Ú<module>r4      s%   ðÝ "ç  å >Ý )ß %å IôP.�(õ P.r   