跳到正文
Iden项目履历
项目履历AI API 接入与管理平台
平台工程 · 系统集成与运维

AI API接入与管理平台

让应用统一接入,让权限、额度和故障都有明确的处理位置。

  • Go
  • React / TypeScript
  • SQLite
  • 容器化部署

一次请求,五个明确的判断

业务应用内部工具
统一接入层身份 · 模型范围 · 额度
范围内路由明确返回结果

通用职责示意,不包含实际运行配置

项目年份
2026 · 持续维护
工作范围
方案设计、平台搭建、系统集成与运维交接
核心场景
多应用统一使用与管理 AI 能力
系统形态
代理服务 + 策略插件 + 管理面板

把重复接入,收拢到一处。

多个应用分别对接 AI 能力时,模型名称、访问权限、额度和故障处理容易散落在各处。一次上游调整,可能要求逐个修改业务系统;出现失败,也难以区分是调用方配置、额度耗尽还是路由不可用。

这项工作基于现有代理底座、管理面板和访问策略插件,完成部署方案、组件联调、模型映射及运维交接。案例重点是让组件组成可管理的服务,不将底座或模型能力表述为自行研发。

接口可以统一,权限和数据边界必须清楚。

能调用,也要能限制和核对。

应用接入保持稳定

业务侧使用受控模型别名,平台侧维护实际映射,减少切换时散落在应用中的配置。

不同应用有不同范围

分别配置模型权限、请求频率和使用上限;不因一次失败就扩大原本允许的访问范围。

问题能够追溯

结合请求状态、用量事件和采集状态判断问题,区分服务可用与统计链路是否完整。

交付后可以维护

拆分源码、部署配置和运行数据,准备启动检查、备份与回滚步骤,降低接手成本。

一条请求,为什么通过或被阻止?

选择应用、任务和情境,观察五道规则。先试文稿助手调用图片,再试文本主通道故障;两次结果不同,原因会逐步列出。

固定数据与浏览器规则示例,不调用真实 API,不使用真实凭据,不保存个人数据。

文稿助手允许文本任务,初始额度 6 单位。

任务类型

文本配置同范围备用通道;图片只有主通道。更换情境可观察失败与切换的差别。

当前可用
6 单位
本次需要
2 单位

单位仅供演示,无真实价格;成功才扣减,失败不扣减。额度不足情境最多可用 1 单位,重置恢复全部样例。

本次请求经过什么检查

  1. 身份未运行

    点击发送模拟请求后显示。

  2. 模型范围未运行

    点击发送模拟请求后显示。

  3. 额度未运行

    点击发送模拟请求后显示。

  4. 路由未运行

    点击发送模拟请求后显示。

  5. 结果未运行

    点击发送模拟请求后显示。

查看并复制安全的演示请求体

仅包含固定内容与演示模型别名,没有地址或认证信息。这里展示的是请求结构,不能直接访问任何服务。

等待发送模拟请求。

代理、策略与观测,各司其职。

基于实际项目组件分工整理,省略运行配置

业务应用

发起兼容格式请求
使用分配的访问范围

代理与策略

身份校验、模型映射
频率与额度检查、范围内调度

模型能力

执行允许的请求
返回结果与用量信息

策略状态访问规则、别名、额度窗口与用量状态
管理观测事件采集、统计查询、异常记录与运维入口
代理和插件:Go
代理承接协议与执行,插件在鉴权、模型路由、调度和用量阶段参与处理。
管理界面:React 与 TypeScript
使用 Vite 构建,提供配置、用量分析和请求监控等操作视图。
统计服务:Go 与 SQLite
事件经过标准化和入库,再提供聚合查询;异常事件进入单独的待排查记录。
部署管理:容器与脚本
按组件准备发布物、配置和数据边界,启动顺序与恢复操作纳入交接。

把规则落实到请求链路。

以下机制在当前源码中可核对。它们说明所集成平台的行为,不将每个模块都归为个人原创。

接入策略:身份有效,还要检查模型范围

策略模块解析请求中的模型,匹配允许的模型或别名,再检查频率和额度。应用拿到访问能力,并不意味着能够使用所有模型。管理规则调整后,需要同步验证调用侧实际行为。

代码依据:policy/store.go · Authenticatepolicy/limiter.go

别名与调度:同一次请求使用同一目标

别名可映射多个目标。源码为鉴权阶段选中的目标保留请求内记录,路由阶段复用,避免轮询推进两次导致模型与分组不一致。调度筛选可用候选;指定组内没有候选时明确失败,不静默跨组。

代码依据:policy/store.go · rememberPick / takePickplugin/app.go · pickScheduler

额度与计量:显示统计不等同于限制依据

用量账本维护多个时间窗口,按规则检查上限,并将状态持久化。源码区分展示统计与限制执行字段,避免用一个总数代替所有口径。页面演示的固定单位是教学简化,未复刻正式结算和并发边界。

代码依据:policy/usage.go · OverLimit / Summarypolicy/store.go · FlushUsage

观测链路:采集失败也需要留下状态

管理端将输入事件标准化,解析失败进入异常记录;入库结果区分新增与跳过,再更新采集状态。重连使用退避,避免短时间持续重试。诊断时分别查看代理、采集器和数据库,不能只凭一个绿色状态判断整体正常。

代码依据:collector/collector.go · processItems / nextBackoff

复用成熟组件,保留明确边界。

为什么以集成为主?

复用已有协议与管理能力,能把时间放在部署、策略和联调上。代价是依赖底座版本,升级时必须复查插件契约与兼容行为。

故障时应该继续尝试吗?

只在原有授权范围内选择可用目标。没有符合条件的路由就失败,避免用扩大权限换取表面成功。

为什么单独维护数据?

代码升级和业务状态生命周期不同。备份、恢复及统计完整性要分别核对;“服务启动成功”不能代替数据验收。

界面与交付检查。

下图是脱敏架构示意,本页控件是固定交互样例,均不作为真实平台截图。完整管理画面包含运行细节,本案例不公开这些明细。

应用、统一接入、策略管理与模型能力的脱敏分层架构示意
脱敏架构示意 · 通用角色和分层关系

应用和策略核对

先确认允许模型与额度,再验证无权限和额度不足是否在路由前阻止。

故障和交接核对

分别检查可用候选、失败返回、采集状态与备份;本页演示仅覆盖其中的规则分支。

交付可管理的接入能力。

当前工作与成果

  • 现有平台底座、访问策略和管理界面的搭建与集成。
  • 统一模型映射、应用使用范围和用量管理的联调。
  • 运行检查、迁移准备、数据边界和运维交接。

明确保留的边界

  • 不包含自研大模型,也不将第三方底座作为独立原创成果。
  • 历史统计完整性仍有待专项核对;不承诺全部历史数据完整。
  • 吞吐、可用性及成本收益未在本案例中进行量化验证。
  • 真实鉴权、并发计量和在线故障恢复不由本地演示替代。

依据当前项目源码及运行边界文档整理,核对日期:2026 年 9 月 11 日。公开内容不含供应商、访问地址、实际凭据、真实消耗或业务请求记录。