[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80323":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},80323,"ai-relay","MoyuFamily\u002Fai-relay","MoyuFamily","Serverless AI API Gateway \u002F 无服务器 AI API 网关 · Vercel 一键部署 \u002F Cloudflare 推送即部署 · 多 Provider 路由 · Key 轮换 · 故障转移 · OpenAI 兼容","https:\u002F\u002Fairelay.izmw.me",null,"TypeScript",101,41,65,1,0,7,34,3,4.87,"MIT License",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36],"ai","api-gateway","api-relay","edge-runtime","llm","llm-gateway","one-click-deploy","openai","openai-compatible","serverless","typescript","vercel","2026-06-12 02:04:01","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"docs\u002Fassets\u002Flogo-banner.svg\" alt=\"AI Relay\" width=\"400\">\n\n**无服务器 AI API 中转网关：一键部署到 Vercel，2 分钟拥有自己的多 Provider AI Relay**\n\n\u003Ch3>🚀 \u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay&env=RELAY_API_KEY,RELAY_ADMIN_KEY,RELAY_SIGNING_SECRET&envDescription=API%20authentication%20keys%20(required%20for%20security)&envLink=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay#environment-variables\">一键部署到 Vercel，2 分钟上线你的 AI API 网关\u003C\u002Fa>\u003C\u002Fh3>\n\n\u003Cp>不用买服务器，不用维护 Docker，只需填写 3 个环境变量，即可拥有自己的多 Provider AI Relay。\u003C\u002Fp>\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay&env=RELAY_API_KEY,RELAY_ADMIN_KEY,RELAY_SIGNING_SECRET&envDescription=API%20authentication%20keys%20(required%20for%20security)&envLink=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay#environment-variables\">\n    \u003Cimg src=\"https:\u002F\u002Fvercel.com\u002Fbutton\" alt=\"Deploy with Vercel\" height=\"42\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay&env=RELAY_API_KEY,RELAY_ADMIN_KEY,RELAY_SIGNING_SECRET&envDescription=API%20authentication%20keys%20(required%20for%20security)&envLink=https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay#environment-variables\">👉 立即一键部署\u003C\u002Fa>\u003C\u002Fstrong> · \u003Ca href=\"#-一键部署2-分钟上线你的-ai-api-网关\">查看部署步骤\u003C\u002Fa>\u003C\u002Fp>\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVersion-2.7.0-green.svg)](CHANGELOG.md)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-14-black?logo=next.js)](https:\u002F\u002Fnextjs.org\u002F)\n[![Edge Runtime](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEdge_Runtime-⚡-black?logo=vercel)](https:\u002F\u002Fvercel.com\u002Fdocs\u002Ffunctions\u002Fedge-functions)\n[![Upstash Redis](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FUpstash_Redis-Redis-black?logo=redis)](https:\u002F\u002Fvercel.com\u002Fmarketplace\u002Fupstash)\n\n[English](README_EN.md) · [中文](README.md)\n\n\u003C\u002Fdiv>\n\n---\n\n> 🚀 **不用买服务器，不用写后端，不用维护 Docker。**\n>\n> AI Relay 基于 Vercel Edge Runtime 构建，点击 **Deploy with Vercel**，配置 3 个环境变量，即可获得一个支持 OpenAI \u002F Claude \u002F DeepSeek \u002F 自定义 Provider 的无服务器 AI API 中转网关。\n\n| 你关心的 | AI Relay 的答案 |\n|---|---|\n| **怎么部署？** | 点一下 Deploy with Vercel，填 3 个环境变量，约 2 分钟上线 |\n| **要服务器吗？** | 不需要 VPS，不需要 Docker，不需要后端运维 |\n| **能免费跑吗？** | 面向 Vercel Edge + KV 设计，个人 \u002F 小团队可从免费层开始；Upstash 免费层每月 50 万次 KV 操作，开启采样后请求与 KV 读写比可低至 1:1 |\n| **接入复杂吗？** | OpenAI SDK 只改 `base_url`，继续使用 `\u002Fv1\u002Fchat\u002Fcompletions` |\n\n## 目录\n\n- [特性](#-特性)\n- [一键部署：2 分钟上线你的 AI API 网关](#-一键部署2-分钟上线你的-ai-api-网关)\n- [同类项目对比](#-同类项目对比)\n- [为什么选择 AI Relay](#为什么选择-ai-relay)\n- [使用方法](#-使用方法)\n- [配置参考](#-配置参考)\n- [架构概览](#-架构概览)\n- [Admin 后台](#-admin-后台)\n- [通知与告警](#-通知与告警)\n- [使用场景](#-使用场景)\n- [贡献指南](#-贡献指南)\n- [更新日志](#-更新日志)\n- [许可证](#-许可证)\n\n## ✨ 特性\n\n| 特性 | 说明 |\n|------|------|\n| **无服务器架构** | 基于 Vercel Edge Runtime，无需购买 VPS \u002F 维护 Docker \u002F 管理后端服务 |\n| **一键部署** | 点击 Deploy with Vercel，填写 3 个环境变量，约 2 分钟上线 |\n| **免费层可用** | 个人和小团队可直接使用 Vercel 免费层跑起来 |\n| **OpenAI 兼容** | 直接用 OpenAI SDK 对接，零改动 |\n| **多 Provider 路由** | OpenAI · Claude · DeepSeek · MiMo · 自定义 |\n| **多 Key 轮换** | Round-Robin + 429 自动退避 |\n| **多级 Fallback** | Provider → Key 链式故障转移 |\n| **熔断器** | Provider 故障时自动切换 |\n| **Admin 后台** | 密钥管理、配额配置、用量统计、模型测试 |\n| **Provider 引导** | Stepper 三步式创建：选模板 → 配密钥 → 测试保存 |\n| **模型别名管理** | CSV 批量导入导出、内联编辑、模型可见性隐藏 |\n| **优先级规则** | 拖拽排序、条件组合、冲突检测 |\n| **用量监控** | 日期筛选、Provider 过滤、趋势图表 |\n| **上游模型发现** | 自动从上游 API 拉取可用模型列表 |\n| **流式响应** | SSE 透传，实时输出 |\n| **Responses API** | 兼容 OpenAI `\u002Fv1\u002Fresponses` 端点，支持流式和非流式 |\n| **Webhook 通知** | 企微 \u002F 飞书 \u002F 钉钉 \u002F Slack，日报 + 超限告警 |\n| **临时 API Key** | HMAC-SHA256 无状态签名，自动过期 |\n| **虚拟模型映射** | 将虚拟模型名路由到真实 Provider |\n| **智能路由** | 延迟优先 \u002F 成本优先 \u002F 可用性优先，自动选择最优 Provider |\n| **API Key 安全管理** | Key 遮掩展示、健康监控、轮换告警、审计日志 |\n\n## 🚀 一键部署：2 分钟上线你的 AI API 网关\n\n> **前置条件：** [Vercel 账号](https:\u002F\u002Fvercel.com\u002Fsignup)（免费）+ 至少一个 AI Provider 的 API Key\n\n**第 1 步 — 部署**\n\n点击上方 **Deploy with Vercel** 按钮，填入 3 个环境变量：\n\n| 变量 | 说明 |\n|------|------|\n| `RELAY_API_KEY` | 客户端请求鉴权密钥（自定义强密码） |\n| `RELAY_ADMIN_KEY` | 后台管理登录密钥（可同上） |\n| `RELAY_SIGNING_SECRET` | 临时 Key 签名密钥（可同上） |\n\n点击 **Deploy**，等待部署完成。\n\n**第 2 步 — 启用 Upstash for Redis 并关联项目**\n\n1. 打开 [Vercel Dashboard](https:\u002F\u002Fvercel.com\u002Fdashboard)，进入刚部署的项目。\n2. 在左侧菜单选择 **Storage**，点击 **Create Database**。\n3. 选择 **Upstash for Redis**，创建数据库时选择 **Free** 套餐，其他选项保持默认即可，然后在弹出窗口中 **Connect to your project**（将 Redis 绑定到当前项目）。\n4. 确认 Vercel 已为当前环境自动注入以下变量：\n   - `KV_REST_API_URL`\n   - `KV_REST_API_TOKEN`\n\n> 说明：项目使用 Upstash Redis 的 REST API。Vercel 连接 Upstash 后通常会自动注入 `KV_REST_API_URL` 和 `KV_REST_API_TOKEN`；若你手动部署或后续新建 Redis，请在 **Settings → Environment Variables** 中确认这些变量已存在。\n\n**第 3 步 — 验证**\n\n```bash\ncurl https:\u002F\u002F你的项目.vercel.app\u002Fhealth\n# → {\"status\":\"ok\"}\n```\n\n**第 4 步 — 添加密钥**\n\n1. 访问 `https:\u002F\u002F你的项目.vercel.app\u002Fadmin`，用 `RELAY_ADMIN_KEY` 登录\n2. 进入 **Provider Keys**，添加你的 API Key（OpenAI、Claude 等）\n\n**第 5 步 — 开始调用**\n\n```bash\ncurl -X POST https:\u002F\u002F你的项目.vercel.app\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer YOUR_RELAY_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\": \"gpt-5.4\", \"messages\": [{\"role\": \"user\", \"content\": \"你好！\"}]}'\n```\n\n🎉 **完成！** 你已经拥有一个支持多 Provider、自动故障转移的 AI API 中转服务。\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>☁️ 部署到 Cloudflare Pages（全自动）\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**前置条件：** [Cloudflare 账号](https:\u002F\u002Fdash.cloudflare.com\u002Fsign-up)（免费）+ GitHub 仓库\n\n> ⚠️ **重要：** 必须先配置 GitHub Secrets，否则部署会失败。\n\n**第 1 步 — Fork 仓库并配置 GitHub Secrets**\n\n在 GitHub 仓库的 **Settings → Secrets and variables → Actions → Repository secrets**（不是 Environment secrets）中添加以下 Secrets：\n\n| Secret | 说明 | 必填 |\n|--------|------|------|\n| `CLOUDFLARE_API_TOKEN` | CF API Token（需要 Pages:Edit + D1:Edit + KV:Edit 权限） | ✅ |\n| `CLOUDFLARE_ACCOUNT_ID` | CF 账号 ID（在 CF Dashboard 右侧可找到） | ✅ |\n| `RELAY_API_KEY` | 客户端请求鉴权密钥（自定义强密码） | ✅ |\n| `RELAY_ADMIN_KEY` | 后台管理登录密钥（可选，默认同 `RELAY_API_KEY`） | ⬜ |\n| `RELAY_SIGNING_SECRET` | 临时 Key 签名密钥（可选，默认同 `RELAY_API_KEY`） | ⬜ |\n| `CRON_SECRET` | Cron 任务鉴权密钥（可选，自动生成） | ⬜ |\n\n> **如何获取 Cloudflare API Token：**\n> 1. 访问 [Cloudflare Dashboard](https:\u002F\u002Fdash.cloudflare.com\u002Fprofile\u002Fapi-tokens)\n> 2. 点击 **Create Token** → **Create Custom Token**\n> 3. 权限设置：\n>    - Account → Cloudflare Pages → Edit\n>    - Account → D1 → Edit\n>    - Account → Workers KV Storage → Edit\n> 4. 复制生成的 Token\n>\n> **如何获取 Account ID：**\n> 1. 访问 [Cloudflare Dashboard](https:\u002F\u002Fdash.cloudflare.com\u002F)\n> 2. 在右侧边栏可以看到 **Account ID**\n>\n> **⚠️ 注意：** 必须添加到 **Repository secrets**，不是 Environment secrets。Environment secrets 只在特定环境部署时可用，会导致 workflow 无法读取。\n\n**第 2 步 — 推送触发部署**\n\n推送到 `main` 分支，GitHub Actions 会自动完成所有配置：\n\n✅ 验证 GitHub Secrets 已配置  \n✅ 自动检测并创建 D1 数据库（`ai-relay`）  \n✅ 自动检测并创建 KV namespace（`ai-relay`）  \n✅ 自动执行 D1 migrations（建表）  \n✅ 自动构建并部署到 Cloudflare Pages  \n✅ 自动配置环境变量  \n✅ 自动绑定 KV\u002FD1 资源  \n\n**第 3 步 — 验证部署**\n\n```bash\ncurl https:\u002F\u002Fai-relay.pages.dev\u002Fhealth\n# → {\"status\":\"ok\"}\n```\n\n访问 `https:\u002F\u002Fai-relay.pages.dev\u002Fadmin` 开始使用！\n\n> **存储说明：** CF 部署使用 Cloudflare KV（配置数据）+ D1（用量统计）。免费层限制：D1 写入 10 万行\u002F天（约支持 3–5 万次 AI 请求\u002F天），KV 写入 1,000 次\u002F天（仅用于配置变更，正常使用不会触及上限）。开启 quota 检查时每次请求写一行 D1，高并发场景请关注用量。\n> \n> **Cron 说明：** CF Pages Cron Triggers 通过 `worker.ts` 中的 `scheduled()` handler 执行定时任务，不走 HTTP 路由。默认配置每日 00:00 UTC 重置配额计数器，00:05 UTC 执行健康探测。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>📦 本地开发\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FMoyuFamily\u002Fai-relay.git\ncd ai-relay\nnpm install\ncp .env.local.example .env.local\n# 编辑 .env.local 填入你的 API Keys\nnpm run dev  # http:\u002F\u002Flocalhost:3000\n```\n\n\u003C\u002Fdetails>\n\n## 🏁 同类项目对比\n\n| 特性 | AI Relay | OpenRouter | OneAPI \u002F new-api | FastGPT |\n|------|----------|------------|------------------|---------|\n| **部署方式** | **Vercel 一键部署（Edge）** | 纯 SaaS | 自托管（Docker） | 自托管（Docker） |\n| **基础设施成本** | **无需服务器，可从免费层开始** | 按量付费 | 需要服务器 | 需要服务器 |\n| **冷启动** | \u003C 50ms | N\u002FA | 秒级 | 秒级 |\n| **熔断器** | ✅ | ❌ | ❌ | ❌ |\n| **Fallback 链** | ✅ 可配置 | ✅ 自动 | ✅ 基础 | ✅ 基础 |\n| **并发控制** | ✅ 令牌桶 + 队列 | 限流 | ❌ | ❌ |\n| **Webhook 告警** | ✅ 4 平台 | ❌ | ❌ | ✅ |\n| **临时 API Key** | ✅ HMAC 签名 | ❌ | ✅ | ✅ |\n| **主要场景** | 个人 \u002F 小团队 | API 市场 | 多 Key 管理 | 知识库 + API |\n\n**选择 AI Relay：** 当你想要“自己可控的 AI API 网关”，但不想买服务器、维护 Docker 或搭后端时，AI Relay 是更轻的路线：无服务器、2 分钟部署、多 Provider 故障转移、Edge 低延迟。\n\n## 为什么选择 AI Relay？\n\n- **不用服务器**：跑在 Vercel Edge Runtime，无需 VPS、Docker、运维。\n- **部署足够快**：点击按钮 + 填环境变量，2 分钟完成上线。\n- **成本足够低**：个人开发者和小团队可以从 Vercel 免费层开始。\n- **接入足够简单**：兼容 OpenAI API，现有 SDK 只需改 `base_url`。\n- **容灾足够实用**：多 Provider、多 Key、Fallback、熔断器内置。\n\n## 📖 使用方法\n\n### OpenAI SDK\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RELAY_API_KEY\",\n    base_url=\"https:\u002F\u002F你的项目.vercel.app\u002Fv1\"\n)\n\nresponse = client.chat.completions.create(\n    model=\"gpt-5.4\",\n    messages=[{\"role\": \"user\", \"content\": \"你好！\"}]\n)\n```\n\n### 流式响应\n\n```python\nstream = client.chat.completions.create(\n    model=\"gpt-5.4\",\n    messages=[{\"role\": \"user\", \"content\": \"讲个故事\"}],\n    stream=True\n)\nfor chunk in stream:\n    print(chunk.choices[0].delta.content or \"\", end=\"\")\n```\n\n### Responses API\n\n```bash\n# 非流式\ncurl -X POST https:\u002F\u002F你的项目.vercel.app\u002Fv1\u002Fresponses \\\n  -H \"Authorization: Bearer YOUR_R...KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\": \"gpt-5.4\", \"input\": \"你好！\"}'\n\n# 流式\ncurl -X POST https:\u002F\u002F你的项目.vercel.app\u002Fv1\u002Fresponses \\\n  -H \"Authorization: Bearer YOUR_R...KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\": \"gpt-5.4\", \"input\": \"你好！\", \"stream\": true}'\n```\n\n> **注意：** Responses API 目前仅支持 OpenAI 格式的 Provider，Anthropic 格式的 Provider 会返回 400 错误。\n\n### Claude \u002F Anthropic Messages API\n\nClaude 客户端可以直接把 `base_url` 指向 Relay 的 `\u002Fv1`，使用原生 Anthropic Messages 协议：\n\n```bash\ncurl -X POST https:\u002F\u002F你的项目.vercel.app\u002Fv1\u002Fmessages \\\n  -H \"x-api-key: YOUR_RELAY_API_KEY\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"claude-sonnet\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好！\"}]\n  }'\n```\n\n`\u002Fv1\u002Fmessages` 只路由到 `headerFormat: anthropic` 的供应商；上游 Key 仍使用 `CLAUDE_KEYS` 或 Admin 后台配置的 Claude 供应商密钥。OpenAI 兼容客户端也可以继续通过 `\u002Fv1\u002Fchat\u002Fcompletions` 调用 Claude 模型，Relay 会转换为 Anthropic 上游请求。\n\n### 临时密钥\n\n在 Admin 后台生成指定有效期的临时密钥：\n- **格式：** `***${base64Payload}.${signature}`\n- **校验：** Vercel Edge 服务端 HMAC-SHA256 无状态签名校验\n- **场景：** CI\u002FCD 流水线、临时授权、API 分享\n\n## 🔧 配置参考\n\n### 环境变量\n\n| 变量 | 说明 | 必填 |\n|------|------|------|\n| `RELAY_API_KEY` | 客户端请求鉴权密钥（逗号分隔支持多个） | ✅ |\n| `RELAY_ADMIN_KEY` | 后台管理登录密钥（未设置则回退到 `RELAY_API_KEY`） | ⬜ |\n| `RELAY_SIGNING_SECRET` | 临时 Key 签名密钥（未设置则回退到管理\u002F请求密钥） | ⬜ |\n| `OPENAI_KEYS` | OpenAI API Keys（逗号分隔） | ⬜ |\n| `CLAUDE_KEYS` | Anthropic API Keys | ⬜ |\n| `DEEPSEEK_KEYS` | DeepSeek API Keys | ⬜ |\n| `XIAOMI_KEYS` | Xiaomi API Keys | ⬜ |\n| `XIAOMIMIMO_SGP_CODING_KEYS` | MiMo SGP Coding Plan API Keys | ⬜ |\n| `XIAOMI_CODING_KEYS` | MiMo Coding Plan API Keys | ⬜ |\n| `RELAY_KV_USAGE_SAMPLE_RATE` | 用量统计写入采样率，`1` 为精确统计，`0.1` 表示约 10% 写入并按比例估算 | ⬜ |\n\n> [!NOTE]\n> Provider 密钥建议通过 Admin 后台配置（存储在 Upstash Redis 中），而非写入环境变量。后台添加\u002F测试密钥时支持粘贴原始 API Key 或 Base64 编码后的 Key，系统会在保存和测试前自动解码。\n\n### 支持的 Provider\n\n| Provider | 模型示例 | 状态 |\n|----------|---------|------|\n| OpenAI | gpt-5.4, gpt-latest, gpt-5.4-mini | ✅ 内置 |\n| Anthropic (Claude) | claude-sonnet-4-6, claude-opus-4-7 | ✅ 内置 |\n| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | ✅ 内置 |\n| MiMo (API Key) | mimo-v2.5, mimo-v2.5-pro | ✅ 内置 |\n| MiMo SGP (Coding Plan) | mimo-v2.5-sgp, mimo-v2.5-pro-sgp | ✅ 内置 |\n| MiMo (Coding Plan) | mimo-v2.5-coding, mimo-v2.5-pro-coding | ✅ 内置 |\n| 自定义 | 任意 OpenAI 兼容 API | ✅ 可配置 |\n\n## 🏗️ 架构概览\n\n```\nClient → Edge Runtime (全球分发, \u003C50ms 延迟)\n              ├─ 熔断器\n              ├─ 多级 Fallback (Provider → Key)\n              ├─ Key 轮换 (Round-Robin + 429 退避)\n              └─ Upstash Redis (密钥, 配额, 用量)\n```\n\n## 📊 Admin 后台\n\n访问 `\u002Fadmin` 使用 `RELAY_ADMIN_KEY` 登录：\n\n| 功能 | 说明 |\n|------|------|\n| **Provider Keys** | 管理所有 Provider 的 API 密钥，支持连通性测试 |\n| **Provider 引导** | Stepper 三步式创建 Provider，支持 8 个预置模板 |\n| **模型别名** | CSV 批量导入导出、内联编辑、模型可见性隐藏 |\n| **优先级规则** | 拖拽排序的路由规则编辑器，支持冲突检测 |\n| **用量监控** | 日期筛选、Provider 维度过滤、用量趋势图表 |\n| **配额配置** | 为每个 Provider 设置动态配额，KV 持久化 |\n| **模型测试** | 测试特定模型的连通性和响应 |\n| **临时密钥** | 生成有时效的 HMAC-SHA256 签名 API 密钥 |\n| **自定义 Provider** | 添加 \u002F 编辑 \u002F 删除自定义 Provider |\n| **用量统计** | 请求次数 + Token 用量趋势图 |\n| **Key Pool 状态** | 实时同步所有密钥状态 |\n| **请求日志** | 轻量排障缓存：服务端当前实例内存 + 浏览器本地副本，不写入 KV |\n| **通知设置** | Webhook 推送、告警阈值、日报时间 |\n\n> 💡 **移动端友好** — 响应式设计，手机上也能随时管理中转策略。\n\n## 📸 截图\n\n\u003Cdetails>\n\u003Csummary>点击展开截图\u003C\u002Fsummary>\n\n**运行概览**\n\n![管理后台运行概览](docs\u002Fassets\u002Fscreenshots\u002Fadmin-overview.png)\n\n限额状态、今日消耗概览、Token 消耗趋势一目了然。\n\n**密钥管理**\n\n![管理后台密钥管理](docs\u002Fassets\u002Fscreenshots\u002Fadmin-keys.png)\n\n多服务商密钥池，带状态指示和模型前缀映射。\n\n**辅助工具**\n\n![管理后台辅助工具](docs\u002Fassets\u002Fscreenshots\u002Fadmin-tools.png)\n\n临时密钥生成和模型连通性测试。\n\n\u003C\u002Fdetails>\n\n## 📢 通知与告警\n\n支持通过 Webhook 推送每日用量报告和超限告警。\n\n| 平台 | 格式 |\n|------|------|\n| 企业微信 | Markdown |\n| 飞书 | 消息卡片 |\n| 钉钉 | Markdown |\n| Slack | Block Kit |\n| 通用 Webhook | 自定义 JSON |\n\n**配置：** Admin 后台 → 通知设置 → 添加 Webhook → 填入 URL → 启用\n\n**每日报告：** Vercel Cron 定时发送，包含当日总量、Provider 分项、前日对比。\n\n**超限告警：** 支持按 Provider 或全局设置请求量 \u002F Token 量阈值。\n\n## 🎯 使用场景\n\n| 场景 | 说明 |\n|------|------|\n| **个人开发者** | 多 Key 整合为单一端点，自动轮换 + 故障转移 |\n| **小团队** | 共享中转实例，配额管理，Admin 可见性 |\n| **CI\u002FCD** | HMAC 临时密钥，自动过期无需清理 |\n| **多地域应用** | Edge 全球 \u003C 50ms，熔断防级联故障 |\n| **成本优化** | 虚拟模型映射，按任务复杂度路由 Provider |\n| **企业内部** | API 网关 + Webhook 告警，用量监控 |\n\n\n\n## 👥 团队\n\n| | 姓名 | 角色 | 贡献 | 联系 |\n|---|---|---|---|---|\n| \u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7930911?v=4\" width=\"32\" height=\"32\" style=\"border-radius:50%\"> | Parsifal | 创始人 & 项目负责人 | 项目发起人，负责整体架构设计、技术选型和团队管理 | zmw@izmw.me |\n| \u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286714101?v=4\" width=\"32\" height=\"32\" style=\"border-radius:50%\"> | 小赫 | 协调者 | 团队任务协调、需求分析、进度跟踪和质量把控 | xiaohe@izmw.me |\n| \u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286719582?v=4\" width=\"32\" height=\"32\" style=\"border-radius:50%\"> | 像素姐 | 设计总监 | 品牌视觉体系设计、Logo 设计、UI\u002FUX 设计和 README 视觉收尾 | pixiel@izmw.me |\n| \u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286715358?v=4\" width=\"32\" height=\"32\" style=\"border-radius:50%\"> | 码飞 | 技术总监 | 全栈架构开发、CI\u002FCD 流水线建设、系统性能优化和技术选型评估 | mafei@izmw.me |\n| \u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286716759?v=4\" width=\"32\" height=\"32\" style=\"border-radius:50%\"> | 饼哥 | 产品总监 | 产品规划、需求分析、用户体验设计和迭代策略 | bingge@izmw.me |\n\n## 🤝 贡献指南\n\n欢迎贡献！请随时提交 Pull Request。\n\n1. Fork 本仓库\n2. 创建特性分支 (`git checkout -b feature\u002Famazing-feature`)\n3. 提交更改 (`git commit -m 'Add amazing feature'`)\n4. 推送到分支 (`git push origin feature\u002Famazing-feature`)\n5. 提交 Pull Request\n\n## 🙏 致谢\n\n- [OpenRouter](https:\u002F\u002Fopenrouter.ai) — 多 Provider API 聚合模式先驱\n- [OneAPI](https:\u002F\u002Fgithub.com\u002Fsongquanpeng\u002Fone-api) \u002F [new-api](https:\u002F\u002Fgithub.com\u002FCalcium-Ion\u002Fnew-api) — 最流行的开源 API 管理系统\n- [FastGPT](https:\u002F\u002Fgithub.com\u002Flabring\u002FFastGPT) — API 中转与知识库工作流整合\n- [Vercel](https:\u002F\u002Fvercel.com) — Edge Runtime + KV 存储\n- [OpenAI](https:\u002F\u002Fplatform.openai.com) — OpenAI 兼容 API 标准\n- [Linux Do](https:\u002F\u002Flinux.do\u002F) — 温暖的开发者社区，AI Relay 的灵感来源\n\n## 📝 更新日志\n\n项目版本变更记录见 [CHANGELOG.md](CHANGELOG.md)。\n\n## 📄 许可证\n\n本项目基于 MIT 许可证 — 详见 [LICENSE](LICENSE) 文件。\n","AI Relay 是一个无服务器的 AI API 中转网关，支持多 Provider 路由、密钥轮换和故障转移。该项目基于 Vercel Edge Runtime 构建，使用 TypeScript 开发，具有 OpenAI 兼容性，允许用户通过简单的环境变量配置快速部署。它特别适用于需要快速集成多种 AI 服务而不想管理后端基础设施的个人开发者或小团队。只需点击 Vercel 的一键部署按钮并填写三个必要的环境变量，即可在大约两分钟内拥有自己的 AI API 网关。此外，AI Relay 还提供了免费层选项，使得小型项目可以以较低成本开始运行。",2,"2026-06-11 04:00:20","CREATED_QUERY"]