Skip to content
跳到项目内容
全部项目
云平台/持续迭代

AI 能力云平台

多能力 AI 服务的统一接入与区域部署

GoKubernetesPostgreSQLRocketMQ
5 个
核心服务
2 个
云区域
3 类
调用形态
1 份
制品从测试到生产
  1. 01接入HTTP · WS · MQ

    API Key、实时连接与文件任务

  2. 02准入APIHub

    身份、权益、预算与限流

  3. 03路由版本化快照

    首帧固定 Provider

  4. 04执行Gateway · GPU

    自研模型或第三方 Provider

  5. 05落库PostgreSQL

    终态、用量与 Outbox 同事务

  6. 06通知task.done

    只带 task_id,可重复投递

  7. 07结算Portal

    回查事实后幂等结算

  8. 08对账定时任务

    确认不确定时按 task_id 恢复

项目速览

业务背景

面向开发者和企业提供语音识别、合成、鉴伪等 AI 能力。平台需要兼顾实时长连接与异步文件任务,并将请求准入、模型执行、企业权益和最终结算划分到明确的服务边界。国内与海外共享业务契约,通过区域配置适配不同云基础设施;企业侧提供授权审批、SDK 接入和设备交付。

负责范围
  • 五服务职责与数据所有权
  • 模型与第三方 Provider 接入
  • 异步任务和结算契约
  • 企业授权审批与 SDK 接入中心
  • 国内外区域适配、同制品晋级发布
5 个服务

业务所有权

开发者账务、企业授权、请求准入和模型执行分别维护数据与接口契约。

553 → 325 秒

企业服务完整发布

国内流水线 Runner 隔离与缓存调整后的单次对照。

31.4 秒

网关生产部署

同一制品从测试晋级生产,回滚 31.6 秒。

01

核心业务

云平台同时服务个人开发者与企业:开发者通过门户创建 API Key、充值和查看消费,企业通过独立控制台管理成员、项目、合同权益和设备授权。两类用户共用语音识别、合成、鉴伪等模型能力,但账号归属、授权方式和结算规则不能混成一个后台。

平台的复杂度来自三种运行节奏。实时语音要求长连接持续返回结果;文件任务需要排队、重试和恢复;权益、路由与价格配置则由管理端低频修改。架构按业务所有权划分 Web、Portal、APIHub、Enterprise 和 audiollm-go 五个服务,再将 CPU 接入、GPU 推理、异步 Worker 与签名 Worker 分开部署。

01开发者商业化
Portal 保存个人账号、Key、余额、订单、价格上下文和预算预占,负责最终结算与消费统计。
02企业授权与交付
Enterprise 分为平台管理台和企业控制台,管理组织、成员、合同权益、设备与许可证;授权集中审批,签名由独立 Worker 执行。
03请求准入与模型路由
APIHub 校验调用身份、能力、预算和限流,根据版本化策略选择自研模型或第三方 Provider。
04模型执行与用量事实
audiollm-go 编排 ASR、TTS、情感、SED、鉴伪与音频向量能力,保存任务终态和实际处理量。
02

调用形态

实时调用

HTTP / WebSocket

实时识别、流式合成和目标对话,结果沿原连接返回。

实现
APIHub 在建连和首帧固定本次会话的 Provider,之后发布的路由只影响新会话;合成以 NDJSON 分块返回 PCM。
输出
流式结果与会话用量,按会话或处理量结算。
边界
一段会话内不切换模型;连接断开不抹掉已产生的有效结果。

异步任务

RocketMQ

文件识别、鉴伪等长任务,用户关闭页面后仍会完成。

实现
稳定 task_id 贯穿准入、预占、执行、通知和结算;Worker 幂等消费输入引用,终态、用量和 Outbox 同事务提交。
输出
task.done 通知,Portal 回查终态和实际用量后结算。
边界
消息至少一次传递,重复通知命中同一结算记录。

设备授权

企业交付

企业为终端设备申请离线授权和在线激活。

实现
企业提交设备清单,平台在飞书卡片审批,独立 Worker 签名并自验签;下载复查设备状态、generation 与短期票据。
输出
带内容摘要的授权文件与设备记录。
边界
撤销、解绑后下一次请求即被拒绝,旧票据不能绕过新的授权状态。
03

技术栈

前端
开发者静态站企业控制台 Vue 3飞书扫码登录
服务端
GoChiWebSocketProvider AdapterMCP
数据与消息
PostgreSQLRedisRocketMQ 5.xOutbox
基础设施
AWS EKS / 腾讯云 TKE对象存储GitLab CIKMS / K8s SecretOpenTelemetry
04

系统架构与部署

五个服务按商业、授权、准入与执行职责协作。实线表示业务调用,虚线表示配置同步或异步消息;实时结果沿原连接返回。

Web 与企业控制台

Vue 3 / CDN / 静态资源发布

开发者界面和企业管理界面独立,不在前端保存余额或授权事实。

APIHub / Portal / Enterprise

Go / Kubernetes Deployment

按服务职责管理路由、结算和权益,可分别发布;请求路径不逐次查询控制台。

