变更日志
新增功能
- 添加了一个
cf
代理用于下载图片 - 渠道中允许设置预扣费类型: 正常计算/图像不计算/完全不计算。
其他
- 增加了其他供应商的 图像 tokens计算。
修复
- 修复订单列表状态筛选器显示错误
- 修复使用
Claude API
调用报错时,因为类型错误,导致的panic
- 修复
Claude API
预扣费计算tokens
错误 - 修复
gpt-4o-mini
预扣费计算图像tokens
错误 - 修复计算图片tokens时,有个地方未使用后台配置的代理进行下载图片的问题。
关于预扣费类型
之前需要预扣费计算tokens
基于两个原因:
stream
下API接口不会返回本次请求使用的tokens
,所以必须要程序来计算。- 防止用户余额不够导致的超出使用。
但是现在越来越多供应商都会在请求中携带本次使用的tokens
,而程序最终扣费时,使用的也是API返回的tokens, 所以程序计算tokens只是为了防止用户余额不够的情况了。所以这个计算我认为是可有可无的了。
而且计算tokens时,如果有图像,程序需要去计算图像的长宽,这会消耗大量资源,并且还会阻塞请求。(甚至会有安全问题)
所以,在OpenAI
/Claude
/Gemini
这些官方接口,推荐直接关闭 图像计算,个人使用推荐直接关闭所有计算。其他对接第三方厂商的,如果他们的程序不支持stream_options
参数,请不要关闭。
But: 关闭后会有以下副作用:
- 在stream模式下,用户传递了图像,但是在未请求完毕之前就终止了,这时候系统无法获取到API的用量,你会亏损输入tokens。
- 用户在并发下,由于图像未计算,如果余额正好够本次输入文字,那么请求后会负更多金额。
所以,我又加了个cf的图像下载代理,在:https://github.com/MartialBE/get-image-by-cf 中。
它会在URL获取图片时,只返回图片文件前16kb的数据,用于检测图片的长宽。顺便也解决了恶意图片导致的IP泄漏的问题。
But,是的还有But, 因为有些网站对cf进行了限制,所以不一定能下载图片成功。