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(可后续修改)。
方式二:源码手动部署
如果您需要修改代码或进行二次开发,可以使用源码部署。
- 克隆仓库:
git clone https://github.com/justlovemaki/AIClient-2-API.git cd AIClient-2-API - 安装依赖:
npm install - 配置文件:复制示例配置文件并进行编辑:
cp config.example.json config.json使用文本编辑器打开
config.json,在accounts字段中填入您准备好的 API Key 或 Token。例如配置 Gemini:"Gemini": [ { "apiKey": "您的Gemini_API_KEY", "proxy": "" // 如果需要代理可在此填写 } ] - 启动服务:
node src/api-server.js
4. 客户端连接配置
现在,您可以将任何支持 OpenAI 接口的软件连接到 AIClient-2-API。以 NextChat (ChatGPT-Next-Web) 为例:
- 打开 NextChat 设置页面。
- 找到 模型服务商 设置,选择 OpenAI。
- 接口地址 (Base URL):填写
http://localhost:3000(如果是远程部署,填写服务器 IP:3000)。- 注意:如果客户端要求填写完整路径,可能需要写成
http://localhost:3000/v1。
- 注意:如果客户端要求填写完整路径,可能需要写成
- API Key:填写启动时设置的密钥,默认为
123456。 - 自定义模型名称:添加您在配置文件中启用的模型名称,例如
gemini-pro或claude-3-5-sonnet(具体名称取决于您配置的映射)。
5. 进阶使用:多账号轮询
如果您有多个 API Key,可以在 config.json 的数组中添加多个对象。服务会自动轮询使用这些 Key,从而提高并发处理能力。
"Gemini": [
{ "apiKey": "Key_1" },
{ "apiKey": "Key_2" },
{ "apiKey": "Key_3" }
]
应用场景
- 集中管理多个免费模型资源开发者手中可能有 Gemini 的免费 API Key、Kiro 的免费额度以及其他平台的试用账号。通过此工具,可以将这些零散的资源汇聚成一个统一的接口池,在同一个聊天窗口中随意切换模型,无需频繁更改配置。
- 为不支持特定模型的应用提供接入能力许多开源 AI 客户端(如某些 IDE 插件或老旧的聊天机器人)仅硬编码支持 OpenAI 格式。使用 AIClient-2-API,可以让这些老旧应用也能“使用”最新的 Gemini 或 Claude 模型,因为它在中间完成了协议转换。
- 高并发服务的负载均衡对于需要频繁调用 AI 接口的自动化脚本或小型服务,单一账号容易触发 API Rate Limit(速率限制)。利用本工具的账号池和故障转移功能,可以显著提高自动化任务的稳定性和成功率。
QA
- 这个工具是免费的吗?AIClient-2-API 本身是完全免费且开源的软件。但是,您调用的底层模型服务(如 OpenAI、Gemini 等)可能根据其官方政策产生费用或消耗您的免费额度。
- 使用这个工具安全吗?该工具运行在您自己的本地机器或服务器上,您的 API Key 存储在本地配置文件中,不会上传到任何第三方服务器。代码开源,您可以随时审查代码逻辑以确保安全。
- 为什么连接后提示 429 错误?429 通常表示请求过多被上游服务商限制。请检查您的
config.json中配置的账号额度是否已用完,或者尝试添加更多的账号到配置池中以分摊请求压力。 - 支持图片上传(多模态)吗?支持。只要您调用的底层模型(如 Gemini 1.5 Pro)支持视觉输入,AIClient-2-API 就会正确透传图片数据。您可以在支持多模态的客户端(如 LobeChat)中上传图片进行测试。
