开源AI搜索项目LangChain-SearXNG-搜索功能升级

797 阅读5分钟

df24c98c23d4403db3d5f7f784c082ae~tplv-3jr8j4ixpe-aigc_resize_2048_2048.webp

❗️ 重要更新,最近我对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 搜索。(整体还有较大提升空间 🚀)

总结下来主要问题有

  1. 搜索内容准确性不高,实效性不足。完全取决于SearXNG API搜索的相关的前几个网页,同时不能控制选择时间等参数
  2. 搜索召回网页内容耗时太长,同时通过向量化过滤相似性文段需要多次向量化对比耗时也非常长,导致输出搜索答案的时间也非常长。长上下文的情况可能会要2分钟才能回答问题,体验很差

所以基于当前的问题,我决定重新设计LangChain-SearXNG搜索流程,对搜索功能进行一次全新升级

🚀 二. AI+SearXNG v2版本

针对上述问题,我分别对搜索召回流程和搜索响应流程进行重新设计,打造AI+SearXNG v2版本

  1. v2 版本一个主要原则是确保源数据质量,搜索结果尽可能符合搜索关键字,所以精心构建了搜索召回工作流,让大模型参与获取最佳搜索结果。同时由于已经筛选出最佳搜索数据,不需要向量化过滤,可以直接 LLM 让生成结果。(Token 越来越便宜也是一大趋势)
  2. v2 版本还优化了搜索网页加载流程,尽可能快的获取到搜索数据
  3. v2 版本增加搜索过程可视化,在流式返回中,可以动态显示搜索进度,展示更丰富的内容

下面我们来看一下完整的v2版本LangChain工作流

⛓️ AI+SearXNGv2 工作流介绍

searxngv2.jpg
AI+SearXNG v2版本工作流

  • 通过用户输入的参数控制搜索工作流程,主流程分为联网搜索问答模型内搜索问答

  • 模型内搜索问答: 通过获取用户输入chat_history question 构建 Prompt 输入到 LLM 生成问答结果并返回

  • 联网搜索问答: 主要分为三个部分 condense question chain 搜索召回 response synthesizer chain

    1. 如果输入的 chat_history 不为空,则进入condense question chain 工作流,根据聊天上下文生成最合适的搜索 query

    2. 通过 query 进入搜索召回 工作流:分为 searxng search select search result Data processing三个部分

    • 通过 LLM 根据搜索 query 选择最合适的 searxng 搜索参数,调用 searxng api 搜索结果(通常 20 ~ 30 个搜索结果)

    • 再根据上一步搜索到的结果,通过 LLM 进一步筛选出最合适回答该 query 的搜索结果,通常 6 个

    • 根据确定最合适的搜索结果,进行数据处理:检查可访问性->获取 html->生成 Documents ->format 格式化,最终输出问答上下文context

    1. 通过搜索召回的上下文 context和用户输入的chat_history question一起进入response synthesizer chain工作流,最终生成搜索响应

🆚 测试效果

🎨 能力AI+SearXNGv1AI+SearXNGv2智谱 WebSearch360AI 搜索
🚀 响应速度🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
📝 内容质量🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
💦 流式响应1. 搜索过程支持
2.搜索结果支持
1. 搜索过程支持
2.搜索结果支持
1. 搜索过程不支持
2.搜索结果支持
1. 搜索过程支持
2.搜索结果支持

AI+SearXNGv2相较于上个版本从响应速度和内容质量均有明显提升,距离 360AI 搜索更进一步了 💪

详细的测试数据,详见以下开源地址

🍓 三. 开源地址

image.png

GitHub地址: github.com/ptonlix/Lan…

👏 欢迎大家前往Clone项目体验,并提出您宝贵的建议

🚩 项目下一步计划

项目整体效果有所提升,但是针对搜索功能,还可以继续优化升级,这也是我下一步的计划

  • 搭建前端 Web Demo
  • Docker化项目,便于部署传播
  • 支持视频搜索
  • 优化Prompt,支持输出更丰富的内容

💥 参与贡献

欢迎大家贡献力量,一起共建 LangChain-SearXNG,您可以做任何有益事情

  • 报告错误
  • 建议改进
  • 文档贡献
  • 代码贡献
    ...
    👏👏👏