Skip to main content
在 GitHub 上打开

SearxNG Search 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 参考:SearxSearchWrapper

工具

您还可以将此包装器作为 Tool 加载(与 Agent 一起使用)。

您可以使用以下方法执行此作:

from langchain.agents import load_tools
tools = load_tools(["searx-search"],
searx_host="http://localhost:8888",
engines=["github"])
API 参考: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 参考:SearxSearchResults

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