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 实例的主机传递给包装器:
- 创建实例时的命名参数
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 参考:SearxSearchWrapper
工具
您还可以将此包装器加载为工具(以与代理一起使用)。
你可以通过以下方式实现:
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
有关工具的更多信息,请参见 此页面。