Files
oci-portal/CHANGELOG.md
T
wangdefa 489cb49cb3
CI / test (push) Successful in 31s
Release / release (push) Successful in 54s
AI 网关切换 OpenAI 兼容面并移除 chat 端点,新增模型黑白名单
2026-07-12 17:48:28 +08:00

6.3 KiB
Raw Blame History

Changelog

格式遵循 Keep a Changelog,版本号遵循语义化版本。

[0.2.0] - 2026-07-12

Added

  • AI 网关模型黑名单:面板集中拉黑模型,全渠道剔除(模型列表 / 路由 / 探测候选不再出现,同步不入库),移除条目并重新同步后恢复;新表 ai_model_blacklists(启动自动迁移),管理接口 /api/v1/ai-blacklist
  • AI 密钥模型白名单:密钥可限定放行的模型列表(空 = 不限),白名单外调用 404,模型列表只返回交集
  • 推理力度(effort)直通:Responses reasoning.effort 与 Anthropic Messages output_config.effort 原样透传上游、不做档位校验;grok-4.3 五档(none 完全关闭思考)、gpt-oss minimal-high、multi-agent xhigh(控制并行 agent 数)实测生效
  • xAI Grok 服务端工具:/ai/v1/responsestools 支持 {"type":"web_search"} / {"type":"x_search"}(官方 Agent Tools 格式,可与 function 混用,仅非流式),响应保留 web_search_call 输出项与引用

Changed

  • AI 网关对话链路整体切换到 OCI OpenAI 兼容面/actions/v1/responses),typed chat 面全链路移除:/ai/v1/responses 请求体原样直通(仅强制 store:false),流式为上游原生事件流,gpt-oss 推理增量直达客户端;/ai/v1/messages 转换为 Responses 请求直通,流式经事件桥转回标准 Anthropic 事件序列,stop_sequences / top_k 等无兼容面对应物的字段改为静默忽略,思考输出不转 thinking 块;渠道探测改用兼容面最小请求;流式建立后绑定渠道,中断不重试不计熔断
  • 后台任务「立即执行」改异步触发:接口立即返回 202,执行结果经任务日志轮询呈现;同一任务在途时重复触发返回 409「任务正在执行中」,与 cron 重叠触发静默跳过(此前同步阻塞数十秒且同一任务可并发重复执行)
  • 渠道探测候选跨厂商分散(上限 8,voice 等不可对话形态排除):单一厂商在区域内全为微调基座时不再拖垮整个渠道的探测结论
  • 网关调用遇「模型不可按需调用」类错误(微调基座 400 / 实体不存在 404)自动换渠道重试且不计入渠道熔断,错误信息带模型名便于加入黑名单;仅鉴权类错误才判定租户无配额
  • 同名模型多条目去重优先保留非微调基座条目,降低缓存到不可调用 OCID 的概率

Removed

  • /ai/v1/chat/completions 端点移除(404):OpenAI 官方新能力已集中到 Responses 且本面板真实流量为零,请迁移 /ai/v1/responses/ai/v1/messages
  • google / cohere 对话模型不再供给(OCI OpenAI 兼容面不承接,上游 400cohere embed 向量模型不受影响),模型目录按 xai. / meta. / openai. 厂商前缀过滤

Fixed

  • 渠道「同步模型成功但探测报错不可用」:法兰克福等区域的微调基座模型占满探测候选导致的误报(探测状态与真实可用性不符的根因)
  • 租户删除:告警命中清理改子查询,日志事件数万条时不再超出 SQL 绑定变量上限导致删除失败;无法解析的任务 payload 记警告跳过并保留原任务,不再永久阻断租户删除

[0.1.0] - 2026-07-10

Added

  • 通知渠道扩展:WebhookSlack / 飞书 / 钉钉 / 企微预设)、ntfy、Bark、SMTP 邮件与 Telegram 五渠道并存,逐渠道推送互不影响,密钥加密落库
  • 审计告警规则:按租户 / 事件 / 资源 / 来源 IPCIDR in|notin)组合匹配,阈值窗口计数与冷却,命中即推送模板通知
  • 撤销全部会话:POST /auth/revoke-sessions 使全部旧令牌立即失效,响应携带操作者的新令牌
  • 租户暂停状态识别:测活经账户 capabilities 判定 suspended,独立于存活 / 失效展示
  • 抢机成功通知补全实例明细:租户别名、区域别名、类型与配置、镜像、公网 IPv4 与 root 密码

Changed

  • 敏感身份操作(修改凭据、TOTP 开关、外部身份绑定 / 解绑、密码登录开关)成功后令牌版本递增:全部旧 JWT 立即失效,响应返回新令牌无感续期(原 204 改为 200 + token
  • 管理员徽标与管理员组识别支持双候选组名(Administrators / OCI_Administrators
  • Release 流程:前端产物版本由 DASH_VERSION 显式固定并做 sha256 校验,二进制附 SHA256SUMSdocker-compose 示例默认只绑定 127.0.0.1
  • README 新增「反向代理」小节(Caddy / nginx / Traefik 示例与路由前缀清单)

Fixed

  • 删除租户改为单事务清理全部关联本地数据(任务及日志、测活 / 成本快照、回传事件、告警规则、AI 渠道、Webhook 密钥),等待在途任务执行结束,迟到写入不再残留孤儿数据

Security

  • 实例 root 密码收敛:实例详情默认掩码、点击查看,串口控制台不再提供「复制 root 密码」
  • JWT 令牌版本机制:凭据 / TOTP / 外部身份 / 登录策略变更即失效全部旧令牌
  • HTTP 入口加固:显式读写超时与优雅关闭、请求体上限(面板 1MB / AI 网关 10MB)、登录字段长度上限、登录守卫条目数有界
  • 出错响应脱敏:内部错误只返回固定文案 + requestId,完整原因写服务端日志;GORM SQL 日志参数化输出,不再记录实参

[0.0.1] - 2026-07-09

首个版本:自托管 OCI 多租户管理面板后端。

Added

  • 多租户管理:OCI API Key 配置集中管理(AES-256-GCM 加密落库)、分组、批量测活、账户画像
  • 资源管理:实例、网络(VCN/子网/安全列表/IPv6)、块存储、限额与成本,多区域/多区间
  • 自动化任务:抢机、测活、成本同步、AI 渠道探测四类 cron 任务,支持熔断与执行日志
  • 网页控制台:串行控制台(xterm)与 VNC(noVNC),两跳 SSH 隧道
  • AI 网关:OpenAI / Anthropic 兼容端点转发 OCI GenAI,号池负载均衡、熔断探测、密钥与用量日志
  • 日志回传:OCI Audit 事件经 Connector Hub → Notifications HTTPS 订阅入库,一键创建链路
  • 租户治理:IAM 用户/MFA/API Key、密码策略、SAML 身份提供商、通知收件人
  • 登录安全:JWT + bcrypt、TOTP、OIDC/GitHub 外部登录、登录锁定、IP 限速、操作审计;Telegram 模板化通知