Gateway 与模型 Worker

CPU Gateway / 共享 GPU / 远程 Worker

网关承担协议和编排,GPU Worker 承担模型推理;支持内部服务及远程执行端。

签名 Worker

独立 Deployment / AWS KMS · 国内 K8s Secret

管理 API 没有签名权限;海外使用 KMS,国内私钥只挂载给 Worker。签名、自验签后保存许可证制品及摘要。

消息与持久数据

PostgreSQL / Redis / RocketMQ 5.x

数据库保存业务事实,Redis 保存快照和查询投影,消息承担任务提交与完成通知。

区域运行

AWS EKS、ECR、S3 / 腾讯云 TKE、TCR、COS

海外与国内使用各自的集群、对象存储、镜像仓库和发布身份;国内测试与生产分环境,同一制品晋级。

05

企业交付:从申请到设备授权

企业侧的能力围绕「谁能申请、谁来批准、谁持有签名权限、文件怎么下发」拆开,每一步都有独立的权限和审计。

2 个工作台
平台管理台 / 企业控制台

按租户隔离,跨企业访问返回 403;企业控制台支持飞书扫码登录,可登录人员由名单维护。

飞书卡片
授权集中审批

审批、签名和验签各只发生一次;单次实测从批准到签发验证完成约 0.6 秒。

10 分钟
SDK 下载链接

8 个平台的接入指南与 11 个在线 API 示例;安装包经私有对象存储签名链接下载并审计。

22 个工具
企业 MCP

默认关闭,开启后沿用企业身份、角色、审计和幂等约束。

企业项目可以关联已有开发者账号,使用其预付余额与标准 Key;撤销或解绑后下一次请求返回 403。

06

发布效率:国内流水线优化前后

国内流水线按服务拆分 Runner、调整缓存后的单次对照,指标为流水线总耗时。首次运行仍是冷编译,不作为稳定承诺。

优化前优化后单位:秒

单次对照

企业服务发布
553.0
325.0
−41%
静态页发布
507.7
101.8
−80%
Go 合并门禁
601.6
399.9
−34%

静态页发布的主要收益来自排队时间:Runner 隔离后排队从 332 秒降到 0.43 秒;企业服务的镜像构建本身没有变快。

07

核心业务链路

实时语音:路由变更与长连接如何共存

  1. 1Client
  2. 2APIHub
  3. 3Gateway / Provider
  4. 4流式结果

HTTP 与 WebSocket 直接进入执行链。APIHub 在建连及首帧阶段固定本次会话的 Provider,随后发布的路由配置作用于新会话,避免一段语音中途切换模型。模型结果与实际用量分别处理,连接断开不能抹掉已经产生的有效结果。

文件任务:用户关闭页面后仍然可以完成

  1. 1task-submit
  2. 2Worker
  3. 3终态 + usage + Outbox
  4. 4task.done
  5. 5Portal

APIHub 复用稳定 task_id,Worker 幂等消费输入引用。任务状态、用量和 Outbox 在 PostgreSQL 同一事务中提交;完成通知只带 task_id,Portal 回查终态和实际用量再结算。通知重投不会创建新的业务调用,也不依赖用户回来查询触发扣款。

设备交付:管理权限与密码学权限分开

  1. 1企业提交设备清单
  2. 2飞书卡片审批
  3. 3独立 Worker 签名
  4. 4自验签与制品摘要
  5. 5企业下载授权文件

企业控制台负责设备清单和申请,平台审批人在飞书卡片上批准;重复点击幂等,审批、签名和验签各只发生一次。独立 Worker 认领签发任务,签名私钥不进入 Web、API 或业务数据库。制品下载同时检查设备状态和授权 generation,旧票据不会绕过更新后的授权状态。

08

关键机制与取舍

01路由控制面:通知加对账,而不是每次请求查库

约束
路由策略要能动态发布,但管理服务或 Redis 的瞬时故障不能把每个语音请求拖入跨服务查询。只依赖 Pub/Sub 又会在重启、断线或漏消息后保留旧配置。
做法
Enterprise 在事务中写入策略版本、审计和 Outbox。Publisher 发布 Redis 不可变快照、latest 指针和 Pub/Sub 通知;APIHub 订阅通知,并周期性对账 latest,验证后原子替换内存快照。缺失、吊销或过期授权按拒绝规则处理。
效果
请求热路径只读取已经装载的配置;配置生效与请求执行解耦,同时保留版本号用于排障和回溯。

02任务与账务:避免重复扣费,也避免过早释放预占

约束
消息系统提供至少一次传递,模型可能已经执行而发送确认丢失;如果把发送超时当失败释放预算,后续任务完成就无法可靠结算。
做法
预占、任务和消费记录围绕稳定 task_id 关联。执行端先持久化终态与用量,再发送完成通知;Portal 以任务标识幂等回查、结算后 Ack。状态不确定的请求保留记录并进入对账,技术重试不创建第二次客户调用。
效果
数据库记录可以解释“执行了多少、产生了多少有效结果、结算了哪次调用”,消息只是推进处理的通知。

03计量与定价:失败不等于零处理量

