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 |
|
qian
|
d7b034c50e
|
improve(log):优化日志打印
|
2026-08-02 15:45:07 +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
|
27d3cae94e
|
chore:修改relay层注释为中文
|
2026-08-02 13:40:26 +08:00 |
|
qian
|
318bc0079f
|
fix(relay):修复劣质中转转接入后claude code工具中出现报错的问题
|
2026-08-02 13:00:06 +08:00 |
|
qian
|
8a5ef91625
|
feat(relay):deepseek新增response端点
|
2026-08-02 11:52:28 +08:00 |
|
qian
|
a24f9d29db
|
feat(log):添加日志硬删除按钮,防止频繁错误影响数据库
|
2026-08-02 00:56:03 +08:00 |
|
qian
|
3a6a71b9e7
|
chore:调整管理后台菜单项位置
|
2026-08-02 00:45:05 +08:00 |
|
qian
|
7f4109302b
|
improve(ui):优化管理后台UI
|
2026-08-02 00:40:37 +08:00 |
|
qian
|
14b9bbd4e9
|
fix(ui):修复管理端的页面显示问题
|
2026-08-01 23:55:27 +08:00 |
|
qian
|
ec4a4682e5
|
improve(ui):优化租户端表格分页组件
|
2026-08-01 23:37:44 +08:00 |
|
qian
|
657c452ea1
|
improve(channel):优化渠道编辑功能
|
2026-08-01 23:19:37 +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 |
|
qian
|
56b4bcdc32
|
chore:移除过程文件
|
2026-08-01 23:02:19 +08:00 |
|
Qian
|
2ef5a40c26
|
新的调度方式 (#14)
重构模型渠道调度系统
|
2026-08-01 22:55:08 +08:00 |
|
chengqian
|
f4debdfab2
|
fix(channel):修复渠道无法修改协议
|
2026-07-31 15:19:01 +08:00 |
|
chengqian
|
6ff5c6e949
|
fix(web): 防止页面异常阻塞路由切换
|
2026-07-30 14:40:10 +08:00 |
|
chengqian
|
8a8a96a012
|
fix(admin): 修复错误日志列表返回空元素
|
2026-07-30 14:26:34 +08:00 |
|
chengqian
|
49eb8d07cc
|
fix(web): 统一请求失败提示和刷新队列处理
|
2026-07-30 14:10:04 +08:00 |
|
chengqian
|
25c9de0465
|
feat(tenant): 钱包页新增余额预警阈值设置入口
租户前端原本没有修改预警阈值的入口(后端 PUT /wallet/warning-threshold 已存在但无调用方)。owner/admin 只能找管理员代设,无法自助开关告警。
- 余额卡新增「余额预警」行:启用(>0)显示 $X.XX,关闭(=0)显示「已关闭」,点击打开编辑
- 编辑 modal:金额输入(校验 ≥0) + 关闭/$1/$5/$10 快捷项,保存调 PUT /tenant/wallet/warning-threshold
- 成功就地更新显示并关弹窗,失败由 request 拦截器统一报错
- 语义与后端统一的「0 = 关闭预警」对齐;钱包页本身要求 owner/admin,入口天然仅 owner/admin 可用
|
2026-07-30 10:17:58 +08:00 |
|
chengqian
|
245cedad47
|
fix(wallet): 修复预警阈值 nil 指针导致 /api/tenant/wallet 崩溃
warning_threshold 列可空,注册(Register)/后台建租户(CreateTenant)两条建钱包路径曾漏设该字段,导致这些租户的钱包阈值为 NULL。Wallet() 直接解引用 *w.WarningThreshold,owner/admin 访问 /api/tenant/wallet 时 panic recovered 500。
统一语义:warning_threshold = 0 表示关闭预警(也是新建默认值),正数 = 预警线,与告警引擎 alert.go「阈值 <= 0 视为未启用」一致。
- Wallet() 增加 nil 守卫,NULL 行按 0 返回,消除解引用崩溃
- 所有建钱包路径(懒初始化/Register/CreateTenant/EnsureWallet)显式写入 0,不再产生 NULL
- 管理后台阈值显示:>0 显示金额,否则显示「关闭」
|
2026-07-30 10:17:55 +08:00 |
|
chengqian
|
d11a0b7e0a
|
Merge remote-tracking branch 'origin/dev' into dev
|
2026-07-28 14:39:23 +08:00 |
|
chengqian
|
906662c7c5
|
chore:更换logo图片
|
2026-07-28 11:32:57 +08:00 |
|
martin
|
bc2bbe747f
|
chore:移除无用文件
|
2026-07-27 22:59:33 +08:00 |
|
Qian
|
274293462d
|
Merge pull request #13 from qianfree/feat/ui_water
修复大量问题
|
2026-07-27 22:56:20 +08:00 |
|
martin
|
c513d5730f
|
refactor:重命名数据库变更文件
|
2026-07-27 22:53:45 +08:00 |
|
martin
|
82f7f56cba
|
improve:调整配色方案
|
2026-07-27 22:44:08 +08:00 |
|
martin
|
90f55e65b1
|
improve:优化租户端页面
|
2026-07-27 22:34:38 +08:00 |
|
martin
|
5dbebbc4f2
|
improve:优化侧边栏菜单
|
2026-07-27 21:54:32 +08:00 |
|
chengqian
|
8372369ddd
|
feat:优化看板
|
2026-07-27 21:51:51 +08:00 |
|
chengqian
|
7a2c9abd2b
|
feat:表格优化
|
2026-07-27 21:21:34 +08:00 |
|
chengqian
|
065a2ee7e8
|
feat:表格优化
|
2026-07-27 18:56:11 +08:00 |
|
chengqian
|
ba88fb6bf0
|
feat:表格优化
|
2026-07-27 18:30:33 +08:00 |
|
chengqian
|
d14e5b00e1
|
fix:修复租户停用后令牌还能用的bug
|
2026-07-27 17:45:47 +08:00 |
|
chengqian
|
17d8fadad7
|
fix:修复异步图像可能导致的panic异常
|
2026-07-27 17:11:29 +08:00 |
|
chengqian
|
13628293ad
|
refactor:重构租户端UI风格
|
2026-07-27 16:20:12 +08:00 |
|