AIClient-2-API/README-ZH.md
hex2077 8a1ccb9877 refactor(config): 重构配置文件路径至configs目录并更新相关引用
- 将配置文件统一迁移至configs目录
- 更新所有相关代码中对配置文件的引用路径
- 删除不再使用的run-docker脚本文件
- 更新文档中关于配置文件路径的说明
- 调整默认配置参数和路径引用方式
2025-12-25 16:48:42 +08:00

17 KiB
Raw Blame History

logo

AIClient-2-API 🚀

一个能将多种仅客户端内使用的大模型 APIGemini CLI, Antigravity, Qwen Code, Kiro ...),模拟请求,统一封装为本地 OpenAI 兼容接口的强大代理。

AIClient2API 是一个突破客户端限制的 API 代理服务,将 Gemini、Antigravity、Qwen Code、Kiro 等原本仅限客户端内使用的免费大模型,转换为可供任何应用调用的标准 OpenAI 兼容接口。基于 Node.js 构建,支持 OpenAI、Claude、Gemini 三大协议的智能互转,让 Cherry-Studio、NextChat、Cline 等工具能够免费大量使用 Claude Opus 4.5、Gemini 3.0 Pro、Qwen3 Coder Plus 等高级模型。项目采用策略模式和适配器模式的模块化架构,内置账号池管理、智能轮询、自动故障转移和健康检查机制,确保 99.9% 的服务可用性。

Note

🎉 重要里程碑

📅 版本更新日志

  • 2025.12.11 - Docker 镜像自动构建并发布到 Docker Hub: justlikemaki/aiclient-2-api
  • 2025.11.30 - 新增 Antigravity 协议支持,支持通过 Google 内部接口访问 Gemini 3 Pro、Claude Sonnet 4.5 等模型
  • 2025.11.16 - 新增 Ollama 协议支持统一接口访问所有支持的模型Claude、Gemini、Qwen、OpenAI等
  • 2025.11.11 - 新增 Web UI 管理控制台,支持实时配置管理和健康状态监控
  • 2025.11.06 - 新增对 Gemini 3 预览版的支持,增强模型兼容性和性能优化
  • 2025.10.18 - Kiro 开放注册,新用户赠送 500 额度,已完整支持 Claude Sonnet 4.5
  • 2025.09.01 - 集成 Qwen Code CLI新增 qwen3-coder-plus 模型支持
  • 2025.08.29 - 发布账号池管理功能,支持多账号轮询、智能故障转移和自动降级策略
    • 配置方式:在 configs/config.json 中添加 PROVIDER_POOLS_FILE_PATH 参数
    • 参考配置:provider_pools.json
  • 历史已开发
    • 支持 Gemini CLI、Kiro 等客户端2API
    • OpenAI ,Claude ,Gemini 三协议互转,自动智能切换

💡 核心优势

🎯 统一接入,一站式管理

  • 多模型统一接口:通过标准 OpenAI 兼容协议,一次配置即可接入 Gemini、Claude、Qwen Code、Kimi K2、MiniMax M2 等主流大模型
  • 灵活切换机制Path 路由、支持通过启动参数、环境变量三种方式动态切换模型,满足不同场景需求
  • 零成本迁移:完全兼容 OpenAI API 规范Cherry-Studio、NextChat、Cline 等工具无需修改即可使用
  • 多协议智能转换:支持 OpenAI、Claude、Gemini 三大协议间的智能转换,实现跨协议模型调用

🚀 突破限制,提升效率

  • 绕过官方限制:利用 OAuth 授权机制,有效突破 Gemini, Antigravity 等服务的免费 API 速率和配额限制
  • 免费高级模型:通过 Kiro API 模式免费使用 Claude Opus 4.5,通过 Qwen OAuth 模式使用 Qwen3 Coder Plus降低使用成本
  • 账号池智能调度:支持多账号轮询、自动故障转移和配置降级,确保 99.9% 服务可用性

