one-api
one-api copied to clipboard
令牌验证失败
例行检查
- 我已确认目前没有类似 issue
- 我已确认我已升级到最新版本
- 我已完整查看过项目 README,尤其是常见问题部分
- 我理解并愿意跟进此 issue,协助测试和提供反馈
- 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
问题描述 额度充足,请求频率在20qps左右,有一定比例报错“令牌验证失败”
相关截图 返回结果里,报错
麻烦发一下相关的日志,找错误请求前 CacheGetTokenByKey failed
的日志
mysql 链接数上限了
我的也是提示额度用尽了 怎么解决?
[SYS] 2024/03/20 - 18:01:45 | CacheGetTokenByKey failed: database is locked
[ERR] 2024/03/20 - 18:01:45 | 2024032018014259211687060054307 | 令牌验证失败
[ERR] 2024/03/20 - 18:01:45 | 2024032018013776459886645850445 | error consuming token remain quota: database is locked
[INFO] 2024/03/20 - 18:01:45 | 2024032018013776459886645850445 | record consume log: userId=2, channelId=1, promptTokens=878, completionTokens=8, modelName=gpt-3.5-turbo, tokenName=AI Copilot, quota=226, content=模型倍率 0.25,分组倍率 1.00,补全倍率 3.00
[SYS] 2024/03/20 - 18:01:48 | CacheGetTokenByKey failed: database is locked
[ERR] 2024/03/20 - 18:01:48 | 2024032018014565420143008921518 | 令牌验证失败
我也提示了。从5.10 升级到 6.2
用的是SQLite
sqlite并发太差,建议MySQL
使用MySQL、把日志功能关闭了,并且环境变量设置了10分钟计算额度,也还会报错
同上,请问这个怎么解决?跑一点提示令牌验证失败:
这是后台日志:
| 2024/04/05 22:27:18 /build/model/user.go:392 SLOW SQL >= 200ms
one-api | [2430.527ms] [rows:1] SELECT `username` FROM `users` WHERE id = 1
one-api | [SYS] 2024/04/05 - 22:27:18 | CacheGetTokenByKey failed: database is locked
one-api | [ERR] 2024/04/05 - 22:27:18 | 2024040522271528914005628997171 | 令牌验证失败
one-api |
one-api | 2024/04/05 22:27:18 /build/model/cache.go:34 database is locked
one-api | [3003.265ms] [rows:0] SELECT * FROM `tokens` WHERE `key` = "TOdM4nYhI6kvbZ5P51EcF16cCbBf49B4Bc6bEd1f55F68429" ORDER BY `tokens`.`id` LIMIT 1
one-api | [GIN] 2024/04/05 - 22:27:18 | 2024040522271528914005628997171 | 401 | 3.003467193s | 172.23.148.83 | POST /v1/chat/completions
以及 docker 配置文件(没有用 MySQL )
version: '3.4'
services:
one-api:
image: justsong/one-api:latest
container_name: one-api
...
depends_on:
- redis
- db
redis:
image: redis:latest
container_name: redis-one-api
restart: always
db:
image: mysql:8.2.0
...
当前并发量还不算高,并发数为 8 重试 3 次。
手动指定了渠道,部分时刻会抛出其他错误:
Request Failed(1):令牌验证失败 (request id: 2024040523024380514227068513478)t/s]
Request Failed(1):令牌验证失败 (request id: 2024040523024466107860960056915)
Request Failed(1):令牌验证失败 (request id: 2024040523024436408812505164584)
Request Failed(1):普通用户不支持指定渠道 (request id: 2024040523024326288005160994610)
后续换 MySQL 看有没错误。