Files
claude-relay-service/web
yptse123 5d3456911b feat: 支持按 API Key 控制 1M 上下文窗口访问
改进 PR #1016 的全局拦截逻辑,将 1M 上下文窗口(context-1m)的拦截
从全局一刀切改为按 API Key 精细控制。

新增 `allow1mContext` 布尔字段,默认 false(向后兼容)。管理员可在
创建/编辑 API Key 时为需要的用户单独开启 1M 上下文窗口权限。

双层保护机制:
- 第一层:API Key 未启用 allow1mContext 时直接返回 403
- 第二层:已启用但调度到的账户类型不支持 1M(非 Bedrock)时返回 403

修改文件:
- src/models/redis.js: 新增 allow1mContext 布尔字段解析
- src/services/apiKeyService.js: 创建 Key 时支持 allow1mContext 参数
- src/middleware/auth.js: 将 allow1mContext 附加到 req.apiKey
- src/routes/admin/apiKeys.js: 创建/批量创建/更新/批量更新接口支持
- src/routes/api.js: 替换全局拦截为按 Key + 账户类型双层检查
- CreateApiKeyModal.vue: 新增"允许 1M 上下文"复选框
- EditApiKeyModal.vue: 新增复选框,支持从已有数据加载
- BatchEditApiKeyModal.vue: 新增三态单选(启用/禁用/不修改)
2026-03-02 17:08:17 +08:00
..