❗️ 重要更新,最近我对LangChain-SearXNG搜索功能进行全新升级,搜索接口升级到v2版本,支持更快搜索更精准问答🚀🔥💥
今天我们就来聊聊全新的v2版本功能详情,介绍一下我对AI搜索新理解
这是LangChain-SearXNG搜索引擎系列的第5篇文章,前面几篇文章详情如下: (感兴趣的朋友可以跳转阅读)
基于SearXNG+LangChain的实现的AI搜索引擎
基于SearXNG+LangChain的实现的AI搜索引擎(2)
LangChain-SearXNG配置文件热加载方案介绍
开源搜索引擎LangChain-SearXNG新增支持智谱WebSearch并评测对比
❓一. 为什么升级
我们先来聊聊为什么我需要对LangChain-SearXNG搜索功能进行升级,其实就是说明当前版本的有哪些不足。 在上期评测的文章开源搜索引擎LangChain-SearXNG新增支持智谱WebSearch并评测对比中,我有分析过当前版本一些不足
AI+SearXNG是通过 SearXNG 召回网页数据,再向量化过滤相似性文段后作为上下文再发给大模型,整体耗时最长在于向量化过滤相似性文段(可以进一步优化)。内容质量近似于智谱WebSearch,主要取决于 SearXNG 搜索的准确性和实时性,需要想办法提升搜索能力 SearXNG 搜索。(整体还有较大提升空间 🚀)
总结下来主要问题有
- 搜索内容准确性不高,实效性不足。完全取决于SearXNG API搜索的相关的前几个网页,同时不能控制选择时间等参数
- 搜索召回网页内容耗时太长,同时通过向量化过滤相似性文段需要多次向量化对比耗时也非常长,导致输出搜索答案的时间也非常长。长上下文的情况可能会要2分钟才能回答问题,体验很差
所以基于当前的问题,我决定重新设计LangChain-SearXNG搜索流程,对搜索功能进行一次全新升级
🚀 二. AI+SearXNG v2版本
针对上述问题,我分别对搜索召回流程和搜索响应流程进行重新设计,打造AI+SearXNG v2版本
- v2 版本一个主要原则是确保源数据质量,搜索结果尽可能符合搜索关键字,所以精心构建了搜索召回工作流,让大模型参与获取最佳搜索结果。同时由于已经筛选出最佳搜索数据,不需要向量化过滤,可以直接 LLM 让生成结果。(Token 越来越便宜也是一大趋势)
- v2 版本还优化了搜索网页加载流程,尽可能快的获取到搜索数据
- v2 版本增加搜索过程可视化,在流式返回中,可以动态显示搜索进度,展示更丰富的内容
下面我们来看一下完整的v2版本LangChain工作流
⛓️ AI+SearXNGv2 工作流介绍
AI+SearXNG v2版本工作流
-
通过用户输入的参数控制搜索工作流程,主流程分为
联网搜索问答和模型内搜索问答 -
模型内搜索问答: 通过获取用户输入chat_historyquestion构建 Prompt 输入到 LLM 生成问答结果并返回 -
联网搜索问答: 主要分为三个部分condense question chain搜索召回response synthesizer chain-
如果输入的 chat_history 不为空,则进入
condense question chain工作流,根据聊天上下文生成最合适的搜索 query -
通过 query 进入
搜索召回工作流:分为searxng searchselect search resultData processing三个部分
-
通过 LLM 根据搜索 query 选择最合适的 searxng 搜索参数,调用 searxng api 搜索结果(通常 20 ~ 30 个搜索结果)
-
再根据上一步搜索到的结果,通过 LLM 进一步筛选出最合适回答该 query 的搜索结果,通常 6 个
-
根据确定最合适的搜索结果,进行数据处理:检查可访问性->获取 html->生成 Documents ->format 格式化,最终输出问答上下文
context
- 通过
搜索召回的上下文context和用户输入的chat_historyquestion一起进入response synthesizer chain工作流,最终生成搜索响应
-
🆚 测试效果
| 🎨 能力 | AI+SearXNGv1 | AI+SearXNGv2 | 智谱 WebSearch | 360AI 搜索 |
|---|---|---|---|---|
| 🚀 响应速度 | 🌟🌟🌟 | 🌟🌟🌟🌟 | 🌟🌟🌟🌟🌟 | 🌟🌟🌟🌟 |
| 📝 内容质量 | 🌟🌟🌟 | 🌟🌟🌟🌟 | 🌟🌟🌟 | 🌟🌟🌟🌟🌟 |
| 💦 流式响应 | 1. 搜索过程支持 2.搜索结果支持 | 1. 搜索过程支持 2.搜索结果支持 | 1. 搜索过程不支持 2.搜索结果支持 | 1. 搜索过程支持 2.搜索结果支持 |
AI+SearXNGv2相较于上个版本从响应速度和内容质量均有明显提升,距离 360AI 搜索更进一步了 💪
详细的测试数据,详见以下开源地址
🍓 三. 开源地址
GitHub地址: github.com/ptonlix/Lan…
👏 欢迎大家前往Clone项目体验,并提出您宝贵的建议
🚩 项目下一步计划
项目整体效果有所提升,但是针对搜索功能,还可以继续优化升级,这也是我下一步的计划
- 搭建前端 Web Demo
- Docker化项目,便于部署传播
- 支持视频搜索
- 优化Prompt,支持输出更丰富的内容
💥 参与贡献
欢迎大家贡献力量,一起共建 LangChain-SearXNG,您可以做任何有益事情
- 报告错误
- 建议改进
- 文档贡献
- 代码贡献
...
👏👏👏