fawney19 5be7813ab8 refactor: 将访问令牌功能迁移至模块系统
- 新增 management_tokens 模块定义,支持通过环境变量控制可用性
- 从静态路由中移除 management-tokens,改由模块动态注册
- 前端路由添加模块激活检查,未激活时重定向到仪表盘
- 认证服务添加模块激活检查,未激活时禁止令牌认证
- 导航菜单中移除访问令牌入口(保留直接 URL 访问)
- 修复 alembic 迁移脚本格式和错误处理
2026-02-05 16:32:27 +08:00
2025-12-10 20:52:44 +08:00
2025-12-10 20:52:44 +08:00
2026-01-08 03:01:54 +08:00
2025-12-19 17:31:15 +08:00

Aether Logo

Aether

开源 AI API 网关
支持 Claude / OpenAI / Gemini 及其 CLI 客户端的统一接入层

简介部署环境变量Q&A


简介

Aether 是一个自托管的 AI API 网关,为团队和个人提供多租户管理、智能负载均衡、成本配额控制和健康监控能力。通过统一的 API 入口,可以无缝对接 Claude、OpenAI、Gemini 等主流 AI 服务及其 CLI 工具。

内置反代 Provider

  • ClaudeCodeprovider_type=claude_code
  • Codexprovider_type=codex
  • GeminiCliprovider_type=gemini_cli
  • Antigravityprovider_type=antigravity

实现细节与差异说明见:docs/provider-quirks.md

页面预览

首页 仪表盘
首页 仪表盘
健康监控 用户管理
健康监控 用户管理
提供商管理 使用记录
提供商管理 使用记录
模型详情 关联提供商
模型详情 关联提供商
链路追踪 系统设置
链路追踪 系统设置

部署

Docker Compose推荐预构建镜像

# 1. 克隆代码
git clone https://github.com/fawney19/Aether.git
cd Aether

# 2. 配置环境变量
cp .env.example .env
python generate_keys.py  # 生成密钥, 并将生成的密钥填入 .env

# 3. 部署 / 更新(自动执行数据库迁移)
docker compose pull && docker compose up -d

Docker Compose本地构建镜像

# 1. 克隆代码
git clone https://github.com/fawney19/Aether.git
cd Aether

# 2. 配置环境变量
cp .env.example .env
python generate_keys.py  # 生成密钥, 并将生成的密钥填入 .env

# 3. 部署 / 更新(自动构建、启动、迁移)
./deploy.sh

本地开发

# 启动依赖
docker compose -f docker-compose.build.yml up -d postgres redis

# 后端
uv sync
./dev.sh

# 前端
cd frontend && npm install && npm run dev

环境变量

必需配置

变量 说明
DB_PASSWORD PostgreSQL 数据库密码
REDIS_PASSWORD Redis 密码
JWT_SECRET_KEY JWT 签名密钥(使用 generate_keys.py 生成)
ENCRYPTION_KEY API Key 加密密钥(更换后需重新配置 Provider Key
ADMIN_EMAIL 初始管理员邮箱
ADMIN_USERNAME 初始管理员用户名
ADMIN_PASSWORD 初始管理员密码

可选配置

变量 默认值 说明
APP_PORT 8084 应用端口
API_KEY_PREFIX sk API Key 前缀
LOG_LEVEL INFO 日志级别 (DEBUG/INFO/WARNING/ERROR)
GUNICORN_WORKERS 4 Gunicorn 工作进程数
DB_PORT 5432 PostgreSQL 端口
REDIS_PORT 6379 Redis 端口

Q&A

Q: 如何开启/关闭请求体记录?

管理员在 系统设置 中配置日志记录的详细程度:

级别 记录内容
Base 基本请求信息
Headers Base + 请求头
Full Headers + 请求体

Q: 管理员如何给模型配置 1M上下文 / 1H缓存 能力支持?

  1. 模型管理: 给模型设置 1M上下文 / 1H缓存 的能力支持, 并配置好价格
  2. 提供商管理: 给端点添加支持该能力的密钥, 并勾选对应的能力标签

Q: 用户如何使用 1H缓存?

  • 模型级别: 在模型管理中针对指定模型开启 1H缓存策略
  • 密钥级别: 在密钥管理中针对指定密钥使用 1H缓存策略

注意: 若对密钥设置强制 1H缓存, 则该密钥只能使用支持 1H缓存的模型, 匹配提供商Key, 将会导致这个Key无法同时用于Claude Code、Codex、GeminiCLI, 因为更推荐使用模型开启1H缓存.

Q: 如何配置负载均衡?

在管理后台 提供商管理 中切换调度模式:

模式 说明 适用场景
提供商优先 按 Provider 优先级排序, 同优先级内按 Key 优先级排序, 相同优先级哈希分散 优先使用特定供应商
全局 Key 优先 忽略 Provider 层级, 所有 Key 按全局优先级统一排序, 相同优先级哈希分散 跨 Provider 统一调度, 最大化利用所有 Key

Q: 提供商免费套餐的计费模式会计入成本吗?

不会。免费套餐的计费模式倍率为 0, 产生的记录不计入成本费用。


许可证

本项目采用 Aether 非商业开源许可证。允许个人学习、教育研究、非盈利组织及企业内部非盈利性质的使用;禁止用于盈利目的。商业使用请联系获取商业许可。

联系作者

QQ二维码

Star History

Star History Chart

Description
No description provided
Readme 168 MiB
Languages
Python 68.3%
Vue 21.7%
TypeScript 7.3%
Rust 2%
CSS 0.3%
Other 0.2%