使用Java+Qwen+SearXNG构建本地AI搜索问答

背景介绍

前段时间,我们使用SerpAPI+Qwen实现了网络搜索问答(参考:https://blog.csdn.net/weixin_44455388/article/details/137340000?spm=1001.2014.3001.5501),拓展大模型的网络搜索能力,但存在一个问题就是SerpAPI每月只能使用100次的免费调用。

前两天在GitHub上看到一个名叫FreeAskInternet的框架(参考:https://blog.csdn.net/weixin_44455388/article/details/137683895?spm=1001.2014.3001.5501),调用SearXNG搜索(本地运行)在多个搜索引擎上进行搜索,可以实现完全免费、私人和本地运行的搜索聚合器。

作为一个Java程序员,博主借鉴FreeAskInternet的思路,使用Java+Qwen+SearXNG构建了本地AI搜索问答,相比原来使用SerpAPI,使用上将不受限制。

SearXNG介绍

SearXNG 是一个免费的互联网元搜索引擎,它聚合了来自各种搜索服务和数据库的结果,但摆脱了隐私追踪 —— 用户行为既不会被引擎跟踪也不会被分析。

在这里插入图片描述

我们可以选择搭建一个自己的搜索引擎,也可以网络找一个可以使用的站点。SearXNG的搭建也非常简单,可以采用docker进行部署,这里我就不详细展开了,大家感兴趣的可以自行去搜索教程。我这里是找的国内可用的站点。

实现思路

整体思路与FreeAskInternet框架相似:

  1. 首先是后台调用SearXNG搜索(本地运行)在多个搜索引擎上进行搜索。
  2. 抓取搜索结果链接内容并传递给LLM,让LLM根据该内容作为参考回答用户问题。
  3. 将答案以流式传输。

SearXNG提供了查询API,参考:Search API — SearXNG Documentation (2024.4.13+1746eecf2)

在这里插入图片描述

代码实现

  • 构建SearXAPI对象,实现查询方法:
/**
 * 搜索
 * @param question
 * @return
 */
public String search(String question) {
   
   
    OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(60, TimeUnit.SECONDS)
            .writeTimeout(60, TimeUnit.SECONDS)
            .readTimeout(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值