SearxSearchWrapper#

class langchain_community.utilities.searx_search.SearxSearchWrapper[source]#

Bases: BaseModel

Wrapper for Searx API.

To use you need to provide the searx host by passing the named parameter searx_host or exporting the environment variable SEARX_HOST.

In some situations you might want to disable SSL verification, for example if you are running searx locally. You can do this by passing the named parameter unsecure. You can also pass the host url scheme as http to disable SSL.

Example

from langchain_community.utilities import SearxSearchWrapper
searx = SearxSearchWrapper(searx_host="http://localhost:8888")
Example with SSL disabled:
from langchain_community.utilities import SearxSearchWrapper
# note the unsecure parameter is not needed if you pass the url scheme as
# http
searx = SearxSearchWrapper(searx_host="http://localhost:8888",
                                        unsecure=True)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param aiosession: Any | None = None#
param categories: List[str] | None = []#
param engines: List[str] | None = []#
param headers: dict | None = None#
param k: int = 10#
param params: dict [Optional]#
param query_suffix: str | None = ''#
param searx_host: str = ''#
param unsecure: bool = False#
async aresults(query: str, num_results: int, engines: List[str] | None = None, query_suffix: str | None = '', **kwargs: Any) List[Dict][source]#

Asynchronously query with json results.

Uses aiohttp. See results for more info.

Parameters:
  • query (str)

  • num_results (int)

  • engines (List[str] | None)

  • query_suffix (str | None)

  • kwargs (Any)

Return type:

List[Dict]

async arun(query: str, engines: List[str] | None = None, query_suffix: str | None = '', **kwargs: Any) str[source]#

Asynchronously version of run.

Parameters:
  • query (str)

  • engines (List[str] | None)

  • query_suffix (str | None)

  • kwargs (Any)

Return type:

str

results(query: str, num_results: int, engines: List[str] | None = None, categories: List[str] | None = None, query_suffix: str | None = '', **kwargs: Any) List[Dict][source]#

Run query through Searx API and returns the results with metadata.

Parameters:
  • query (str) – The query to search for.

  • query_suffix (str | None) – Extra suffix appended to the query.

  • num_results (int) – Limit the number of results to return.

  • engines (List[str] | None) – List of engines to use for the query.

  • categories (List[str] | None) – List of categories to use for the query.

  • **kwargs (Any) – extra parameters to pass to the searx API.

Returns:

{

snippet: The description of the result. title: The title of the result. link: The link to the result. engines: The engines used for the result. category: Searx category of the result.

}

Return type:

Dict with the following keys

run(query: str, engines: List[str] | None = None, categories: List[str] | None = None, query_suffix: str | None = '', **kwargs: Any) str[source]#

Run query through Searx API and parse results.

You can pass any other params to the searx query API.

Parameters:
  • query (str) – The query to search for.

  • query_suffix (str | None) – Extra suffix appended to the query.

  • engines (List[str] | None) – List of engines to use for the query.

  • categories (List[str] | None) – List of categories to use for the query.

  • **kwargs (Any) – extra parameters to pass to the searx API.

Returns:

The result of the query.

Return type:

str

Raises:

ValueError – If an error occurred with the query.

Example

This will make a query to the qwant engine:

from langchain_community.utilities import SearxSearchWrapper
searx = SearxSearchWrapper(searx_host="http://my.searx.host")
searx.run("what is the weather in France ?", engine="qwant")

# the same result can be achieved using the `!` syntax of searx
# to select the engine using `query_suffix`
searx.run("what is the weather in France ?", query_suffix="!qwant")

Examples using SearxSearchWrapper