AIClient-2-API:多模型统一接口的 OpenAI 兼容代理层

 

AIClient-2-API:多模型统一接口的 OpenAI 兼容代理层



AIClient2API:模拟 Gemini CLI Kiro 客户端请求,兼容 OpenAI API。可每日千次Gemini模型请求, 免费使用Kiro 内置 Claude 模型。通过 API 轻松接入任何客户端,让AI开发更高效!

概况 / 目标

从 README 和项目说明来看,AIClient-2-API 的主要目标是:

  • 将多个只在客户端或专有平台上可用的大模型(如 Gemini CLI、Qwen Code、Kiro 的 Claude 模型等)模拟成一个兼容 OpenAI API 的接口。也就是说,用统一的接口调用,就能访问不同大模型后端。
  • 支持多模型并能在请求时切换:你可以灵活地在不同模型提供者之间切换。
  • 支持“账号池”管理(多个账号轮询、故障转移、配置降级)以提高稳定性。
  • 提供日志 / 审计、缓存、系统提示控制等功能,以便在使用过程中监控、调试和优化。
  • 支持容器化部署(Docker)和模块化扩展,让你可以比较方便地在自己环境中部署使用。

换句话说,这个项目是一个桥梁/适配层,目的是让那些原本接口不兼容或者只能在特定环境(客户端或私有平台)使用的模型,也能像 OpenAI 那样以统一 API 被调用。

核心设计与架构

下面是这个项目在架构与设计上的一些关键要点:

设计 / 模式描述
适配器模式 & 策略模式每个模型(如 Gemini CLI、Qwen、Claude via Kiro 等)被封装成一个提供者(provider),通过适配器把其原生接口“翻译”成 OpenAI 风格。
模型协议 & 路由支持不同协议(OpenAI、Gemini、Claude …)之间的映射,以及通过 URL 路径切换模型提供者。比如 http://localhost:3000/claude-custom/gemini-cli-oauth 等。
账号池 & 故障切换如果某个模型账号失效,能够自动切换到另一个账号;或者降级到一个备用模型配置。这样可以提升稳定性和可用性。
日志与提示词管理提示日志(Prompt Logging)、系统提示词(system prompt)的覆盖或追加模式,让你能更灵活地控制模型行为 & 监控请求。
健康检查 / 测试覆盖项目里包含健康检查接口,及单元/集成测试,确保代理服务稳定。
部署方式支持 Docker 部署,也可以作为 Node.js 服务直接运行。

功能 & 特性总结

以下是这个项目的一些关键功能:

  • 统一接口:外部客户端或应用只需要调用 OpenAI 风格的接口(例如 POST /v1/chat/completions 这种格式),就能背后交给不同模型后端处理。
  • 模型切换:在调用时可以通过路径或配置选择不同模型后端。
  • 高频访问 / 绕限额:利用 Gemini CLI 的 OAuth 授权等方式,可能绕过部分官方免费 API 的速率或配额限制,从而提升使用频率。
  • 免费使用 Claude 模型:在 “Kiro 模式” 下支持使用内置的 Claude 模型(也就是借助 Kiro 平台)。
  • 账号池 / 轮询:支持为每个模型提供商配置多个账号,轮询使用、检测失效后切换。
  • 日志 & 审计:保存所有 prompt(请求)与响应,用于调试、审计、提示词优化等。
  • 灵活的系统提示控制:可以设定系统级的 prompt,选择覆盖或追加。
  • 模块化扩展:如果未来你要接入一个新的模型服务商,只要写一个新的适配器模块就能加入系统。
  • 健康检查:可监控服务是否正常、模型是否可达等。
  • Docker 支持:方便部署、隔离环境。

使用场景 & 优缺点

使用场景

这个项目适合以下几类场景:

  1. 多模型融合 / 混合调用
    你想在一个客户端或应用中灵活调用不同模型(比如在某些场景用 Gemini,在另一些场景用 Claude 或 Qwen)而不想为每个模型都写单独的适配逻辑,就可以用这个项目作为中间层。

  2. 兼容性层
    如果你已有很多基于 OpenAI 接口写的代码或工具(比如 Chat UI、插件、Agent 等),你可以把这些工具的 “API 地址” 指向这个代理服务,从而间接使用其他模型。这样就不用改大量调用逻辑。

  3. 提高稳定性 / 拓展资源
    利用账号池、多账户切换、故障转移等机制,让使用某些模型服务更加稳健。

  4. 监控 / 审计 / 日志记录
    在商业或研究环境下,希望记录所有 prompt / 响应以做模型分析、调优、安全审计等。

优点

  • 接口统一、易于集成
  • 支持多模型、切换灵活
  • 提供监控、日志、账号池等高级功能
  • 扩展性好:可逐步添加新的模型后端
  • 部署灵活(支持 Docker、Node.js 原生)

缺点 / 风险

  • 合规 / 法律风险:仿造 / 模拟某些客户端 / 平台接口,有可能触及服务条款或版权 / 使用协议问题。项目本身在 README 中也写了免责声明。
  • 稳定性 / 可靠性:如果某个后端服务的接口变动或失效,适配器可能失效,需要及时维护。
  • 延迟 / 性能开销:作为中间代理,增加了一层网络 / 转换开销,可能会有额外延迟。
  • 成本 / 配额管理:虽然可以绕过某些限制,但背后使用的模型服务仍然可能有配额限制或收费策略,需要妥善管理账号池等。
  • 安全 / 隐私:代理中会处理 prompt、响应、API 密钥等敏感数据,需要确保服务安全、密钥保护、防止日志泄露等。

举例说明 / 工作流程(简化版)

假设你在代码里原本是这样调用 OpenAI 接口:

POST /v1/chat/completions
{
  "model": "gpt-4",
  "messages": [...]
}

你把这个请求的目标地址换成 http://localhost:3000(运行该代理服务的地址)。代理服务会:

  1. 接收到这个 “OpenAI-style” 请求
  2. 解析出你希望调用的模型(可能通过请求路径、header、请求 body 等标记)
  3. 根据配置 / 路由 / adapter,把这个请求转成某个后端模型服务所需的原生请求格式(例如 Gemini CLI、Qwen、Kiro Claude等)
  4. 向该模型后端发起请求
  5. 得到响应后,把它转换成标准 OpenAI 接口返回的结构
  6. 返回给客户端

在这个过程中,代理可以做额外操作,比如日志记录、失败重试、账号切换、速率控制等。

Github:https://github.com/justlovemaki/AIClient-2-API
油管:https://youtu.be/iM6N3kXoWpQ


留言