AIClient-2-API 是一个为开发者设计的轻量化API代理工具,其核心在于模拟多种AI客户端的授权和请求过程。该项目将那些原本仅限在客户端使用的大模型服务,例如谷歌的Gemini CLI、阿里的Qwen Code Plus以及Kiro客户端内置的Claude模型等,通过技术手段统一封装成与OpenAI API格式兼容的本地接口。这种封装的目的是提供一个统一的接入点。这意味着,开发者可以将原本依赖OpenAI接口的各类应用或工具(如LobeChat、NextChat等),直接对接到AIClient-2-API上。这样,开发者无需进行复杂的代码适配,就能无缝地使用背后所支持的多种不同大模型。该项目使用Node.js构建,支持Docker快速部署,并提供了账号池管理、故障转移和日志记录等进阶功能,以提高服务的稳定性和使用的灵活性。
功能列表
- 模拟客户端授权与请求: 核心功能,通过模拟Gemini CLI、Kiro等客户端的OAuth授权流程和请求格式,来调用其背后的模型服务,突破官方API的限制。
- 统一API接口: 将所有支持的模型封装成标准的OpenAI API格式,实现一个接口调用多种模型的目的。
- 兼容OpenAI生态: 任何支持OpenAI API的客户端和工具链都可以零成本接入,直接使用本项目提供的接口地址即可。
- 突破使用限制: 利用模拟客户端授权的方式,可以获得比官方普通免费API更高的请求额度和使用频率。
- 免费模型利用: 支持通过模拟Kiro客户端API的方式,免费调用其内置的Claude Sonnet 4模型。
- 账号池管理: 支持为每个模型服务商配置多个账号,实现请求的自动轮询、故障转移和配置降级,提升服务的稳定性。
- 请求监控与审计: 内置日志功能,可以记录所有通过代理的请求和响应内容,方便调试、审计或构建私有数据集。
- 动态提示词管理: 允许用户通过配置文件灵活控制系统提示词(System Prompt)的行为,可以强制覆盖客户端的提示词,也可以在末尾追加内容。
- 易于扩展: 项目采用模块化设计,为开发者添加新的模型服务商提供了清晰简单的实现路径。
- 容器化部署: 提供完整的Docker支持,用户可以通过Docker镜像快速部署和隔离运行环境。
使用帮助
AIClient-2-API项目旨在简化开发流程,通过一个统一的接口调用不同的大模型。以下是详细的安装和使用说明。
环境准备
在开始之前,请确保你的电脑已经安装了以下软件:
- Node.js: 项目基于Node.js运行。
- Git: 用于从GitHub克隆项目代码。
- Docker (推荐): Docker不是必需的,但官方推荐使用Docker进行部署,因为它可以简化环境配置和依赖管理。
安装与启动
方法一:使用Docker部署(推荐)
Docker是官方推荐的部署方式,它能提供一个干净、隔离的运行环境。
- 拉取Docker镜像:
打开你的终端(在Windows上是CMD或PowerShell,在macOS或Linux上是Terminal),执行以下命令从Docker Hub拉取最新的镜像:docker pull justlovemaki/aiclient-2-api:latest
- 运行容器:
执行以下命令来启动容器。这个命令会将容器的3000
端口映射到你本机的3000
端口。docker run -d -p 3000:3000 --name aiclient2api justlovemaki/aiclient-2-api:latest
你可以通过修改
-p
参数来改变映射到本机的端口号,例如-p 8080:3000
会将服务部署在本地的8080端口。
方法二:手动下载并运行
如果你不希望使用Docker,也可以直接在你的电脑上运行。
- 克隆代码库:
打开终端,进入你希望存放项目的文件夹,然后执行以下命令:git clone https://github.com/justlovemaki/AIClient-2-API.git
- 进入项目目录:
cd AIClient-2-API
- 安装依赖:
使用npm
包管理器安装项目所需的依赖库。npm install
- 启动服务:
安装完成后,执行以下命令即可启动服务。node src/api-server.js
默认情况下,服务会启动在
localhost
的3000
端口。
核心配置与使用
启动服务后,你需要将其配置到你的AI客户端应用中。
- 获取接口地址:
- 如果你是通过Docker或本地直接运行,并且没有修改端口,那么你的API接口地址是:
http://localhost:3000
。 - 如果你将服务部署在其他服务器上,请将
localhost
替换为服务器的IP地址。
- 如果你是通过Docker或本地直接运行,并且没有修改端口,那么你的API接口地址是:
- 配置客户端:
打开你常用的AI客户端(如LobeChat, NextChat, AMA, GPT-S等),找到设置API接口地址的地方。通常这个设置项被称为API Endpoint
、Base URL
或API基地址
。- 将接口地址填写为
http://localhost:3000
。 - 在API Key(API密钥)字段,填写你在启动参数中设置的密钥,默认为
123456
。 - 保存设置后,客户端的所有请求就会发送到AIClient-2-API代理服务。
- 将接口地址填写为
- 切换和使用不同模型:
AIClient-2-API通过不同的路径来调用相应的模型服务。例如:- 调用Kiro认证的Claude模型:
http://localhost:3000/claude-kiro-oauth
- 调用Gemini模型:
http://localhost:3000/gemini-cli-oauth
- 调用自定义的OpenAI兼容模型:
http://localhost:3000/openai-custom
你可以在客户端中直接选择模型,或者在支持路径切换的工具中指定完整的URL。
- 调用Kiro认证的Claude模型:
授权文件配置 (模拟客户端的关键步骤)
要使用Gemini、Kiro、Qwen等需要OAuth授权的模型,你需要先获取相应的授权文件。这是本项目模拟客户端功能得以实现的关键。
- 获取授权文件:
- Gemini: 你需要先运行Gemini的官方CLI工具并进行授权。授权后,会在用户主目录下的
~/.gemini/
文件夹生成oauth_creds.json
文件。 - Kiro: 需要下载其客户端并登录授权,之后会在
~/.aws/sso/cache/
目录生成kiro-auth-token.json
文件。 - Qwen: 使用时会自动打开浏览器进行授权,完成后会在
~/.qwen/
目录生成oauth_creds.json
文件。
- Gemini: 你需要先运行Gemini的官方CLI工具并进行授权。授权后,会在用户主目录下的
- 提供给代理服务:
获取到授权文件后,你需要告诉代理服务在哪里找到这些文件。你可以通过项目启动参数来指定授权文件的路径,例如使用Gemini时,可以这样启动服务:node src/api-server.js --model-provider gemini-cli-oauth --gemini-oauth-creds-file /path/to/your/oauth_creds.json
代理设置
如果你的运行环境无法直接访问Google、OpenAI等服务,你需要为终端设置HTTP代理。
- Linux / macOS:
export HTTP_PROXY="http://your_proxy_address:port"
- Windows (CMD):
set HTTP_PROXY=http://your_proxy_address:port
请注意,只需设置HTTP代理,不要设置HTTPS代理。
应用场景
- 统一开发环境
对于需要在多种大模型之间进行测试、比较和选择的开发者来说,AIClient-2-API提供了一个完美的解决方案。通过“模拟请求”和“统一接口”,开发者无需为每个模型维护一套独立的API调用代码,只需将所有请求指向本地代理,就可以通过简单的参数切换来调用不同的后端模型,极大地简化了开发和调试流程。 - 为现有应用赋能
如果你已经拥有一个基于OpenAI API构建的应用,但希望引入更多样化的模型(例如利用Gemini的免费额度,或Claude的文本处理能力),AIClient-2-API可以作为中间层无缝接入。无需修改现有应用的大量代码,只需将API请求地址指向该代理,即可立即使用所有支持的模型。 - 个人学习与研究
对于AI爱好者和研究人员,官方API的高昂费用和调用限制是一个障碍。该项目通过模拟客户端授权等方式,让用户可以利用Gemini等模型的免费调用额度,或使用Kiro内置的免费Claude模型,为个人学习和进行小规模实验提供了一个低成本的平台。 - 构建可审计的AI应用
项目中强大的日志功能可以将所有通过代理的请求(Prompts)和模型的响应完整记录下来。这对于需要进行内容审计、数据分析或行为监控的场景至关重要。企业可以利用这个功能来确保AI应用的使用符合内部规范,或者收集数据用于模型的后续微调和优化。
QA
- 这个项目安全吗?我的授权文件和密钥会泄露吗?
AIClient-2-API是一个在本地运行的代理服务器,它不会收集或上传你的任何数据和密钥。 但是,你需要妥善保管好你的授权文件和在启动参数中设置的API密钥,避免在不安全的网络环境中使用。 - 为什么我无法访问Google或OpenAI的服务?
如果你的服务器或本地环境位于无法直接访问这些服务的地区,你需要在运行本项目的终端中设置HTTP代理。具体设置方法请参考文档中的“代理设置”部分。 - 使用Gemini CLI模式是否意味着我每天真的可以无限次调用?
该项目通过模拟Gemini CLI的授权方式来绕过官方对普通免费API的速率限制,从而获得更高的请求额度,但并非意味着完全没有限制。官方对CLI工具的使用仍然会有一定的频率和用量监控,过度滥用仍有可能导致账户被限制。 - 我需要事先安装那些被模拟的客户端软件吗?
你不需要安装完整的客户端软件,但你必须运行一次这些客户端软件的授权流程,以获取它们本地生成的OAuth授权文件(例如oauth_creds.json
或kiro-auth-token.json
)。AIClient-2-API正是通过读取这些文件来完成模拟客户端的授权步骤。 - 这个项目是否需要付费?
AIClient-2-API项目本身是开源免费的,遵循GPLv3开源许可。 它不提供任何AI模型服务,只是一个API代理工具。 你调用后端模型所产生的费用(如果超出免费额度)需要由相应的第三方服务商收取。