
    Ng
                         d Z ddlmZmZ ddlmZmZ ddlmZ ddl	m
Z
mZmZ ddlmZ  G d de
          Z G d	 d
e          Z G d de          ZdS )z Tool for the SearxNG search API.    )OptionalType)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)BaseTool)	BaseModel
ConfigDictField)SearxSearchWrapperc                   6    e Zd ZU dZ ed          Zeed<   dS )SearxSearchQueryInputzInput for the SearxSearch tool.zquery to look up on searx)descriptionqueryN)__name__
__module____qualname____doc__r
   r   str__annotations__     g/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/searx_search/tool.pyr   r      s6         ))#>???E3?????r   r   c                       e Zd ZU dZdZeed<   dZeed<   eed<    e	e
          Ze
ed<   eZee         ed	<   	 ddedee         defdZ	 ddedee         defdZd
S )SearxSearchRunz#Tool that queries a Searx instance.searx_searchnamezvA meta search engine.Useful for when you need to answer questions about current events.Input should be a search query.r   wrapperdefault_factorykwargsargs_schemaNr   run_managerreturnc                 2     | j         j        |fi | j        S zUse the tool.)r   runr    selfr   r"   s      r   _runzSearxSearchRun._run"   s#      t|55555r   c                 B   K    | j         j        |fi | j         d{V S zUse the tool asynchronously.N)r   arunr    r'   s      r   _arunzSearxSearchRun._arun*   s9       'T\&u<<<<<<<<<<<r   N)r   r   r   r   r   r   r   r   r   r
   dictr    r   r!   r   r   r   r   r)   r   r-   r   r   r   r   r      s	        --D#	*    
  5...FD...#8Ki888
 <@6 66 786 
	6 6 6 6 AE= == <== 
	= = = = = =r   r   c                       e Zd ZU dZdZeed<   dZeed<   eed<   dZ	e
ed<    ee	          Zeed
<   eZee         ed<    ed          Z	 ddedee         defdZ	 ddedee         defdZdS )SearxSearchResultsz6Tool that queries a Searx instance and gets back json.searx_search_resultsr   zA meta search engine.Useful for when you need to answer questions about current events.Input should be a search query. Output is a JSON array of the query resultsr   r      num_resultsr   r    r!   allow)extraNr   r"   r#   c                 X    t           | j        j        || j        fi | j                  S r%   )r   r   resultsr4   r    r'   s      r   r)   zSearxSearchResults._runE   s1     '4<'t/?OO4;OOPPPr   c                 r   K    | j         j        || j        fi | j         d{V                                 S r+   )r   aresultsr4   r    __str__r'   s      r   r-   zSearxSearchResults._arunM   sI       ($,'t/?OO4;OOOOOOOO
'))	r   r.   )r   r   r   r   r   r   r   r   r   r4   intr
   r/   r    r   r!   r   r   r	   model_configr   r   r)   r   r-   r   r   r   r1   r1   3   s;        @@&D#&&&	V    
  K5...FD...#8Ki888:  L <@Q QQ 78Q 
	Q Q Q Q AE  <= 
	     r   r1   N)r   typingr   r   langchain_core.callbacksr   r   langchain_core.toolsr   pydanticr   r	   r
   *langchain_community.utilities.searx_searchr   r   r   r1   r   r   r   <module>rC      s   & & ! ! ! ! ! ! ! !        * ) ) ) ) ) 1 1 1 1 1 1 1 1 1 1 I I I I I I@ @ @ @ @I @ @ @= = = = =X = = =<" " " " " " " " " "r   