🛡️ 安全可控,数据透明

  • 全链路日志记录:捕获所有请求和响应数据,支持审计、调试
  • 私有数据集构建:基于日志数据快速构建专属训练数据集
  • 系统提示词管理:支持覆盖和追加两种模式,实现统一基础指令与个性化扩展的完美结合

🔧 开发友好,易于扩展

  • Web UI 管理控制台实时配置管理、健康状态监控、API 测试和日志查看
  • 模块化架构:基于策略模式和适配器模式,新增模型提供商仅需 3 步
  • 完整测试保障:集成测试和单元测试覆盖率 90%+,确保代码质量
  • 容器化部署:提供 Docker 支持,一键部署,跨平台运行

📑 快速导航


🔧 使用说明

🚀 快速启动

使用 AIClient-2-API 最推荐的方式是通过自动化脚本启动,并直接在 Web UI 控制台 进行可视化配置。

1. 运行启动脚本

  • Linux/macOS: chmod +x install-and-run.sh && ./install-and-run.sh
  • Windows: 双击运行 install-and-run.bat

2. 访问控制台

服务器启动后,打开浏览器访问: 👉 http://localhost:3000

默认密码: admin123 (登录后可在控制台或修改 pwd 文件变更)

3. 可视化配置 (推荐)

进入 "配置管理" 页面,您可以直接:

  • 填入各提供商的 API Key 或上传 OAuth 凭据文件
  • 实时切换默认模型提供商
  • 监控健康状态和实时请求日志

脚本执行示例

========================================
  AI Client 2 API 快速安装启动脚本
========================================

[检查] 正在检查Node.js是否已安装...
✅ Node.js已安装版本: v20.10.0
✅ 找到package.json文件
✅ node_modules目录已存在
✅ 项目文件检查完成

========================================
  启动AI Client 2 API服务器...
========================================

🌐 服务器将在 http://localhost:3000 启动
📖 访问 http://localhost:3000 查看管理界面
⏹️  按 Ctrl+C 停止服务器

💡 提示:脚本会自动安装依赖并启动服务器。如果遇到任何问题,脚本会提供清晰的错误信息和解决建议。


📋 核心功能

Web UI 管理控制台

Web UI

功能完善的 Web 管理界面,包含:

📊 仪表盘:系统概览、交互式路由示例、客户端配置指南

⚙️ 配置管理实时参数修改支持所有提供商Gemini、Antigravity、OpenAI、Claude、Kiro、Qwen包含高级设置和文件上传

🔗 提供商池:监控活动连接、提供商健康统计、启用/禁用管理

📁 配置文件OAuth 凭据集中管理,支持搜索过滤和文件操作

📜 实时日志:系统日志和请求日志实时显示,带管理控制

🔐 登录验证:默认密码 admin123,可通过 pwd 文件修改

访问:http://localhost:3000 → 登录 → 侧边栏导航 → 立即生效

多模态输入能力

支持图片、文档等多种类型的输入,为您提供更丰富的交互体验和更强大的应用场景。

最新模型支持

无缝支持以下最新大模型,仅需在 Web UI 或 configs/config.json 中配置相应的端点:

  • Claude 4.5 Opus - Anthropic 史上最强模型,现已通过 Kiro, Antigravity 支持
  • Gemini 3 Pro - Google 下一代架构预览版,现已通过 Gemini, Antigravity 支持
  • Qwen3 Coder Plus - 阿里通义千问最新代码专用模型现已通过Qwen Code 支持
  • Kimi K2 / MiniMax M2 - 国内顶级旗舰模型同步支持现已通过自定义OpenAIClaude 支持

🔐 授权配置指南

💡 提示:为了获得最佳体验,建议通过 Web UI 控制台 进行可视化授权管理。

🌐 Web UI 快捷授权 (推荐)

