-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add Proxy channel type and relay mode #1678
Conversation
Your Render PR Server URL is https://one-api-pr-1678.onrender.com. Follow its progress at https://dashboard.render.com/web/srv-cqe842lds78s738jotog. |
Your Render PR Server URL is https://oneapi-pr-1678.onrender.com. Follow its progress at https://dashboard.render.com/web/srv-cqe843dds78s738jottg. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1678 +/- ##
========================================
+ Coverage 1.29% 1.30% +0.01%
========================================
Files 142 144 +2
Lines 10070 10132 +62
========================================
+ Hits 130 132 +2
- Misses 9926 9986 +60
Partials 14 14 ☔ View full report in Codecov by Sentry. |
Add the Proxy channel type and relay mode to support proxying requests to custom upstream services.
Thx~ |
这个方法,oneapi里面没有日志记录 |
确实没加日志,因为日志里也没什么有用信息,既没有模型,也没有金额,tokens 怎么计算也不知道,最多就只能记一个谁在什么时候掉用过。 |
这样做有个问题啊老哥,目前proxy渠道不支持自定义模型。名称:One API
|
@SuMiaoALi 不是通过模型名来选择 proxy,而是通过 URL 中的 因为 proxy 无法预知 body 的格式,所以没法读取模型名字。 |
这个日志还是有需要的,如果没有日志,那这个转发感觉都没什么必要了,都不知道谁用了,用了多少次,那直接连接也差不多了 |
先记下了,回头加一个 |
那这样子的话,还是很难使用啊?毕竟现在很多框架对模型的调用都是内部集成的一致的,现在这样以channel直接指定调用的话,也还是无法做到一致性把。 在我看来,one-api是用来代理模型调用的,遵从OpenAI的标准来看,所有的调用,都会有一个model字段来标识需要调用的模型,这里是否可以出这样的基于约定大于配置的原则,取请求体的里的直接子级字段model,然后就与其他的渠道代理方式保持一致性。 现在我主观看来,这样的proxy是很鸡肋的 |
可以改一下,如果 body 里有 model 就按 model 解析。 |
Add the Proxy channel type and relay mode to support proxying requests to custom upstream services.
背景
前置讨论: #1398
简而言之,给 one-api 提供一个将请求原样转发的 channel,以适配各种格式不同的插件。
用法
创建一个 Proxy Channel,代理地址(
BASE_URL
)就是转发目标,记下channel id
请求
<YOUR_ONEAPI_GATEWAY>/v1/oneapi/proxy/<CHANNEL_ID>/<TARGET_URL_PATH>
请求会自动转发给
<BASE_URL>/<TARGET_URL_PATH>
,保留 headers 和 method。closes #1398 #1397
测试截图
密钥有就填,没有就随便乱填吧
用 nc 在本地起了一个服务器扮演上游,然后用 postman 给 oneapi 发送请求,请求体被正确转发给了上游。