跳到主要内容
本页介绍如何在 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://:8888 这应该返回一个包含结果的 JSON 对象。

包装器

实用工具

要使用封装器,我们需要在创建实例时通过以下方式将 SearxNG 实例的主机传递给封装器:
  1. 使用命名参数searx_host
  2. 导出环境变量SEARXNG_HOST
您可以使用封装器从 SearxNG 实例获取结果。
from langchain_community.utilities import SearxSearchWrapper
s = SearxSearchWrapper(searx_host="https://:8888")
s.run("what is a large language model?")

工具

您还可以将此封装器作为工具加载(与 Agent 一起使用)。 您可以这样做:
from langchain_community.agent_toolkits.load_tools import load_tools
tools = load_tools(["searx-search"],
                    searx_host="https://:8888",
                    engines=["github"])
请注意,我们可以选择性地传递自定义引擎来使用。 如果您想获取包含元数据的json格式结果,可以使用:
tools = load_tools(["searx-search-results-json"],
                    searx_host="https://: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"]
                                })
有关工具的更多信息,请参阅此页面
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.