AIClient-2-API
扫码查看

将Gemini、Kiro等多平台AI模型转换为标准OpenAI接口的代理服务

AIClient-2-API

综合介绍

AIClient-2-API 是一个开源的 Node.js 代理服务项目,旨在解决不同大模型厂商接口不兼容的问题。它通过模拟 Gemini CLI、Kiro、Qwen Code(通义灵码)、Antigravity 等特定客户端的请求与授权流程,将这些原本仅限特定客户端使用或接口格式各异的模型服务,统一封装为标准的 OpenAI API 格式(如 /v1/chat/completions)。这意味着用户可以在任何支持 OpenAI 接口的第三方应用(如 NextChat、LobeChat、沉浸式翻译等)中,直接调用上述平台的模型能力。该项目不仅支持多账号轮询和故障转移以保障服务高可用,还提供了完善的日志审计功能,是开发者整合多种 AI 模型资源、降低开发与使用成本的实用工具。

功能列表

  • 多模型协议统一:将 Gemini、Claude(通过Kiro)、Qwen Code 等非标准接口转换为完全兼容 OpenAI 的 API 格式。
  • 账号池管理:支持配置多个服务商账号,实现请求的轮询(Round Robin)分发,有效避免单账号速率限制。
  • 故障转移机制:当某个账号请求失败或额度耗尽时,系统自动切换至下一个可用账号,确保服务不中断。
  • 多种认证方式:支持 Bearer Token、GCP API Key 以及 URL 参数等多种鉴权方式,灵活适应不同客户端需求。
  • Docker 容器化部署:提供官方 Docker 镜像,支持一键部署,环境隔离且易于迁移。
  • 流式响应支持:完整支持 Server-Sent Events (SSE) 流式输出,提供打字机般的实时交互体验。
  • 请求日志审计:支持将所有请求和响应记录到本地文件或控制台,方便开发者进行 Prompt 调试和合规审计。
  • 动态系统提示词:允许通过配置文件全局覆盖或追加 System Prompt,无需修改客户端设置即可统一模型人设。

使用帮助

AIClient-2-API 作为一个中间件服务,主要部署在本地或服务器上,充当客户端应用与大模型厂商之间的桥梁。以下是详细的安装与使用流程:

1. 环境准备

确保您的计算机已安装以下环境:

  • Node.js(版本 18 或更高)
  • Git
  • 或者直接使用 Docker(推荐,无需配置 Node 环境)

2. 获取模型授权信息

在运行服务前,您需要准备好对应服务商的凭证。例如:

  • Gemini:需要获取 x-goog-api-key 或通过 CLI 登录后的 Token。
  • Kiro:需要下载 Kiro 客户端并登录,获取 kiro-auth-token.json 授权文件。

3. 安装与部署

方式一:使用 Docker 快速启动(推荐)

这是最简单的部署方式,只需一条命令即可启动服务,默认监听 3000 端口。

docker run -d -p 3000:3000 --name aiclient2api justlovemaki/aiclient-2-api:latest

启动后,服务即在 http://localhost:3000 运行。默认 API Key 为 123456(可后续修改)。

方式二:源码手动部署

如果您需要修改代码或进行二次开发,可以使用源码部署。

  1. 克隆仓库
    git clone https://github.com/justlovemaki/AIClient-2-API.git
    cd AIClient-2-API
    
  2. 安装依赖
    npm install
    
  3. 配置文件:复制示例配置文件并进行编辑:
    cp config.example.json config.json
    

    使用文本编辑器打开 config.json,在 accounts 字段中填入您准备好的 API Key 或 Token。例如配置 Gemini:

    "Gemini": [
    {
    "apiKey": "您的Gemini_API_KEY",
    "proxy": "" // 如果需要代理可在此填写
    }
    ]
    
  4. 启动服务
    node src/api-server.js
    

4. 客户端连接配置

现在,您可以将任何支持 OpenAI 接口的软件连接到 AIClient-2-API。以 NextChat (ChatGPT-Next-Web) 为例:

  1. 打开 NextChat 设置页面。
  2. 找到 模型服务商 设置,选择 OpenAI
  3. 接口地址 (Base URL):填写 http://localhost:3000(如果是远程部署,填写服务器 IP:3000)。
    • 注意:如果客户端要求填写完整路径,可能需要写成 http://localhost:3000/v1
  4. API Key:填写启动时设置的密钥,默认为 123456
  5. 自定义模型名称:添加您在配置文件中启用的模型名称,例如 gemini-pro 或 claude-3-5-sonnet(具体名称取决于您配置的映射)。

5. 进阶使用:多账号轮询

如果您有多个 API Key,可以在 config.json 的数组中添加多个对象。服务会自动轮询使用这些 Key,从而提高并发处理能力。

"Gemini": [
{ "apiKey": "Key_1" },
{ "apiKey": "Key_2" },
{ "apiKey": "Key_3" }
]

应用场景

  1. 集中管理多个免费模型资源开发者手中可能有 Gemini 的免费 API Key、Kiro 的免费额度以及其他平台的试用账号。通过此工具,可以将这些零散的资源汇聚成一个统一的接口池,在同一个聊天窗口中随意切换模型,无需频繁更改配置。
  2. 为不支持特定模型的应用提供接入能力许多开源 AI 客户端(如某些 IDE 插件或老旧的聊天机器人)仅硬编码支持 OpenAI 格式。使用 AIClient-2-API,可以让这些老旧应用也能“使用”最新的 Gemini 或 Claude 模型,因为它在中间完成了协议转换。
  3. 高并发服务的负载均衡对于需要频繁调用 AI 接口的自动化脚本或小型服务,单一账号容易触发 API Rate Limit(速率限制)。利用本工具的账号池和故障转移功能,可以显著提高自动化任务的稳定性和成功率。

QA

  1. 这个工具是免费的吗?AIClient-2-API 本身是完全免费且开源的软件。但是,您调用的底层模型服务(如 OpenAI、Gemini 等)可能根据其官方政策产生费用或消耗您的免费额度。
  2. 使用这个工具安全吗?该工具运行在您自己的本地机器或服务器上,您的 API Key 存储在本地配置文件中,不会上传到任何第三方服务器。代码开源,您可以随时审查代码逻辑以确保安全。
  3. 为什么连接后提示 429 错误?429 通常表示请求过多被上游服务商限制。请检查您的 config.json 中配置的账号额度是否已用完,或者尝试添加更多的账号到配置池中以分摊请求压力。
  4. 支持图片上传(多模态)吗?支持。只要您调用的底层模型(如 Gemini 1.5 Pro)支持视觉输入,AIClient-2-API 就会正确透传图片数据。您可以在支持多模态的客户端(如 LobeChat)中上传图片进行测试。
微信微博邮箱复制链接