chengqian
|
a16436fecc
|
improve(ui):日期时间选择器优化
|
2026-08-11 18:06:23 +08:00 |
|
chengqian
|
fb8f96217d
|
improve(ui):网站名称同步设置
|
2026-08-11 18:05:57 +08:00 |
|
chengqian
|
b5aa971bad
|
improve(ui):落地页优化调整
|
2026-08-11 18:05:01 +08:00 |
|
chengqian
|
01393677f6
|
refactor:重构租户端组件
|
2026-08-10 16:45:09 +08:00 |
|
chengqian
|
4a9fe1a5da
|
improve(login):优化登录页状态判断
|
2026-08-10 13:57:54 +08:00 |
|
qian
|
798aa64918
|
chore:移除多余文件
|
2026-08-08 10:55:59 +08:00 |
|
qian
|
95a6bce0b1
|
feat:开发环境下给后端一个落地页引导
|
2026-08-08 10:23:32 +08:00 |
|
qian
|
d622237048
|
improve(playground):根据key的能力显示可用模型
|
2026-08-08 10:05:24 +08:00 |
|
qian
|
1bd71817f8
|
improve(channel):调整接口更新频率
|
2026-08-08 09:35:49 +08:00 |
|
qian
|
540817a6a7
|
feat(channel):新增渠道调度状态显示
|
2026-08-08 09:09:07 +08:00 |
|
qian
|
bc2f202f4f
|
fix(channel):修复ali百炼渠道路径拼接问题
|
2026-08-08 02:03:31 +08:00 |
|
qian
|
a9f7fe5311
|
type:修改提示信息
|
2026-08-08 02:03:31 +08:00 |
|
qian
|
780cd26be8
|
fix(db):修复数据库查询结果为空的问题
|
2026-08-08 01:19:52 +08:00 |
|
chengqian
|
01459d29ce
|
fix(apikey):修复apikey缓存导致模型不可用的问题
|
2026-08-07 18:14:37 +08:00 |
|
chengqian
|
4f749930d6
|
fix(setup):修复系统初始化故障问题
|
2026-08-07 17:56:13 +08:00 |
|
chengqian
|
3256d84c30
|
fix(apikey):修复api key异步模型越权调用问题
|
2026-08-07 17:43:22 +08:00 |
|
chengqian
|
908dce79f7
|
fix(relay): preserve literal models with effort suffixes
|
2026-08-07 14:08:34 +08:00 |
|
chengqian
|
5a75c2ef98
|
fix:修复关闭维护模式后还显示维护信息的问题
|
2026-08-06 19:18:48 +08:00 |
|
qian
|
800e31b041
|
fix(model):修复模型阶梯价格显示问题
|
2026-08-06 00:27:15 +08:00 |
|
qian
|
b334ff2450
|
improve(ui):时间查询器优化
|
2026-08-06 00:16:03 +08:00 |
|
qian
|
6cf68b14b3
|
feat(wallet):管理后台钱包一键释放所有被冻结资产
|
2026-08-05 23:46:53 +08:00 |
|
qian
|
99cb57dcd2
|
refactor(wallet):预扣冻结金额完全走redis,提升数据库并发能力
|
2026-08-05 23:38:15 +08:00 |
|
chengqian
|
16b509c4c2
|
feat(ui):调整登录页面UI设计
|
2026-08-05 14:50:08 +08:00 |
|
qian
|
602296080e
|
feat(ui):调整管理后台菜单
|
2026-08-05 01:06:47 +08:00 |
|
qian
|
2c53aa2576
|
feat(relay):限流等错误情况不计入请求记录中
|
2026-08-05 00:50:20 +08:00 |
|
qian
|
f118513c75
|
refactor(ui):重构落地页
|
2026-08-05 00:17:49 +08:00 |
|
qian
|
0e6b7ccb80
|
fix(relay):同步请求等待时间过短
|
2026-08-05 00:17:11 +08:00 |
|
qian
|
66da888d35
|
improve(ui):在线体验功能在大模型回复时允许输入
|
2026-08-04 22:54:45 +08:00 |
|
qian
|
c7d15d82a4
|
improve(admin):优化管理功能搜索条件
|
2026-08-04 22:50:57 +08:00 |
|
qian
|
a73cf411a5
|
improve(ui):统一调整表格页面,将总数统计显示在左下角
|
2026-08-04 22:23:29 +08:00 |
|
chengqian
|
0e32e29ff6
|
feat(apikey):允许二次复制apikey
|
2026-08-04 19:16:33 +08:00 |
|
chengqian
|
2e37402940
|
improve(ui):优化租户端的登录页面
|
2026-08-04 16:15:58 +08:00 |
|
chengqian
|
6ca1726298
|
fear(wallet):管理后台在租户钱包里面显示被冻结的资金
|
2026-08-04 14:35:58 +08:00 |
|
qian
|
2e0119ee85
|
improve(wallet):优化管理后台的钱包功能
|
2026-08-04 00:48:02 +08:00 |
|
qian
|
e464da852c
|
feat(payment):支付提示功能
|
2026-08-04 00:18:10 +08:00 |
|
qian
|
66f857a26b
|
fix(build):修复测试环境打包后的版本检测问题
|
2026-08-03 22:45:50 +08:00 |
|
qian
|
b10352ec1d
|
fix(docker):修复docker构建错误
|
2026-08-03 22:27:40 +08:00 |
|
qian
|
211d1492a3
|
fix(log):优化模型切换路径显示
|
2026-08-03 21:58:50 +08:00 |
|
qian
|
47ffb4e2a9
|
fix(model):修复模型设置价格后不能立即调用
|
2026-08-03 21:44:47 +08:00 |
|
qian
|
07369f2f30
|
improve(channel):调整渠道编辑表单
|
2026-08-03 21:38:34 +08:00 |
|
chengqian
|
a9f5e08889
|
feat(playground):在线体验功能新增图
|
2026-08-03 17:00:49 +08:00 |
|
chengqian
|
14ff5d3eff
|
fix(playground):修复在线体验功能无默认模型的问题
|
2026-08-03 16:53:58 +08:00 |
|
chengqian
|
141eac106a
|
feat:添加rpm/tpm指标
|
2026-08-03 15:29:38 +08:00 |
|
chengqian
|
8cb93d897e
|
improve: 优化高并发下的性能问题
|
2026-08-03 14:55:06 +08:00 |
|
chengqian
|
2491182939
|
improve: 优化高并发下的异常报错问题
|
2026-08-03 12:21:47 +08:00 |
|
qian
|
a4390c1cba
|
perf(relay): 减少大模型请求路径的数据库读写
- 额度累加(IncrMemberQuotaUsed/IncrApiKeyQuotaUsed)异步化,不再阻塞请求 goroutine
* context.WithoutCancel 脱父级取消,客户端断开不中断累加与缓存失效
- 审计日志(aud_request_logs)改批量通道写入,复用 UsageLogWriter
* UsageLogWriter 增加可选 DB getter,支持路由到独立审计库
* 新增 DefaultAuditLogWriter(64条/批或1s flush),OverflowSyncFallback 保证审计不丢
* UpdateTaskAudit 重试窗口扩至10次以覆盖批量 flush 延迟
- CheckApiKeyQuota 补 Redis 缓存(60s),同请求内两次检查第二次命中缓存
* IncrApiKeyQuotaUsed 落库后失效缓存,与成员额度缓存行为一致
- GetModelMapping/GetModelDeprecationInfo 合并对 mdl_models 的单次查询
* modelInfoCached 扩展弃用字段,GetModelDeprecationInfo 复用600s缓存不再裸查
* 缓存 key 加 v2 前缀隔离旧格式,避免部署窗口读到零值弃用字段
|
2026-08-03 00:48:21 +08:00 |
|
qian
|
60373a373d
|
fix(relay): 修复客户端断开时误伤渠道健康评分问题
客户端断开连接(context.Canceled / DeadlineExceeded)时,原来的行为:
1. MaterializeSelection 调用 getChannelKey(ctx, ...) 因 ctx 已取消而失败
2. 失败被包装为 ErrChannelUnavailable(掩盖真实原因)
3. reportMaterializeFailure 对渠道记了一次健康分惩罚
实际上渠道本身完全正常,是客户端主动断开导致的。
修复:
- MaterializeSelection:key 查询前后各加一次 ctx.Err() 检查,
有 ctx 错误时直接返回 ctx.Err() 而非 ErrChannelUnavailable
- relay_handler.go 调度循环:MaterializeSelection 返回 context 错误时
静默退出(不记 channelErrors、不调 reportMaterializeFailure),
用 context.WithoutCancel 退还预扣款项后直接返回,渠道健康分不受影响
|
2026-08-03 00:00:17 +08:00 |
|
qian
|
6683ca6d40
|
fix(cache): 修复高并发下租户模型权限缓存缺失导致误判问题
- CheckTenantModelAccess 增加 L1/L2 双层缓存(TenantModelAccessCache,TTL 300s)
区分「数据库无记录(IsNil=true,穿透到分组权限)」和「有记录」两种状态,
高并发下不再每次请求都发起 LEFT JOIN 查询,消除连接池压满时的误判根因
- 修复 Cache.DeleteByPattern 遗漏 L1 gcache 清除和跨实例 pub/sub 通知的问题:
原实现只做 Redis SCAN+批量 DEL,L1 条目靠 TTL 自然过期;
改为 SCAN 收集所有 key → 批量 DEL L2 → 逐 key gcache.Remove + PUBLISH cache:invalidate,
与 Cache.Delete 的三层清除行为对齐
- 新增 ClearTenantModelAccessCache(ctx, tenantID),以 {tenantID}:* 模式清除该租户缓存
- admin/tenant_model.go:BatchAssignModels / UpdateTenantModel / DeleteTenantModel
三个写操作在 ClearTenantPriceCache 后追加 ClearTenantModelAccessCache 调用
- admin/model_group.go:invalidateTenantGroupCache 新增 ClearTenantModelAccessCache 调用,
覆盖所有分组写操作(SetGroupModels / SetTenantGroups / UpdateModelGroup status 变更)
|
2026-08-02 23:59:00 +08:00 |
|
qian
|
ab463ede83
|
improve(task):定时任务优化,显示中文名称
|
2026-08-02 17:52:21 +08:00 |
|
qian
|
84ea7543b1
|
improve(log):调整审计日志大小,有需求需要设置独立的日志库
|
2026-08-02 16:36:51 +08:00 |
|