跳到主要内容

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 https://127.0.0.1:8888

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

封装器

实用程序

要使用封装器,我们需要将 SearxNG 实例的主机传递给封装器,使用

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

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

from langchain_community.utilities import SearxSearchWrapper
s = SearxSearchWrapper(searx_host="https://127.0.0.1:8888")
s.run("what is a large language model?")
API 参考:SearxSearchWrapper

工具

您还可以将此封装器加载为工具(与代理一起使用)。

您可以使用以下方式执行此操作

from langchain.agents import load_tools
tools = load_tools(["searx-search"],
searx_host="https://127.0.0.1:8888",
engines=["github"])
API 参考:load_tools

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

如果您想以 json 格式获取带有元数据的结果,可以使用

tools = load_tools(["searx-search-results-json"],
searx_host="https://127.0.0.1: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 参考:SearxSearchResults

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


此页面是否有帮助?