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 实例的主机传递给封装:
- 创建实例时使用名为
searx_host的参数。 - 导出环境变量
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
工具
您也可以将此封装加载为工具(与 Agent 一起使用)。
您可以通过以下方式完成:
from langchain_community.agent_tool_kits.load_tools import load_tools
tools = load_tools(["searx-search"],
searx_host="http://localhost:8888",
engines=["github"])
请注意,我们可以 选择性地 传递自定义引擎来使用。
如果您想获得带元数据的 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
有关工具的更多信息,请参阅 本页面。