IanShaw027
|
841d7ef2f2
|
fix(lint): 修复 golangci-lint 检查问题
- 格式化代码(gofmt)
- 修复空指针检查(staticcheck)
- 删除未使用的函数(unused)
|
2026-01-14 23:49:27 +08:00 |
|
IanShaw027
|
a7a49be850
|
refactor(ops): 使用TTFT替代Duration作为健康分数指标
- 业务健康分数:错误率 50% + TTFT 50%
- TTFT 阈值:1s → 100分,3s → 0分
- TTFT 对 AI 服务的用户体验更有意义
- 更新所有相关测试用例期望值
|
2026-01-14 23:47:43 +08:00 |
|
IanShaw027
|
d5eab7da3b
|
refactor(ops): 优化健康分数计算逻辑和阈值
- 移除 SLA 组件(与错误率重复)
- 恢复延迟组件,阈值调整为 1s-2s
- 错误率阈值调整为 1%-10%(更宽松)
- 业务健康分数:错误率 50% + 延迟 50%
- 更新所有相关测试用例期望值
|
2026-01-14 23:43:12 +08:00 |
|
IanShaw027
|
9b10241561
|
test(ops): 修复健康分数测试用例期望值
- 更新 TestComputeBusinessHealth 中 SLA 95% 边界测试的期望值
- 更新 TestComputeDashboardHealthScore 中中等健康度测试的期望值
- 适配移除延迟组件后的新健康分数计算逻辑
|
2026-01-14 23:39:09 +08:00 |
|
IanShaw027
|
9584af5cb4
|
fix(ops): 优化错误日志查询和详情展示
- 新增 GetErrorLogByID 接口用于获取单个错误日志详情
- 优化 GetErrorLogs 过滤逻辑,简化参数处理
- 简化前端错误详情模态框代码,提升可维护性
- 更新相关 API 接口和 i18n 翻译
|
2026-01-14 23:16:01 +08:00 |
|
IanShaw027
|
55e469c7fe
|
fix(ops): 优化错误日志过滤和查询逻辑
后端改动:
- 添加 resolved 参数默认值处理(向后兼容,默认显示未解决错误)
- 新增 status_codes_other 查询参数支持
- 移除 service 层的高级设置过滤逻辑,简化错误日志查询流程
前端改动:
- 完善错误日志相关组件的国际化支持
- 优化 Ops 监控面板和设置对话框的用户体验
|
2026-01-14 16:26:33 +08:00 |
|
IanShaw027
|
8d0767352b
|
fix(ops): 修复ops handler逻辑
|
2026-01-14 14:30:41 +08:00 |
|
IanShaw027
|
63711067e6
|
refactor(ops): 完善gateway服务ops集成
|
2026-01-14 14:30:00 +08:00 |
|
IanShaw027
|
7158b38897
|
refactor(ops): 优化ops repository数据访问层
|
2026-01-14 14:29:39 +08:00 |
|
IanShaw027
|
7f317b9093
|
feat(ops): 增强ops核心服务功能和重试机制
|
2026-01-14 14:29:19 +08:00 |
|
IanShaw027
|
7c4309ea24
|
feat(ops): 添加ops handler和路由配置
|
2026-01-14 14:29:01 +08:00 |
|
IanShaw027
|
060699c3b8
|
refactor(ops): 更新gateway服务集成ops功能
|
2026-01-14 12:40:49 +08:00 |
|
IanShaw027
|
2ca6c631ac
|
refactor(ops): 重构ops handler和repository层
|
2026-01-14 12:40:34 +08:00 |
|
IanShaw027
|
967e25878f
|
refactor(ops): 重构ops核心服务层代码
|
2026-01-14 12:40:12 +08:00 |
|
IanShaw027
|
182683814b
|
refactor(ops): 移除duration相关告警指标,简化监控配置
主要改动:
- 移除 p95_latency_ms 和 p99_latency_ms 告警指标类型
- 移除配置中的 latency_p99_ms_max 阈值设置
- 简化健康分数计算(移除latency权重,重新归一化SLA和错误率)
- 移除duration相关的诊断规则和阈值检查
- 统一术语:延迟 → 请求时长
- 保留duration数据展示,但不再用于告警判断
- 聚焦TTFT作为主要的响应速度告警指标
影响范围:
- Backend: handler, service, models, tests
- Frontend: API types, i18n, components
|
2026-01-14 10:52:56 +08:00 |
|
IanShaw027
|
33f58d583d
|
fix(ops): 修复告警状态验证和错误处理逻辑
- 增强告警事件状态验证,添加合法状态值检查
- 移除重试逻辑中的遗留字段赋值
- 修正仓库不可用时的错误类型
- 格式化测试文件代码
|
2026-01-14 09:39:18 +08:00 |
|
IanShaw027
|
659df6e220
|
feat(handler): 新增ops管理接口和路由
- 添加告警静默管理接口
- 扩展错误日志查询和操作接口
- 新增重试和解决状态相关端点
- 完善错误日志记录功能
|
2026-01-14 09:03:35 +08:00 |
|
IanShaw027
|
d601768016
|
feat(service): 增强ops业务逻辑和告警功能
- 实现告警静默功能的业务逻辑
- 优化错误分类和重试机制
- 扩展告警评估和通知功能
- 完善错误解决和重试结果处理
|
2026-01-14 09:03:16 +08:00 |
|
IanShaw027
|
16ddc6a83b
|
feat(repository): 扩展ops数据访问层功能
- 新增告警静默相关数据库操作
- 增强错误日志查询和统计功能
- 优化重试结果和解决状态的存储
|
2026-01-14 09:03:01 +08:00 |
|
IanShaw027
|
340dc9cadb
|
feat(db): 添加ops告警静默和错误分类优化迁移
- 添加ops告警静默功能的数据库结构
- 优化错误分类和重试结果字段标准化
|
2026-01-14 09:02:45 +08:00 |
|
Wesley Liddick
|
0df7385c4e
|
Merge pull request #226 from xilu0/main
feat(gateway): 优化 Antigravity/Gemini 思考块处理 此提交解决了思考块 (thinking blocks) 在转发过程中的兼容性问题
|
2026-01-13 09:39:43 +08:00 |
|
ianshaw
|
d85288a6c0
|
Revert "fix(gateway): 修复 base_url 包含 /chat/completions 时路径拼接错误"
This reverts commit 7fdc25df3c.
|
2026-01-12 13:29:04 -08:00 |
|
ianshaw
|
3402acb606
|
feat(gateway): 对所有请求(包括 Codex CLI)应用模型映射
- 移除 Codex CLI 的模型映射跳过逻辑
- 添加详细的模型映射日志,包含账号名称和请求类型
- 确保所有 OpenAI 请求都能正确应用账号配置的模型映射
|
2026-01-12 13:23:05 -08:00 |
|
ianshaw
|
7fdc25df3c
|
fix(gateway): 修复 base_url 包含 /chat/completions 时路径拼接错误
问题:
- 当账号的 base_url 配置为 https://example.com/v1/chat/completions 时
- 代码直接追加 /responses,导致路径变成 /v1/chat/completions/responses
- 上游返回 404 错误
修复:
- 在追加 /responses 前,先移除 base_url 中的 /chat/completions 后缀
- 确保最终路径为 https://example.com/v1/responses
影响范围:
- OpenAI API Key 账号的测试接口
- OpenAI API Key 账号的实际网关请求
Related-to: #231
|
2026-01-12 11:39:45 -08:00 |
|
ianshaw
|
fe6a3f4267
|
fix(gateway): 完善 max_output_tokens 参数处理逻辑
根据不同平台和账号类型处理 max_output_tokens 参数:
- OpenAI OAuth (Responses API): 保留 max_output_tokens(支持)
- OpenAI API Key: 删除 max_output_tokens(不支持)
- Anthropic (Claude): 转换 max_output_tokens 为 max_tokens
- Gemini: 删除 max_output_tokens(由 Gemini 专用转换处理)
- 其他平台: 删除(安全起见)
同时处理 max_completion_tokens 参数,仅在 OpenAI OAuth 时保留。
修复客户端(如 OpenCode)发送不支持参数导致上游返回 400 错误的问题。
Related-to: #231
|
2026-01-12 11:08:28 -08:00 |
|
xiluo
|
524d80ae1c
|
feat(gateway): 优化 Antigravity/Gemini 思考块处理
此提交解决了思考块 (thinking blocks) 在转发过程中的兼容性问题。
主要变更:
1. **思考块优化 (Thinking Blocks)**:
- 在 AntigravityGatewayService 中增加了 sanitizeThinkingBlocks 处理,强制移除思考块中不支持的 cache_control 字段(避免 Anthropic/Vertex AI 报错)
- 实现历史思考块展平 (Flattening):将非最后一条消息中的思考块转换为普通文本块,以绕过上游对历史思考块签名的严格校验
- 增加 cleanCacheControlFromGeminiJSON 作为最后一道防线,确保转换后的 Gemini 请求中不残留非法的 cache_control
2. **GatewayService 缓存控制优化**:
- 更新缓存控制逻辑,跳过 thinking 块(thinking 块不支持 cache_control 字段)
- 增加 removeCacheControlFromThinkingBlocks 函数强制清理
关联 Issue: #225
|
2026-01-12 13:36:59 +00:00 |
|
shaw
|
22ef9534e0
|
fix: 修复反向代理下客户端 IP 获取错误
|
2026-01-12 20:44:38 +08:00 |
|
IanShaw027
|
2d45e61a9b
|
style(ops): 修复代码格式问题以通过 golangci-lint
|
2026-01-12 17:18:49 +08:00 |
|
IanShaw027
|
345a965fa3
|
feat(ops): 添加 count_tokens 错误过滤功能
功能特性:
- 自动识别并标记 count_tokens 请求的错误
- 支持配置是否在统计中忽略 count_tokens 错误
- 错误数据完整保留,仅在统计时动态过滤
技术实现:
- ops_error_logger.go: 自动标记 count_tokens 请求
- ops_repo.go: INSERT 语句添加 is_count_tokens 字段
- ops_repo_dashboard.go: buildErrorWhere 核心过滤函数
- ops_repo_preagg.go: 预聚合统计中添加过滤
- ops_repo_trends.go: 趋势统计查询添加过滤(2 处)
- ops_settings_models.go: 添加 ignore_count_tokens_errors 配置
- ops_settings.go: 配置验证和默认值设置
- ops_port.go: 错误日志模型添加 IsCountTokens 字段
业务价值:
- count_tokens 是探测性请求,其错误不影响真实业务 SLA
- 用户可根据需求灵活控制是否计入统计
- 提升错误率、告警等运维指标的准确性
影响范围:
- Dashboard 概览统计
- 错误趋势图表
- 告警规则评估
- 预聚合指标(hourly/daily)
- 健康分数计算
|
2026-01-12 17:06:12 +08:00 |
|
IanShaw027
|
c02c120579
|
feat(ops): 添加 count_tokens 错误标记数据库迁移
- 新增 is_count_tokens 布尔字段到 ops_error_logs 表
- 默认值为 false
- 支持后续动态过滤统计
|
2026-01-12 17:06:12 +08:00 |
|
shaw
|
4da681f58a
|
Merge branch 'mt21625457/main'
|
2026-01-12 16:20:55 +08:00 |
|
yangjianbo
|
9622347faa
|
fix(调度): 修复 outbox 空载写入并稳固回放测试
将 outbox payload 为空时写入 NULL
避免事务因 JSON 解析错误中断
调整回放测试为预置缓存后验证 last_used 更新
测试: go test -tags=integration ./internal/repository
|
2026-01-12 15:46:55 +08:00 |
|
shaw
|
8363663ea8
|
fix(gateway): 修复 usage_logs 记录 IP 不正确的问题
在 nginx 反向代理场景下,使用 ip.GetClientIP() 替代 c.ClientIP()
以正确获取客户端真实 IP 地址
|
2026-01-12 15:37:45 +08:00 |
|
Wesley Liddick
|
b588ea194c
|
Merge pull request #251 from IanShaw027/fix/ops-bugs
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
|
2026-01-12 15:26:26 +08:00 |
|
Wesley Liddick
|
465ba76788
|
Merge pull request #250 from IanShaw027/fix/custom-error-codes-disable-scheduling
fix(gateway): 自定义错误码触发停止调度
|
2026-01-12 15:26:14 +08:00 |
|
shaw
|
cf313d5761
|
fix(gateway): 修复 Claude Code 客户端检测和请求信息记录
- 在 Messages 方法中调用 SetClaudeCodeClientContext 启用客户端检测
- 修复 RecordUsageInput 未传递 UserAgent 和 IPAddress 的问题
|
2026-01-12 15:19:40 +08:00 |
|
yangjianbo
|
8c1958c9ad
|
fix(调度): 修复流超时配置并补回放测试
删除前端未支持的 timeout_seconds 字段,避免类型检查失败
新增调度 outbox 回放集成测试
调整调度默认等待超时断言
测试: make test
|
2026-01-12 15:13:39 +08:00 |
|
yangjianbo
|
2db34139f0
|
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
|
2026-01-12 14:50:53 +08:00 |
|
IanShaw027
|
e0cccf6ed2
|
fix(ops): 修复Go代码格式问题
|
2026-01-12 14:36:32 +08:00 |
|
yangjianbo
|
202ec21bab
|
fix(config): 提升粘性会话默认等待时长
- 默认值调整为 120s
- 同步示例配置与环境变量
|
2026-01-12 14:26:31 +08:00 |
|
ianshaw
|
6dcb27632e
|
fix(gateway): 自定义错误码触发停止调度
- 修改 HandleUpstreamError 逻辑,启用自定义错误码时所有在列表中的错误码都会停止调度
- 添加 handleCustomErrorCode 函数处理自定义错误码的账号停用
- 前端添加 429/529 错误码的警告提示,因为这些错误码已有内置处理机制
- 更新 EditAccountModal、CreateAccountModal、BulkEditAccountModal 的错误码添加逻辑
|
2026-01-11 22:20:02 -08:00 |
|
yangjianbo
|
3141aa5144
|
feat(scheduler): 引入调度快照缓存与 outbox 回放
- 调度热路径优先读 Redis 快照,保留分组排序语义
- outbox 回放 + 全量重建纠偏,失败重试不推进水位
- 自动 Atlas 基线对齐并同步调度配置示例
|
2026-01-12 14:19:06 +08:00 |
|
IanShaw027
|
62771583e7
|
feat(ops): 集成实时流量API接口
- 添加实时流量handler处理逻辑
- 注册实时流量路由
- 扩展ops service接口定义
|
2026-01-12 14:17:58 +08:00 |
|
IanShaw027
|
5526f122b7
|
feat(ops): 新增实时流量数据层
- 添加实时流量repository层实现
- 添加实时流量service层逻辑
- 定义实时流量数据模型
|
2026-01-12 14:17:42 +08:00 |
|
Wesley Liddick
|
9c144587fe
|
Merge pull request #249 from IanShaw027/feat/stream-timeout-handling
feat(gateway): 添加流超时处理机制
|
2026-01-12 14:14:21 +08:00 |
|
ianshaw
|
0c52809591
|
refactor(settings): 简化流超时配置,移除冗余字段
- 移除 TimeoutSeconds 字段,超时判定由网关配置控制
- 默认禁用流超时处理功能
|
2026-01-11 22:09:35 -08:00 |
|
ianshaw
|
2a0758bdfe
|
feat(gateway): 添加流超时处理机制
- 添加 StreamTimeoutSettings 配置结构体和系统设置
- 实现 TimeoutCounterCache Redis 计数器用于累计超时次数
- 在 RateLimitService 添加 HandleStreamTimeout 方法
- 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理
- 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout
- 添加前端配置界面到系统设置页面
- 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口
默认配置:
- 启用:true
- 超时阈值:60秒
- 处理方式:临时不可调度
- 暂停时长:5分钟
- 触发阈值:3次
- 阈值窗口:10分钟
|
2026-01-11 21:54:52 -08:00 |
|
IanShaw027
|
7536dbfee5
|
feat(ops): 后端添加指标阈值管理API
- 新增GetMetricThresholds和UpdateMetricThresholds接口
- 支持配置SLA、延迟P99、TTFT P99、请求错误率、上游错误率阈值
- 添加参数验证逻辑
- 提供默认阈值配置
|
2026-01-12 11:42:56 +08:00 |
|
yangjianbo
|
955af6b3ec
|
fix(仪表盘): 添加聚合和回填操作的执行时间日志
|
2026-01-12 10:59:52 +08:00 |
|
yangjianbo
|
1073317a3e
|
fix(仪表盘): 增加对数据库驱动和仓储实例的有效性检查
|
2026-01-12 10:53:41 +08:00 |
|