
    dh	                         S r SSKJrJr  SSKJrJr  SSKJr  SSK	J
r
JrJr  SSKJr   " S S\
5      r " S	 S
\5      r " S S\5      rg)z Tool for the SearxNG search API.    )OptionalType)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)BaseTool)	BaseModel
ConfigDictField)SearxSearchWrapperc                   0    \ rS rSr% Sr\" SS9r\\S'   Sr	g)SearxSearchQueryInput   zInput for the SearxSearch tool.zquery to look up on searx)descriptionquery N)
__name__
__module____qualname____firstlineno____doc__r
   r   str__annotations____static_attributes__r       c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/tools/searx_search/tool.pyr   r      s    )#>?E3?r   r   c                       \ rS rSr% SrSr\\S'   Sr\\S'   \	\S'   \
" \S9r\\S	'   \r\\   \S
'    SS\S\\   S\4S jjr SS\S\\   S\4S jjrSrg)SearxSearchRun   z#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                 P    U R                   R                  " U40 U R                  D6$ zUse the tool.)r!   runr$   selfr   r&   s      r   _runSearxSearchRun._run"   s"     ||555r   c                 l   #    U R                   R                  " U40 U R                  D6I Sh  vN $  N7fzUse the tool asynchronously.N)r!   arunr$   r+   s      r   _arunSearxSearchRun._arun*   s+      \\&&u<<<<<s   +424r   N)r   r   r   r   r   r    r   r   r   r   r
   dictr$   r   r%   r   r   r   r   r-   r   r2   r   r   r   r   r   r      s    -D#	*  
  .FD.#8Ki8
 <@66 786 
	6 AE== <== 
	= =r   r   c                       \ rS rSr% SrSr\\S'   Sr\\S'   \	\S'   Sr
\\S	'   \" \S
9r\\S'   \r\\   \S'   \" SS9r SS\S\\   S\4S jjr SS\S\\   S\4S jjrSrg)SearxSearchResults3   z6Tool 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                 v    [        U R                  R                  " XR                  40 U R                  D65      $ r)   )r   r!   resultsr;   r$   r+   s      r   r-   SearxSearchResults._runE   s-     4<<''/?/?O4;;OPPr   c                    #    U R                   R                  " XR                  40 U R                  D6I Sh  vN R	                  5       $  N7fr0   )r!   aresultsr;   r$   __str__r+   s      r   r2   SearxSearchResults._arunM   s:      ,,''/?/?O4;;OO
')	Os   5AA
Ar   r4   )r   r   r   r   r   r    r   r   r   r   r;   intr
   r5   r$   r   r%   r   r   r	   model_configr   r   r-   r   r2   r   r   r   r   r7   r7   3   s    @&D#&	V  
  K.FD.#8Ki8L <@QQ 78Q 
	Q AE <= 
	 r   r7   N)r   typingr   r   langchain_core.callbacksr   r   langchain_core.toolsr   pydanticr   r	   r
   *langchain_community.utilities.searx_searchr   r   r   r7   r   r   r   <module>rL      sD    & ! * 1 1 I@I @=X =<" "r   