约束
ASR、TTS 和鉴伪有不同计量维度,部分成功、取消和中断也可能消耗计算资源。执行层按商业优惠改写用量,会让成本分析和账务对账失去依据。
做法
模型层记录实际处理量、有效结果关联量和终态;Portal 根据产品规则与价格上下文决定应收。音频能力保留处理时长,TTS 与鉴伪记录各自的请求及结果计数,不强制所有模型使用一个计量单位。
效果
运行成本、调用统计与客户账务可分别解释;同一执行事实能够支持不同商业规则。

04许可证 Worker:租约恢复与旧 Worker 写入保护

约束
签名任务可能在认领后进程退出;简单重试容易让新旧 Worker 同时发布制品,或让 API 服务获得不必要的签名权限。
做法
Worker 使用数据库行锁认领任务,签发过程设置有界租约和 worker-id fence。租约过期后任务可被恢复,旧 Worker 不能覆盖恢复 Worker 的结果。签名后使用公钥自验签,再写入带内容摘要的加密对象。
效果
操作审计、任务恢复与密码学权限分别受约束。海外私钥保持在 KMS 内;国内私钥以 Secret 只挂载给 Worker,集群管理员仍在信任边界内。

05SDK 接入中心:大文件不经过 API

约束
企业客户需要按平台拿到 SDK、Demo 和接入示例;数百 MB 的安装包如果经由 API 转发,会占用服务带宽,也难以审计谁下载了什么。
做法
接入中心按企业范围展示平台指南和在线 API 示例;下载时签发 10 分钟有效的私有对象存储链接并写审计,文件由对象存储直接提供。没有正式包的平台在目录里如实标注状态。
效果
下载权限、审计与传输分离;当前只有 Android 提供真实 SDK 与 Demo 包,其他平台标为待提供。
09

发布与验证

五个服务各有测试与生产分支。合并后自动发布到测试环境,生产由人工触发,晋级的是测试环境验证过的同一份制品。国内生产目前只覆盖部分服务,正式域名切换和全量生产回归仍在进行;发布过程中探测到过少量 502,不按零中断表述。

  1. 1合并测试分支自动构建并发布测试环境
  2. 2公网探针失败自动回到原版本
  3. 3回滚演练部署 → 回滚 → 同镜像再发布
  4. 4迁移演练隔离 schema 先跑数据库迁移
  5. 5人工晋级同一制品进入生产
  6. 6生产回读健康、接口与关键流程复查
31.4 / 31.6 秒

网关生产部署 / 回滚

同制品晋级;测试环境完整的发布、回滚、再发布 180 秒。

0.81–0.96 秒

合成流式首块

测试环境后端首个音频块;浏览器端首次出声约 1.93 秒。

11 分 10 秒

生产合成模型更换

含首次部署 237.7 秒;同权重快速切换约 310 秒,比旧流程少约 45%。

没有采用的做法

  • 每次请求查询控制面管理服务瞬时故障会拖住语音请求,改为版本化快照加周期对账。
  • 只依赖 Pub/Sub 推送配置重启、断线或漏消息后会保留旧配置。
  • 发送超时即释放预算执行可能已经完成,改为保留预占并按 task_id 对账。
  • AI 代码评审作为门禁已停用,保留静态检查、回归、密钥扫描和人工审查。
10

AI 协作开发

五个仓库在海外 test 与国内 cn-test 之间的同步、测试与生产发布、发布后回归,主要由 Codex 会话推进,部分工作线交给 Claude Code 接手,双方用交接笔记写明结论、位置与待办。

  • Agent 负责

    分支同步与发布回归

    同步五个服务的区域分支,驱动 GitLab 测试到生产的发布,发布后执行生产回归并按日期写入验证报告。

  • 仓库规则

    生产改动三步走

    先只读核对确切目标,再取得针对这一项改动的明确批准,改完独立回读;不确定结果的写请求不自动重试,充值走技能而不是直接改库。

  • 验证口径

    绿灯不等于整体通过

    发布期间约 1800 秒探测记录到 11 次 5xx,因此不写零中断;生产整体回归未通过时照实记录,体验页可用也不替代 API 验收。

海外区域只允许“功能分支 → 测试环境验收 → 同一提交晋级主干”,生产部署、回滚和重新部署都是手动任务,不从本机直接部署。

11

产品界面

开发者控制台 · 用量与消费趋势开发者接入、企业授权、模型执行与账务结算。
12

阶段成果

  • 贯穿开发者接入、企业权益、模型推理、设备交付和消费结算,覆盖产品、服务端与云基础设施。
  • 路由版本、任务标识、用量事实和制品摘要成为跨服务排障依据,减少依靠页面状态判断系统是否完成。
  • 国内区域已有 Portal、APIHub、Enterprise 等服务进入生产,测试到生产使用同一制品;AWS 海外部署保留各自的运行和发布边界。

继续浏览

AI 能力云平台 · 开发者控制台 · 用量与消费趋势
100%
AI 能力云平台放大预览

开发者控制台 · 用量与消费趋势

别急,先让缓存热一下。