Comments (8)
我理解,服务请求过来时,应该是按模型来进行渠道获取的。
重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
对应的,key 是模型名。value 是期望发给上游的模型名。
因此,value 里的模型名,应该不需要在模型下拉框里选择,而是可以随意填写。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
对应的,key 是模型名。value 是期望发给上游的模型名。
因此,value 里的模型名,应该不需要在模型下拉框里选择,而是可以随意填写。
改动前的设计是这样的:
- 管理员更新渠道时,会把所有的【模型】写入 abilities 表
- 处理前端请求,首先通过 middleware 将 request 中的 model 根据 【重定向】改写为 value
- 然后从 abilities 表中根据改写后的 model 查询渠道(channel)
所以,重定向的 keys 和 values 都必须写入【模型】字段,才能正常工作(能被写入 abilities 表)。
这在概念上我觉得很容易产生混淆。
改动后
渠道(channel)的【模型】就是指该渠道能够支持的模型。
如果想要为前端扩展支持的模型范围,则通过【重定向】来设置。【重定向】的 keys 仅对前端生效,values 必须出现在【模型】列表内。
我觉得这样的概念是最简单易懂的。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。
重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。
所以分歧点在于:
- 【模型】定义的是面向前端的模型,还是后端 LLM 所支持的模型?
- 【重定向】指的是前端重定向,还是后端 LLM 重定向?
从代码来说,重定向发生于中间件,早于 dispather。以及查询渠道时是基于 abilities 表,而 abilities 表的内容来自于【模型】。因此我倾向于认为【重定向】是前端重定向,【模型】是定义后端所支持的模型。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。所以分歧点在于:
- 【模型】定义的是面向前端的模型,还是后端 LLM 所支持的模型?
- 【重定向】指的是前端重定向,还是后端 LLM 重定向?
从代码来说,重定向发生于中间件,早于 dispather。以及查询渠道时是基于 abilities 表,而 abilities 表的内容来自于【模型】。因此我倾向于认为【重定向】是前端重定向,【模型】是定义后端所支持的模型。
或者说,它压根不叫重定向,就叫个重命名算了。
从产品设计还是代码简易性上说,如果希望增加一个模型名,应该是通过自定义模型(并且,自定义模型应该可以全局配置,并且直接可以在渠道里选择,而不是每个渠道里单独通过字符串加,这样才方便复用,也不容易填错)
如果是直接把json字符串key,就直接当作模型,感觉非常奇怪。而且会有2个逻辑,1个是取下拉选择的模型,1个是json的模型,就变复杂了。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。所以分歧点在于:
- 【模型】定义的是面向前端的模型,还是后端 LLM 所支持的模型?
- 【重定向】指的是前端重定向,还是后端 LLM 重定向?
从代码来说,重定向发生于中间件,早于 dispather。以及查询渠道时是基于 abilities 表,而 abilities 表的内容来自于【模型】。因此我倾向于认为【重定向】是前端重定向,【模型】是定义后端所支持的模型。
或者说,它压根不叫重定向,就叫个重命名算了。 从产品设计还是代码简易性上说,如果希望增加一个模型名,应该是通过自定义模型(并且,自定义模型应该可以全局配置,并且直接可以在渠道里选择,而不是每个渠道里单独通过字符串加,这样才方便复用,也不容易填错)
如果是直接把json字符串key,就直接当作模型,感觉非常奇怪。而且会有2个逻辑,1个是取下拉选择的模型,1个是json的模型,就变复杂了。
我也赞同应该有一个全局前端重定向的设计,在渠道里做这个是有点奇怪。
所以改动前的原始设计**是这样的:
改动前的代码会容易导致一个误操作,就是如果【重定向】的 keys 如果没有在【模型】里定义,这个【重定向】实际上是不生效的,但是不会有任何提示。
from one-api.
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。所以分歧点在于:
- 【模型】定义的是面向前端的模型,还是后端 LLM 所支持的模型?
- 【重定向】指的是前端重定向,还是后端 LLM 重定向?
从代码来说,重定向发生于中间件,早于 dispather。以及查询渠道时是基于 abilities 表,而 abilities 表的内容来自于【模型】。因此我倾向于认为【重定向】是前端重定向,【模型】是定义后端所支持的模型。
或者说,它压根不叫重定向,就叫个重命名算了。 从产品设计还是代码简易性上说,如果希望增加一个模型名,应该是通过自定义模型(并且,自定义模型应该可以全局配置,并且直接可以在渠道里选择,而不是每个渠道里单独通过字符串加,这样才方便复用,也不容易填错)
如果是直接把json字符串key,就直接当作模型,感觉非常奇怪。而且会有2个逻辑,1个是取下拉选择的模型,1个是json的模型,就变复杂了。
重定向需求,我最近也需要到。由于我系统是需要存储对应模型的,但是由于上游模型名经常变(版本之类的),每次都洗数据非常不合理,所以需要重定向操作,前端固定
我理解,服务请求过来时,应该是按模型来进行渠道获取的。 重定向则是在向真正上游发送服务时,将服务的模型名改成新的模型名再发给上游。
我觉得不应该,前端想扩展模型,应该通过增加自定义模型实现。所以分歧点在于:
- 【模型】定义的是面向前端的模型,还是后端 LLM 所支持的模型?
- 【重定向】指的是前端重定向,还是后端 LLM 重定向?
从代码来说,重定向发生于中间件,早于 dispather。以及查询渠道时是基于 abilities 表,而 abilities 表的内容来自于【模型】。因此我倾向于认为【重定向】是前端重定向,【模型】是定义后端所支持的模型。
或者说,它压根不叫重定向,就叫个重命名算了。 从产品设计还是代码简易性上说,如果希望增加一个模型名,应该是通过自定义模型(并且,自定义模型应该可以全局配置,并且直接可以在渠道里选择,而不是每个渠道里单独通过字符串加,这样才方便复用,也不容易填错)
如果是直接把json字符串key,就直接当作模型,感觉非常奇怪。而且会有2个逻辑,1个是取下拉选择的模型,1个是json的模型,就变复杂了。我也赞同应该有一个全局前端重定向的设计,在渠道里做这个是有点奇怪。
所以改动前的原始设计**是这样的:
改动前的代码会容易导致一个误操作,就是如果【重定向】的 keys 如果没有在【模型】里定义,这个【重定向】实际上是不生效的,但是不会有任何提示。
from one-api.
是的,我之前搞错了一点,【重定向】发生在【模型】后,那我关掉吧。
from one-api.
Related Issues (20)
- 支持代理url路径不含v1的模型 HOT 4
- 有人遇到过gemini-1.5-flash返回空包问题吗 HOT 4
- 国产化
- sqlite数据库迁移到mysql数据库出现字段类型不一致的问题,token下的models字段为啥在mysql下被限定为了191的长度 HOT 1
- 希望饱和时能显示具体哪个模型饱和
- 请问,是否需要帮忙添加接口测试
- 点击测试后,程序直接退出
- 文心一言 ERNIE-Lite-8K-0922调用失败 HOT 2
- 能不能加上tiktoken的离线加载 HOT 2
- v0.6.6 Berry 主题不兼容 页面会白屏 HOT 5
- 请求支持谷歌Vertex AI HOT 1
- docker版本dns解析超时 HOT 1
- 讯飞3.5无法支持function calling
- 对于模型无可用渠道时应返回404而不是503
- one api 接入 dify 在联通的情况下,报错
- 调用阿里云 通义千问api报错 HOT 3
- docker 版的怎么没有添加渠道的功能? HOT 2
- 希望增加对百度开物的支持。
- 根据环境变量设置root初始密码 HOT 2
- relay error (channel id 2, user id: 1): Open api daily request limit reached HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from one-api.