崔少飞
发布于 2026-03-11 / 10 阅读
0
0

Open-webui vs vllm二次开发

vllm开发的优势

1.环境是现成的

2.已经有了当前打包流程

3.已经有一部分写好的代码

4.不影响与ragflow的流式接口

vllm劣势

1.gpu资源有限,在开发时,ragflow的请求会受影响

2.vllm编译时间较长,CPU满负荷运转,执行pip install -e . 初次要15~20分钟

3.vllm属于推理引擎,与模型的关系很近,未来如果想换vllm版本是无法更换的

open web ui 开发优势

1.open web ui开发不影响现有ragflow的请求,开发环境可以选择windows

2.vllm未来升级,只要open ai api不变,就不用处理

3.前端ui本来就要变,业务上本来就要二次开发open web ui的代码

4.一些功能可以直接对接open web ui,如:统计

5.vllm 和 open web ui的代码都是py的,迁移一定是可以的

6.据官网的文档,open web ui有 “滤波功能”可以在数据发送到大型语言模型(LLM)(输入)之前或从LLM返回(输出)后修改数据。
Filter Function | Open WebUI

open web ui开发的劣势

1.之前的代码要迁移,不过涉及的代码也不多,目前只有敏感词过滤的逻辑

2.对open web ui不熟悉

3.open web ui作为ragflow的中转站会多一次请求,中间的流式衔接好不好搞尚未可知,但open web ui有滤波功能,或许可以参考

我的想法:选择open web ui

1.与业务贴合近

2.开发不影响推理引擎

3.开发不必非要在linux上,调试直接在windows上

4.AI辅助开发

对比方向:

1、开放模型接口是否可以转移到openWebUI; /v1/chat/completion

a、rag接入

b、第三方开放接口

2、敏感词过滤业务:在openWebUI和vllm的效率、作用、性能【敏感词至少W的量级】是否差别

3、开发工作量:未完成功能的开发难易度,已完成部分迁移的时间

a、一些功能可以直接对接open web ui,如:统计

4、补充其他

open web ui:
接口:
前台向后台请求的接口是 api/chat/completions

后台返回有两种情况:

第一种:异步返回,返回给前端json串,json串中带有taskid,然后走websocket

地址是:ws://localhost:8080/ws/socket.io/?EIO=4&transport=websocket

第二种:同步返回,返回的流协议是sse

接口中区分以上两种的类型就是不传递 session_id、chat_id、message_id三个中的任意一个

影响:

1.同步返回的sse,不会统计模型的用量、用户的动态,不会记录用户与模型的问答

新会话的创建会先调用 http://localhost:8080/api/v1/chats/new 获取chat_id 和 message_id

当传递chat_id 与 message_id,平台只记录对话数量,但没有记录用户对话与tokens数值

注意点:

1.token统计功能,需要在模型设置界面,将“用量”打钩

敏感词业务:

内置过滤函数,但这个过滤函数是open webui提供的一项功能,可以在

写了一个日志打印的filter,sse只看到了入模型前的数据,没有看到从模型出来的数据。

前端:

用的不是vue,是svelte


评论