在 Web UI 管理界面中,您可以极速完成授权配置:

  1. 生成授权:在 “提供商池” 页面或**“配置管理”** 页面,点击对应提供商(如 Gemini, Qwen右上角的 “生成授权” 按钮。
  2. 扫码/登录:系统将弹出授权对话框,您可以点击 “在浏览器中打开” 进行登录验证。对于 Qwen只需完成网页登录对于 GeminiAntigravity 需完成 Google 账号授权。
  3. 自动保存:授权成功后,系统会自动获取凭据并保存至 configs/ 对应目录下,您可以在 “配置文件” 页面看到新生成的凭据。
  4. 可视化管理:您可以随时在 Web UI 中上传、删除凭据,或通过 “快速关联” 功能将已有的凭据文件一键绑定到提供商。

Gemini CLI OAuth 配置

  1. 获取OAuth凭据:访问 Google Cloud Console 创建项目启用Gemini API
  2. 项目配置可能需要提供有效的Google Cloud项目ID可通过启动参数 --project-id 指定
  3. 确保项目ID:在 Web UI 中配置时确保输入的项目ID与 Google Cloud Console 和 Gemini CLI 中显示的项目ID一致。

Antigravity OAuth 配置

  1. 个人账号:个人账号需要单独授权,已关闭申请渠道。
  2. Pro会员Antigravity 暂时对 Pro 会员开放,需要先购买 Pro 会员。
  3. 组织账号:组织账号需要单独授权,联系管理员获取授权。

Qwen Code OAuth 配置

  1. 首次授权配置Qwen服务后系统会自动在浏览器中打开授权页面
  2. 推荐参数:使用官方默认参数以获得最佳效果
    {
      "temperature": 0,
      "top_p": 1
    }
    

Kiro API 配置

  1. 环境准备下载并安装 Kiro 客户端
  2. 完成授权:在客户端中登录账号,生成 kiro-auth-token.json 凭据文件
  3. 最佳实践:推荐配合 Claude Code 使用,可获得最优体验
  4. 重要提示Kiro 服务使用政策已更新,请访问官方网站查看最新使用限制和条款

账号池管理配置

  1. 创建号池配置文件:参考 provider_pools.json.example 创建配置文件
  2. 配置号池参数:在 configs/config.json 中设置 PROVIDER_POOLS_FILE_PATH 指向号池配置文件
  3. 启动参数配置:使用 --provider-pools-file <path> 参数指定号池配置文件路径
  4. 健康检查:系统会定期自动执行健康检查,不使用不健康的提供商

高级配置

1. 模型过滤配置

支持通过 notSupportedModels 配置排除不支持的模型,系统会自动跳过这些提供商。

配置方式:在 configs/provider_pools.json 中为提供商添加 notSupportedModels 字段:

{
  "gemini-cli-oauth": [
    {
      "uuid": "provider-1",
      "notSupportedModels": ["gemini-3.0-pro", "gemini-3.5-flash"],
      "checkHealth": true
    }
  ]
}

工作原理

  • 当请求特定模型时,系统会自动过滤掉配置了该模型为不支持的提供商
  • 只有支持该模型的提供商才会被选中处理请求

使用场景

  • 某些账号因配额或权限限制无法访问特定模型
  • 需要为不同账号分配不同的模型访问权限
2. 跨类型 Fallback 配置

当某一 Provider Typegemini-cli-oauth)下的所有账号都因 429 配额耗尽或被标记为 unhealthy 时,系统能够自动 fallback 到另一个兼容的 Provider Typegemini-antigravity),而不是直接返回错误。

配置方式:在 configs/config.json 中添加 providerFallbackChain 配置:

{
  "providerFallbackChain": {
    "gemini-cli-oauth": ["gemini-antigravity"],
    "gemini-antigravity": ["gemini-cli-oauth"],
    "claude-kiro-oauth": ["claude-custom"],
    "claude-custom": ["claude-kiro-oauth"]
  }
}

