LLM WebUI框架横向锐评:屎里淘金!

纯API调用,最好用的LLM WebUI非LibreChat莫属。

背景

过年期间在家寻找好用的LLM WebUI。本以为是一件容易事情,LLM这么火,少不了好用的LLM框架。

结果被各种框架喂了一星期的屎,最后屎里淘金终于找到了一个轻量好用的LLM WebUI框架LibreChat,个中酸楚不足为外人道……

要求

  • 纯API调用,不运行本地模型
  • 聊天回复快,不能太卡
  • 支持数据库跨端聊天
  • 支持认证,要开放到公网
  • 轻量级,内存占用越低越好
  • (最好有)多用户隔离
  • (最好有)知识库、RAG等功能但不要占用太多内存
  • (最好有)插件系统,支持联网搜索等

本以为这只是最基础的合理要求,没想到市面上的卧龙凤雏就连最基本的聊天功能都做不好!

横评

AnythingLLM

  • 逆天指数
    ★★★★☆
  • 内存占用
    ~500MiB
  • 优点
    无从谈起,根本没用上
  • 缺点

    • 流程逆天
      开局强制配置API KEY,否则进不去主页面(我就没进去)。
    • 功能不全
      配置OPENAI的API必须是官方API,不能自定义Endpoint。
    • 老设备没人权
      文档没提示配置要求,但真正运行起来会莫名报错。一番查询最后才发现,这个框架完全不兼容不支持AVX2指令的旧CPU,且没有任何备选方案。欣赏一下Issues中其他用户的吐槽

Lobe Chat

  • 逆天指数
    ★★★★★
  • 内存占用
    ~600MiB
  • 优点

    • 操作习惯
      国人开发的框架,UI最符合国人习惯。
    • 配置页面
      API KEY配置方便,有多种插件可选。
    • 多用户
      支持多用户,但每个用户需要自行配置API KEY。
    • Serverless
      支持Serverless方式在Vercel+Cloudflare上免费部署。
    • 功能全面
      支持插件商店,支持计费。
  • 缺点

    • 部署困难
      无内置鉴权,想正确部署需要数十个环境变量。如果有洁癖不想在服务器上运行奇怪的.sh脚本,还想用docker compose便捷管理容器,没一整天功夫根本跑不起来。
    • 内存占用高
      过去以轻量化、内存占用低而受欢迎的框架,现在光本地运行起来就要600MiB内存。
    • 界面花哨
      大量运用花哨特效不顾用户体验,在被喷后精简了部分特效的情况下仍然非常卡顿,浏览器内存占用数G并可能有内存泄漏问题。
    • Serverless鸡肋
      支持Serverless部署,但Vercel的免费容量也就够0.5个用户的日常使用。
    • 功能失效
      中止模型输出的按钮点击无效,不是反应慢而是完全停不下来。最夸张的一次遇到了Deepseek R1抽风,一次性深度思考了几十万字都停不下来,单一条回复就烧了3块钱……
    • 响应迟缓
      设置里支持从不走后端转发而直接浏览器端发送。但无论怎么设置仍然响应迟缓,比正常的响应至少慢8秒,相较于Dify和LibreChat慢的一批,不知道在卡什么。
    • 逆天Bug
      后端反复拉取Github Changelog无法禁用,还不能简单地全局代理,否则所有API Endpoint都会走代理更慢。作者还觉得一切正常不打算修。更离谱的是在大陆部署,拉不到Github Changelog就会让前端页面加载卡死。并非是Changelog那一小部分区域卡死,而是整个页面请求失败,甚至静态资源请求超时(SSR)。

幽默官方甚至觉得SSR能加速页面响应

为了优化性能,LobeChat使用了Next.js的SSR功能,实现了快速的页面加载和响应时间。

这么复杂的页面让SSR来算?我看正是因为用了SSR才导致连静态资源都超时,才导致页面这么卡!

本来以为Serverless加载慢是正常的,换本地部署就快了。结果没想到在本地连Serverless也不如,能打开首页就算胜利。


Dify

  • 逆天指数
    ★☆☆☆☆
  • 内存占用
    ~2GiB
  • 优点

    • 支持可视化工作流构建。
    • 支持API调用。
    • 支持批量调用。
    • 支持嵌入为其他网页的Widget聊天。
    • 插件支持较好。
    • 聊天响应快,非常快。
  • 缺点

    (针对旧版本v0.7.3 20240903,新版情况可能已经发生变化)
    Dify是工作流框架,不是LLM WebUI,不是一个赛道,但当作WebUI也能用。
    • 内存占用高
      和聊天不相干的功能太多导致内存占用太高。
    • 聊天能力差
      重写、重新生成、分叉等聊天功能都没有。
    • 无移动端适配
      手机用不了,或者说勉强能用。
    • 无用户隔离
      为了推它的商业版阉割了多用户隔离功能,除了聊天记录以外所有用户都共享。API不支持多渠道,想添加多个API渠道只能在前面套一层One API做渠道聚合、模型重命名、请求转发。

Open WebUI

  • 逆天指数
    ★★★☆☆
  • 内存占用
    ~500MiB
  • 优点
    勉强能用,同行衬托下也勉强算及格。

    • 聊天
      支持重写,支持同时跟多个模型聊天。
    • 多用户
      支持多用户,支持用户组配置模型访问权限。
  • 缺点

    • 内存占用高
      强行集成Ollama、RAG,镜像和内存占用非常大。
    • 响应迟缓
      界面的所有按钮都慢半拍。其他功能也就罢了,核心的聊天延迟5秒起步,就算是Python写的也不至于这么卡。对比Dify、LibreChat根本没得玩。一个搞聊天的框架,核心功能这么卡还搞什么Ollama、RAG,真是舍本逐末。
    • 权限难配置
      支持用户组配置模型访问权限,但不能根据渠道统一配置,只能手动逐个模型配置,配合慢半拍的界面真是食屎级体验。
    • 提示词不足
      对聊天标题进行AI总结的提示词没有国际化,会总结出英文标题。需要自行设置提示词来覆盖默认提示词。

LibreChat

  • 逆天指数
    ☆☆☆☆☆
  • 内存占用
    (稳定后)200~300MiB
  • 优点
    LLM WebUI界唯一真神。

    • 轻量化
      不往镜像里强行塞垃圾,每个独特功能(DB/全文搜索/RAG/Vector DB)都各自独立镜像,不需要可以直接砍。全部署600MiB内存,稳定后就300MiB内存,最简部署就200MiB内存。Node.JS技术栈,估计换Deno还能更省内存更快。
    • 聊天功能丰富
      支持重写、支持重新生成、支持续写、支持聊天的树状分叉……在聊天方面功能属所有框架最全。
    • 功能简洁
      界面简洁,没有花里胡哨的特效导致卡顿。专注核心聊天需求,也能兼容Ollama等API接入(本来正确的思路就是提供OpenAI兼容API接入,而不是往镜像里塞Ollama的垃圾)
    • 速度快
      聊天响应非常快。界面操作略慢但也还可以。
    • 文档清晰
      框架依赖的MongoDB新版同样需要支持AVX2指令的CPU,但文档中明确提示可以替换为旧版MongoDB,运行一切正常。
  • 缺点

    • 无用户隔离
      支持多用户登录但没有权限系统,内置的渠道被所有用户共享。
    • 插件少
      插件功能有点弱,提供的插件数量较少。
    • 配置门槛高
      渠道配置有一点复杂但不繁琐,得通过配置文件设置,需要找到好的模板对照修改。通过WebUI无法配置第三方渠道,但通过配置文件设置之后挺好用。
 喜欢文章
头像