Commit Graph
233 Commits
Author SHA1 Message Date
qian c286d4d2df fix(update):修复在线更新多个问题 2026-08-15 13:56:55 +08:00
qian 36b8450d06 fix(toast):修复提示信息描述重复问题 2026-08-15 00:45:11 +08:00
qian 27f4770623 fix(update):修复升级回滚未等待信号的问题 2026-08-15 00:38:11 +08:00
qian 196b0d0b5e fix(update):修复回滚操作未等待就直接退出 2026-08-15 00:30:31 +08:00
qian 1969214163 fix(member):修复成员列表导出字段与表格不一致的问题 2026-08-15 00:25:42 +08:00
qian 984699b0e5 fix(sys):修复服务器更新跨分区复制文件导致的重命名失败问题 2026-08-15 00:25:42 +08:00
qian aeccc9946b fix(sys):修复版本检查不能及时获取最新版本的问题 2026-08-15 00:25:42 +08:00
qian 06d5784e58 fix(marketplace):修复模型广场查询模型权限报错问题 2026-08-15 00:25:42 +08:00
qian a1f15ab5b1 feat(ui):新增模型缓存价格显示 2026-08-14 22:26:12 +08:00
chengqian 85ccf083d2 fix(channel):修复渠道权重被设置为0的问题 2026-08-14 18:27:25 +08:00
chengqian 0e8280e42c fix(log):修复审计日志在配置独立数据库的情况下被截断的问题 2026-08-14 14:31:39 +08:00
qian 23b05d0aa9 fix(sys):修复版本号检查问题 2026-08-13 23:15:17 +08:00
chengqian be8275a8c5 improve(model):优化模型健康状态功能 2026-08-13 15:53:09 +08:00
qian 6c9b54b74d fix(sys):修复二进制部署方式的系统更新失败 2026-08-13 00:32:32 +08:00
chengqian 0ec970a182 improve(ui):新增模型广场页面 2026-08-12 17:15:27 +08:00
qian 7a6dd11814 improve(ui):优化成员管理页面 2026-08-11 23:54:26 +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 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 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
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
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 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 47ffb4e2a9 fix(model):修复模型设置价格后不能立即调用 2026-08-03 21:44:47 +08:00
qian 07369f2f30 improve(channel):调整渠道编辑表单 2026-08-03 21:38:34 +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
qian 03259a144a feat(admin):添加模型调用堆叠柱状图 2026-08-02 14:45:50 +08:00
qian f13b583c35 feat(admin):渠道模型能力页面添加字段使用说明 2026-08-02 14:20:35 +08:00
qian 49b05b66ad fix(admin):修复渠道测试功能使用上游模型名称的问题
之前渠道测试时使用的是系统内模型名称,而不是上游配置的模型名称,
导致测试请求失败(上游供应商无法识别系统内模型名)。

修复内容:
- 将查询目标从 mdl_models 表改为 chn_abilities 表
- 查询条件:channel_id + model_name + enabled=true
- 获取 upstream_model 字段作为上游模型名称发送测试请求

影响范围:
- internal/logic/admin/channel_testing.go
2026-08-02 13:49:11 +08:00
qian a24f9d29db feat(log):添加日志硬删除按钮,防止频繁错误影响数据库 2026-08-02 00:56:03 +08:00
qian 4bf835394d Merge branch 'main' into dev
# Conflicts:
#	web/admin/src/views/ai/ChannelDetailPage.vue
2026-08-01 23:03:23 +08:00
qian fae0d1efba chore:渠道倒序排序 2026-08-01 23:02:30 +08:00