NeatChat现已支持从上游获取模型列表(OpenAI格式)v1.1.17

开发NeatChat基于一些巧合

不管现在其他webui都强大到什么地步了,属于NC(NextChat或者NeatChat)的改进该做还是得做,对于服务器性能较弱的用户,或者Vercel平台,NC仍然有它自己的价值。

我在NeatChat的v1.1.17版本新增了获取模型列表的功能,此版本也顺带恢复了对官方FC插件的支持。从上游获取模型这个功能可能对于其他webui来说仅仅是一个不起眼的按钮,但是对于NC却有很大的意义。

我觉得官方原来的CUSTOM_MODELS变量不够优雅,这个问题来源于这里【更新至v1.1.18】已去除所有NextChat广告内容,还你一个更清爽的NeatChat(精简优化版) - #338,来自 holzora

现在我把这个变量从服务端同步到客户端,你仍然可以像之前那样在服务器上设置变量,但是最终是以客户端的自定义变量为准:

在此基础上,我在右侧加了一个按钮,这个按钮主要的逻辑就是修改从服务端传递到客户端的CUSTOM_MODELS变量。如果你在服务端设置了BASE_URL和OPENAI_API_KEY,它就会从服务端请求模型列表(openai格式),如果你勾选了自定义接口:


它也会从客户端请求模型列表。

获取到模型列表之后,就会存在本地,后续直接从缓存中读取:


你可以点击重新获取模型以刷新本地缓存。

最下方你也可以自定义模型名,这对于一些不支持从api获取模型列表的逆向项目是有用的:

最重要的一点,我重新定义了CUSTOM_MODELS中@之后的变量,原来你可以使用gpt-4o@OpenAI,其中OpenAI作为provides存在,也约束了请求方式是openai格式,但是当后来越来越多的模型都以openai格式作为规范,再@openai就显得很奇怪,也会出现一些问题。现在,我建议在我的版本中,使用@模型类别这个方式来约束模型。(当然原来的方式仍然保留,只是扩充了@的用法)

当然你不用自己操作,客户端我已经做了自动配置,我只是建议在服务端设置变量的时候就@类别,后续我将围绕这个类别做一些更新。(后面我会在我的仓库中更新具体的类别)

模型会根据@的类别去匹配相应的头像,从此,你再也不用担心有些模型的头像匹配不上了,也省去了开发者后续适配很多小模型的功夫。

这是因为客户端可以自己修改匹配规则,每个关键词以|分割:

匹配相应规则之后,对应的模型就根据@之后的类别去显示头像,即使你是gpt模型,只要@DeepSeek,也将会有DeepSeek的头像,这样举例是为了说明客户端具有完全自由的控制权,而不必去修改服务端。

后续我还会在获取模型列表的位置加上模型的subtitle,或者给模型加tag等功能,这是我从QAbot-zh/ChatGPT-Next-Web看到的一些创意,这也是另外一个很优秀的NC二创仓库。

除了可以获取模型列表,NeatChat还有引用Lobe Icons、兼容官方插件、完全适配折叠思考、手机端UI优化等不错的特性。(当然这个版本还暂未完成)

此版本可能还有一些问题,不过大体上已经完善,欢迎各位NC用户参观我的仓库进行部署或者提交PR(readme已很久没有更新,请勿在意)。

后续如果还有时间,我就主要研究NC适配RAG的可能性了,多用户登录和同步问题就稍稍搁置了。

=================================================================
v1.1.18最新进展,想着既然模型都列出来了,就顺手做个测试算了(目前仅支持客户端测试,服务端还暂不支持,后面会慢慢更新,另外此版本的移动端体验仍然是灾难 :bili_001:

后面确定会支持多渠道,但是渠道太多了,我能维护的渠道可能也就几个,总不能塞个newapi进去吧 :rofl:

62 个赞

太强了 必须支持
虽然open webui很强 但我还是挺喜欢nc这种开箱即用的方式 ! 不需要登录

6 个赞

顶顶:smiling_face_with_three_hearts::smiling_face_with_three_hearts:

3 个赞

支持一下

2 个赞

支持下大佬

2 个赞


左边显示不全

1 个赞

佬太强了,支持支持

1 个赞

支持一下

2 个赞

大佬太强了!

2 个赞

能否把多余的模型屏蔽?比如我没有官方的,就让他不显示,或者我可以定义只显示哪些模型,或者干脆从上级api获取到的模型,可定制化显示

4 个赞

感谢大佬!解决了一个刚需的问题!

2 个赞

越来越好了

2 个赞

太强了,支持一下

2 个赞

帅字送给你

2 个赞

填写变量-all

3 个赞

佬,为啥去掉了图片上传功能?有时候也需要用添加图片功能啊,比如翻译图片,截图给AI等

2 个赞

支持一下:heart_eyes::heart_eyes:

2 个赞

请问这个变量在哪里填写?

2 个赞

你的其他变量名称在哪里填这个就在哪里,变量名称CUSTOM_MODELS

2 个赞

这个好!

1 个赞