github MartialBE/one-hub v0.11.3

latest releases: v0.13.1, v0.13.0, v0.12.4...
3 months ago

变更日志

新增功能

  • 添加了一个cf代理用于下载图片
  • 渠道中允许设置预扣费类型: 正常计算/图像不计算/完全不计算。

其他

  • 增加了其他供应商的 图像 tokens计算。

修复

  • 修复订单列表状态筛选器显示错误
  • 修复使用Claude API调用报错时,因为类型错误,导致的panic
  • 修复Claude API预扣费计算tokens错误
  • 修复gpt-4o-mini预扣费计算图像tokens错误
  • 修复计算图片tokens时,有个地方未使用后台配置的代理进行下载图片的问题。

关于预扣费类型

之前需要预扣费计算tokens基于两个原因:

  1. stream下API接口不会返回本次请求使用的tokens,所以必须要程序来计算。
  2. 防止用户余额不够导致的超出使用。

但是现在越来越多供应商都会在请求中携带本次使用的tokens,而程序最终扣费时,使用的也是API返回的tokens, 所以程序计算tokens只是为了防止用户余额不够的情况了。所以这个计算我认为是可有可无的了。

而且计算tokens时,如果有图像,程序需要去计算图像的长宽,这会消耗大量资源,并且还会阻塞请求。(甚至会有安全问题)

所以,在OpenAI/Claude/Gemini这些官方接口,推荐直接关闭 图像计算,个人使用推荐直接关闭所有计算。其他对接第三方厂商的,如果他们的程序不支持stream_options参数,请不要关闭。

But: 关闭后会有以下副作用:

  1. 在stream模式下,用户传递了图像,但是在未请求完毕之前就终止了,这时候系统无法获取到API的用量,你会亏损输入tokens。
  2. 用户在并发下,由于图像未计算,如果余额正好够本次输入文字,那么请求后会负更多金额。

所以,我又加了个cf的图像下载代理,在:https://github.com/MartialBE/get-image-by-cf 中。
它会在URL获取图片时,只返回图片文件前16kb的数据,用于检测图片的长宽。顺便也解决了恶意图片导致的IP泄漏的问题。

But,是的还有But, 因为有些网站对cf进行了限制,所以不一定能下载图片成功。

Don't miss a new one-hub release

NewReleases is sending notifications on new releases.