SearxNG Search API
此页面介绍了如何在LangChain中使用SearxNG搜索API。 它分为两个部分:安装和设置,然后是针对特定SearxNG API封装的参考。
安装与设置¶
使用包装器与 公共 searx 实例 一起使用是可能的,但这些实例经常不允许 API 访问(请参见下方输出格式说明),并且在请求频率方面有限制。建议选择自托管实例。
Self Hosted Instance:
请参阅 此页面 以获取安装说明。
当您安装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
有关工具的更多信息,请参阅此页面。