Skip to content

About

one-api-svelte

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

One API (Svelte)

基于 SvelteKit 2 + Svelte 5 + Tailwind CSS v4 + shadcn-svelte 的 API 代理网关管理后台(gpt-load 功能完整移植版)。

功能特性

  • 透明代理网关:/proxy/<group>/* 统一入口,多上游加权负载均衡、密钥轮换池(平滑轮询)、failover 状态码重试、失败黑名单自动拉黑与定时恢复
  • 分组管理:标准分组 / 聚合分组(子分组加权轮询)、参数覆盖、模型重定向(严格/宽松模式)、自定义请求头规则(模板变量)、分组级配置覆盖、拖拽排序、一键复制
  • 密钥管理:批量添加(文本 / .txt 上传,异步任务进度)、批量删除、密钥测试(真实上游验证)、定时校验与手动验证、恢复/清空、导出、备注、掩码显示
  • 仪表盘:密钥/请求量/错误率统计卡 + 24 小时请求趋势图(分组筛选、悬浮详情)、安全配置警告、加密一致性检测
  • 日志系统:多条件筛选(时间/分组/模型/状态码/IP/错误等)、列显隐配置、请求详情弹窗、CSV 导出
  • 系统设置:后端元数据驱动的设置表单(热更新,分组可覆盖)
  • 安全:AUTH_KEY 管理端认证(常数时间比较)、代理密钥双轨认证、API 密钥 AES-256-GCM 加密存储(可选 ENCRYPTION_KEY)
  • 数据库:drizzle-orm + libsql —— 本地 sqlite.db,生产 Turso(libsql://),部署后自动建表 + 种子数据
  • 多语言:简体中文 / 繁體中文 / English(661 条文案,含服务端消息)
  • 多平台部署:Cloudflare Pages / Vercel / Deno Deploy 一键部署
  • 主题系统:8 套组件风格预设、7 种基础色、18 种强调色、字体/圆角/菜单样式

快速开始

# 1. 配置环境变量(复制模板)
cp .env.example .env
# 编辑 .env:设置 AUTH_KEY(必填)、ENCRYPTION_KEY(建议)、TURSO_DATABASE_URL

# 2. 安装依赖
npm install

# 3. 启动开发服务器
npm run dev

访问 http://localhost:5173 → 输入 AUTH_KEY 登录。

环境变量

变量 说明
AUTH_KEY 管理端认证密钥(必填),保护管理界面与 API
ENCRYPTION_KEY API 密钥加密密钥(建议设置);留空 = 明文存储
TURSO_DATABASE_URL 数据库连接串:file:./sqlite.db(本地)或 libsql://<db>.turso.io(生产)
TURSO_AUTH_TOKEN Turso 认证令牌(生产必需)
PORT / HOST 服务端口与主机(默认 5173 / localhost)

代理使用示例

# 创建分组(渠道 openai、上游 https://api.openai.com、代理密钥 proxy-key-1、密钥 sk-xxx)

# 普通请求
curl http://localhost:5173/proxy/my-group/v1/chat/completions \
  -H "Authorization: Bearer proxy-key-1" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}'

# 流式
curl -N http://localhost:5173/proxy/my-group/v1/chat/completions \
  -H "Authorization: Bearer proxy-key-1" -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o-mini","stream":true}'

# 模型列表(自动应用模型重定向过滤)
curl http://localhost:5173/proxy/my-group/v1/models -H "Authorization: Bearer proxy-key-1"

构建与部署

npm run check                               # 类型检查
DEPLOY_TARGET=cloudflare npm run build      # Cloudflare 构建
DEPLOY_TARGET=vercel npm run build          # Vercel 构建
DEPLOY_TARGET=deno npm run build            # Deno 构建

三种平台的完整部署方式(官方 CLI / GitHub Actions / 平台导入 Git)见 DEPLOYMENT.md。 生产部署时在平台环境变量中配置 AUTH_KEY、ENCRYPTION_KEY、TURSO_DATABASE_URL、TURSO_AUTH_TOKEN,首次请求自动建表。

测试

# API 对照测试(需先启动原版 gpt-load 与本地 dev server)
node scripts/api-diff.mjs 3002 5175 <authKey>     # 基础端点对比
node scripts/api-diff-p2.mjs 3002 5175 <authKey>  # 完整 CRUD 流程对比(57 项)

About

one-api-svelte

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages