Skip to main content
Open on GitHub

SearxNG 搜索 API

本页面介绍了如何在LangChain中使用SearxNG搜索API。 它分为两部分:安装和设置,然后是对特定SearxNG API包装器的引用。

安装与设置

虽然可以将包装器与公共searx实例结合使用,但这些实例通常不允许API访问(请参阅下面的输出格式说明),并且对请求频率有限制。建议选择自托管实例。

自托管实例:

请参阅此页面获取安装说明。

当你安装SearxNG时,默认情况下唯一激活的输出格式是HTML格式。 你需要激活json格式以使用API。这可以通过在settings.yml文件中添加以下行来完成:

search:
formats:
- html
- json

您可以通过向API端点发出curl请求来确保API正常工作:

curl -kLX GET --data-urlencode q='langchain' -d format=json http://localhost:8888

这应该返回一个包含结果的JSON对象。

包装器

实用工具

要使用包装器,我们需要将SearxNG实例的主机传递给包装器,方法如下:

  1. 创建实例时的命名参数 searx_host
  2. 导出环境变量 SEARXNG_HOST

您可以使用包装器从SearxNG实例获取结果。

from langchain_community.utilities import SearxSearchWrapper
s = SearxSearchWrapper(searx_host="http://localhost:8888")
s.run("what is a large language model?")
API Reference:SearxSearchWrapper

工具

你也可以将这个包装器作为工具加载(与代理一起使用)。

你可以这样做:

from langchain.agents import load_tools
tools = load_tools(["searx-search"],
searx_host="http://localhost:8888",
engines=["github"])
API Reference:load_tools

请注意,我们可以选择性地传递自定义引擎来使用。

如果你想获取带有元数据的结果作为json,你可以使用:

tools = load_tools(["searx-search-results-json"],
searx_host="http://localhost:8888",
num_results=5)

快速创建工具

这个示例展示了从同一个包装器快速创建多个工具的方法。

from langchain_community.tools.searx_search.tool import SearxSearchResults

wrapper = SearxSearchWrapper(searx_host="**")
github_tool = SearxSearchResults(name="Github", wrapper=wrapper,
kwargs = {
"engines": ["github"],
})

arxiv_tool = SearxSearchResults(name="Arxiv", wrapper=wrapper,
kwargs = {
"engines": ["arxiv"]
})
API Reference:SearxSearchResults

有关工具的更多信息,请参见此页面


这个页面有帮助吗?