§
    šŠtjµ  ã                  ór   — 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d	S )
é    )Ú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d
S )Ú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_wrapperNÚapi_keyÚsearch_kwargsúOptional[dict]Úkwargsr   Úreturnc                óV   — t          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   r	   )Úclsr   r   r   Úwrappers        úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/tools/brave_search/tool.pyÚfrom_api_keyzBraveSearch.from_api_key0   sG   € õ %Ý˜gÑ&Ô&°mÐ6IÀrð
ñ 
ô 
ˆð ˆsÐ4Ð4 'Ð4¨VÐ4Ð4Ð4ó    Údictc                ó6   — 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ÑAÔAˆØˆsÐ4Ð4 'Ð4¨VÐ4Ð4Ð4r   ÚqueryÚrun_managerú#Optional[CallbackManagerForToolRun]c                ó6   — | j                              |¦  «        S )zUse the tool.)r   Úrun)Úselfr#   r$   s      r   Ú_runzBraveSearch._runV   s   € ð Ô"×&Ò& uÑ-Ô-Ð-r   )N)r   r   r   r   r   r   r   r   )r   r    r   r   r   r   )r#   r   r$   r%   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Ñ)RÔ)R€NÐRÐRÐRÑRàà;?ð5ð 5ð 5ð 5ñ „[ð5ð$ ð5ð 5ð 5ñ „[ð5ð* <@ð.ð .ð .ð .ð .ð .ð .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>r6      s»   ðØ "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à >Ð >Ð >Ð >Ð >Ð >Ø )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à IÐ IÐ IÐ IÐ IÐ IðP.ð P.ð P.ð P.ð P.�(ñ P.ô P.ð P.ð P.ð P.r   