工作原理

  1. 尝试从主 Provider Type 池选取 healthy 账号
  2. 如果该类型所有账号都 unhealthy
    • 查找配置的 fallback 类型
    • 检查 fallback 类型是否支持当前请求的模型(协议兼容性检查)
    • 从 fallback 类型的池中选取 healthy 账号
  3. 支持多级降级链:gemini-cli-oauth → gemini-antigravity → openai-custom
  4. 如果所有 fallback 类型也不可用,才返回错误

使用场景

  • 批量任务场景下,单一 Provider Type 的免费 RPD 配额容易在短时间内耗尽
  • 通过跨类型 Fallback可以充分利用多种 Provider 的独立配额,提高整体可用性和吞吐量

注意事项

  • Fallback 只会在协议兼容的类型之间进行(如 gemini-* 之间、claude-* 之间)
  • 系统会自动检查目标 Provider Type 是否支持当前请求的模型

📁 授权文件存储路径

各服务的授权凭据文件默认存储位置:

服务 默认路径 说明
Gemini ~/.gemini/oauth_creds.json OAuth 认证凭据
Kiro ~/.aws/sso/cache/kiro-auth-token.json Kiro 认证令牌
Qwen ~/.qwen/oauth_creds.json Qwen OAuth 凭据
Antigravity ~/.antigravity/oauth_creds.json Antigravity OAuth 凭据 (支持 Claude 4.5 Opus)

说明~ 表示用户主目录Windows: C:\Users\用户名Linux/macOS: /home/用户名/Users/用户名

自定义路径:可通过配置文件中的相关参数或环境变量指定自定义存储位置


🦙 Ollama 协议使用示例

本项目支持 Ollama 协议可以通过统一接口访问所有支持的模型。Ollama 端点提供 /api/tags/api/chat/api/generate 等标准接口。

Ollama API 调用示例

  1. 列出所有可用模型
curl http://localhost:3000/ollama/api/tags
  1. 聊天接口
curl http://localhost:3000/ollama/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "[Claude] claude-sonnet-4.5",
    "messages": [
      {"role": "user", "content": "你好"}
    ]
  }'
  1. 使用模型前缀指定提供商
  • [Kiro] - 使用 Kiro API 访问 Claude 模型
  • [Claude] - 使用 Claude 官方 API
  • [Gemini CLI] - 通过 Gemini CLI OAuth 访问
  • [OpenAI] - 使用 OpenAI 官方 API
  • [Qwen CLI] - 通过 Qwen OAuth 访问

📄 开源许可

本项目遵循 GNU General Public License v3 (GPLv3) 开源许可。详情请查看根目录下的 LICENSE 文件。

🙏 致谢

本项目的开发受到了官方 Google Gemini CLI 的极大启发并参考了Cline 3.18.0 版本 gemini-cli.ts 的部分代码实现。在此对 Google 官方团队和 Cline 开发团队的卓越工作表示衷心的感谢!

贡献者列表

感谢以下所有为 AIClient-2-API 项目做出贡献的开发者:

Contributors

赞助者列表

非常感谢以下赞助者对本项目的支持:

🌟 Star History

Star History Chart


⚠️ 免责声明

使用风险提示

本项目AIClient-2-API仅供学习和研究使用。用户在使用本项目时应自行承担所有风险。作者不对因使用本项目而导致的任何直接、间接或 consequential 损失承担责任。

第三方服务责任说明

本项目是一个API代理工具不提供任何AI模型服务。所有AI模型服务由相应的第三方提供商如Google、OpenAI、Anthropic等提供。用户在使用本项目访问这些第三方服务时应遵守各第三方服务的使用条款和政策。作者不对第三方服务的可用性、质量、安全性或合法性承担责任。

数据隐私说明

本项目在本地运行不会收集或上传用户的任何数据。但用户在使用本项目时应注意保护自己的API密钥和其他敏感信息。建议用户定期检查和更新自己的API密钥并避免在不安全的网络环境中使用本项目。

法律合规提醒

用户在使用本项目时,应遵守所在国家/地区的法律法规。严禁将本项目用于任何非法用途。如因用户违反法律法规而导致的任何后果,由用户自行承担全部责任。