AI 网关接入
预计阅读时间: 11 分钟 预计阅读时间: 11 分钟Summerrs Admin 可以作为 AI 网关的管理后台底座:用系统的登录认证、RBAC、菜单按钮、资源权限、字典、操作日志和 MCP 工具来承载 AI 渠道、模型、API Key、用量、审计和运维能力。
AI 网关通常由两部分组成:
后台管理接口适合放进 /api 体系,复用管理员 JWT、按钮权限、资源权限和 ApiResult 响应。relay 协议入口建议作为独立路由组接入,例如 /v1/chat/completions、/v1/messages、/v1beta/models/*,并使用 API Key、模型路由、流式响应和专用错误模型。
可以复用的后台能力
AI 网关管理侧可以直接复用 Summerrs Admin 的基础能力:
这意味着 AI 模块可以专注在模型网关自身的领域能力上,后台通用能力继续沿用系统已有机制。
推荐模块边界
AI 管理后台和 relay 协议入口的鉴权方式、错误格式和响应类型不同,推荐拆成清晰的模块:
主应用可以同时注册管理侧和 relay 侧:
两类入口建议分开设计:
这样可以避免把管理员登录态、按钮权限、API Key、流式响应和第三方协议错误模型混在一条链路里。
管理后台功能
AI 管理后台通常包含这些页面:
后台接口可以沿用系统路由风格:
菜单按钮可以按业务对象组织:
如果希望资源权限层也生效,需要把 AI 管理 API 登记到 sys.resource,再通过 sys.action_resource 绑定到对应 Button。策略更新可以调用:
API Key 鉴权
relay 面向程序调用,建议使用独立 API Key,不要复用管理员 JWT。
常见请求格式:
API Key 至少需要包含这些信息:
鉴权流程可以设计为:
管理后台展示 Key 时只显示前后缀,创建后只返回一次明文,后续通过轮换机制替换。
模型路由
模型路由负责把客户端请求的模型映射到真实上游:
常见路由维度:
路由结果建议写入请求日志,方便排查“客户端请求的是哪个模型,最终打到了哪个上游”。
流式响应
LLM relay 经常返回 SSE 或 chunked body。流式响应和普通后台 JSON 有几个差异:
管理动作继续使用 #[log]; relay 请求建议写入专门的 AI request log,例如:
这样既能保留后台操作审计,也能满足 relay 的高频、流式、计费型日志需求。
限流与配额
summer-common::rate_limit 提供 #[rate_limit]、RateLimitEngine 和 cost-based 限流能力。管理接口可以使用声明式限流,relay 更适合按 API Key 和 token 成本做控制。
对 LLM 请求,推荐在真正调用上游前预扣额度:
常见策略:
如果 API Key 放在 Authorization 中,可以先由 relay 鉴权层解析 Key,再用解析后的 token 标识调用 RateLimitContext。
与 MCP 的关系
MCP 和 AI relay 解决的是不同问题:
MCP 可以帮助开发 AI 管理模块,例如生成 Entity、CRUD、前端 bundle,再用 menu_tool 和 dict_tool 规划菜单/字典。relay 则负责线上模型调用链路、API Key、配额、路由、日志和流式响应。
接入清单
可以按这个顺序推进 AI 网关模块:
- 定义 AI 领域模型:渠道、模型、API Key、路由规则、请求日志、用量统计。
- 创建后台菜单和按钮权限,统一使用
ai:*权限码。 - 接入管理接口,使用
#[log]、#[has_perm]和资源权限绑定。 - 设计 API Key 鉴权链路,只保存 hash,创建后只展示一次明文。
- 实现模型路由,把客户端模型映射到真实上游渠道。
- 接入限流和配额,对 Key、租户、模型和 token 成本分别保护。
- 为流式响应建立专门 request log,记录最终状态和 usage。
- 使用 MCP 生成或校验 CRUD、菜单、字典和前端页面草稿。
这样可以让 AI 网关既融入后台管理体系,又保持 relay 协议入口的独立性。
