CLI 代理 API:将 CLI 模型无缝集成到您的应用中

在技术飞速发展的今天,人工智能(AI)已经渗透到我们生活的方方面面。无论是开发智能应用还是优化工作流程,AI 模型都扮演着越来越重要的角色。而 CLI 代理 API 正是这样一个工具,它能让开发者轻松地将 CLI 模型的能力通过 API 接口集成到各种应用中,摆脱传统终端的限制。本文将带您一步步了解 CLI 代理 API 的功能、安装方法和使用技巧,帮助您快速上手并将其应用到实际项目中。

技术开发背景图

什么是 CLI 代理 API

简单来说,CLI 代理 API 是一个代理服务器,它为 CLI 模型提供了一个与 OpenAI、Gemini 和 Claude 等平台兼容的 API 接口。这意味着,您可以通过标准的 API 调用方式,访问 CLI 模型的强大功能,而无需局限于命令行界面。无论是构建聊天机器人、自动化工具还是其他智能应用,CLI 代理 API 都能帮您实现更灵活的集成。

以下是它的一些核心功能:

  • 广泛兼容性:支持 OpenAI、Gemini 和 Claude 的 API 端点,让您可以轻松切换不同平台。
  • 灵活的响应方式:提供流式和非流式两种响应模式,适应不同应用场景。
  • 工具支持:支持函数调用和工具集成,让模型的交互更加智能。
  • 多模态输入:不仅支持文本,还能处理图像输入,扩展了使用场景。
  • 多账户管理:支持多账户轮询和负载均衡,确保服务的高可用性。

无论您是想开发一个简单的对话系统,还是需要处理复杂的多模态数据,CLI 代理 API 都能提供可靠的支持。

如何安装 CLI 代理 API

要使用 CLI 代理 API,第一步自然是安装。它的安装过程并不复杂,但需要一些基本准备。让我们一起来看看。

准备工作

在开始之前,您需要确保以下条件:

  • Go 语言环境:需要安装 Go 1.24 或更高版本。如果您还不熟悉 Go,可以把它想象成一个编程工具箱,CLI 代理 API 就是用它打造的。
  • Google 账户:您需要一个有权访问 CLI 模型的 Google 账户,这是身份验证的关键。

从源码构建

安装的具体步骤如下:

  1. 克隆代码仓库
    首先,您需要从 GitHub 上获取 CLI 代理 API 的源代码。打开终端,输入以下命令:

    git clone https://github.com/luispater/CLIProxyAPI.git
    cd CLIProxyAPI
    

    这会将代码下载到您的电脑,并进入项目目录。

  2. 构建程序
    接下来,用 Go 编译代码生成可执行文件:

    go build -o cli-proxy-api ./cmd/server
    

    完成后,您会在目录中看到一个名为 cli-proxy-api 的文件,这就是我们要用的程序。

整个过程就像搭积木,只需几步就能完成。如果您遇到问题,比如 Go 环境未配置好,可以检查一下是否正确安装了 Go 并设置了环境变量。

使用 CLI 代理 API 的基本步骤

安装好后,接下来就是实际使用。CLI 代理 API 的使用主要分为身份验证、启动服务器和调用 API 三个部分。

第一步:身份验证

在使用 API 之前,您需要通过 Google 账户登录,以确保有权限访问 CLI 模型。在终端中运行:

./cli-proxy-api --login

这会弹出一个登录页面,按照提示完成操作即可。如果您使用的是旧版 Gemini Code,可能还需要额外指定项目 ID:

./cli-proxy-api --login --project_id <your_project_id>

登录成功后,您的身份验证信息会保存下来,方便后续使用。

第二步:启动服务器

验证完成后,就可以启动代理服务器了。直接运行:

./cli-proxy-api

服务器默认会在本地的 8317 端口运行。如果一切正常,您会看到一些启动日志,表示服务器已经准备好接受请求。

第三步:调用 API 端点

CLI 代理 API 提供了几个常用的 API 端点,让您可以轻松获取模型列表或发起聊天请求。

  • 查看支持的模型
    使用以下请求获取当前可用的模型:

    GET http://localhost:8317/v1/models
    

    这会返回一个模型列表,比如 gemini-2.5-progemini-2.5-flash

  • 发起聊天请求
    要与模型对话,可以使用聊天补全端点。发送一个 POST 请求到:

    POST http://localhost:8317/v1/chat/completions
    

    请求体的示例:

    {
      "model": "gemini-2.5-pro",
      "messages": [
        {
          "role": "user",
          "content": "你好,你好吗?"
        }
      ],
      "stream": true
    }
    

    这里,"stream": true 表示使用流式响应,适合实时显示结果的场景。如果不需要流式,可以设置为 false

通过这几个步骤,您就可以开始与 CLI 模型互动了。

将 CLI 代理 API 集成到代码中

CLI 代理 API 的一个亮点是它能与 OpenAI 兼容的库无缝配合。这意味着,您可以用熟悉的工具快速开发应用。以下是 Python 和 JavaScript 的示例。

在 Python 中使用

如果您喜欢用 Python,可以借助 OpenAI 的 Python 库。代码如下:

from openai import OpenAI

client = OpenAI(
    api_key="dummy",  # 这里填入任意值即可,因为实际不使用
    base_url="http://localhost:8317/v1"
)

response = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[
        {"role": "user", "content": "你好,你好吗?"}
    ]
)

print(response.choices[0].message.content)

运行这段代码,您会看到模型的回复打印出来。注意,api_key 只是占位符,CLI 代理 API 并不依赖它。

在 JavaScript 中使用

对于前端开发者,JavaScript 也是个好选择。以下是示例代码:

import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: 'dummy', // 占位符,不实际使用
  baseURL: 'http://localhost:8317/v1',
});

const response = await openai.chat.completions.create({
  model: 'gemini-2.5-pro',
  messages: [
    { role: 'user', content: '你好,你好吗?' }
  ],
});

console.log(response.choices[0].message.content);

这段代码会异步获取模型的回复并打印到控制台。无论是 Python 还是 JavaScript,集成都非常直观。

代码开发场景

配置 CLI 代理 API

为了让 CLI 代理 API 更好地适应您的需求,可以通过配置文件进行调整。默认情况下,它会读取项目根目录下的 config.yaml 文件。如果想用自定义文件,可以在启动时指定:

./cli-proxy --config /path/to/your/config.yaml

配置选项有哪些

配置文件支持以下参数:

  • port:服务器监听的端口,默认是 8317。
  • auth-dir:存储身份验证令牌的目录,默认是 ~/.cli-proxy-api
  • proxy-url:代理地址,比如 socks5://user:pass@192.168.1.1:1080/,如果不需要代理就留空。
  • debug:设置为 true 可以开启详细日志,方便排查问题。
  • api-keys:定义用于验证请求的 API 密钥列表。
  • generative-language-api-key:支持 Gemini AIStudio 的 API 密钥列表。
  • quota-exceeded:配额超限时的行为,比如自动切换项目或模型。

配置示例

以下是一个典型的配置文件:

port: 8317
auth-dir: "~/.cli-proxy-api"
debug: false
proxy-url: ""
quota-exceeded:
   switch-project: true
   switch-preview-model: true
api-keys:
  - "your-api-key-1"
  - "your-api-key-2"
generative-language-api-key:
  - "AIzaSy...01"
  - "AIzaSy...02"
  - "AIzaSy...03"
  - "AIzaSy...04"

这个配置启用了配额超限时的自动切换,并设置了多个 API 密钥供使用。您可以根据自己的需求调整这些参数。

身份验证和密钥的作用

  • 身份验证目录auth-dir 是存放 Google 账户令牌的地方,每次登录时都会生成一个 JSON 文件,支持多账户管理。
  • API 密钥:如果设置了 api-keys,需要在请求头中加入 Authorization: Bearer your-api-key-1 来验证身份。
  • 生成式语言密钥generative-language-api-key 用于直接调用 Gemini AIStudio 的接口。

通过合理配置,您可以让 CLI 代理 API 更高效地运行。

探索高级功能

CLI 代理 API 不仅基础功能强大,还有一些高级特性值得一试。

Gemini CLI 多账户负载均衡

如果您有多个账户,可以通过负载均衡提高服务的稳定性。启动服务器后,设置环境变量:

export CODE_ASSIST_ENDPOINT="http://127.0.0.1:8317"

服务器会自动在多个账户间轮询处理请求。不过,这个功能目前只支持本地访问(127.0.0.1),以确保安全性。

使用 Docker 运行

对于喜欢容器化的开发者,CLI 代理 API 也支持 Docker。以下是操作方法:

  • 登录

    docker run --rm -p 8085:8085 -v /path/to/your/config.yaml:/CLIProxyAPI/config.yaml -v /path/to/your/auth-dir:/root/.cli-proxy-api eceasy/cli-proxy-api:latest /CLIProxyAPI/CLIProxyAPI --login
    
  • 启动服务器

    docker run --rm -p 8317:8317 -v /path/to/your/config.yaml:/CLIProxyAPI/config.yaml -v /path/to/your/auth-dir:/root/.cli-proxy-api eceasy/cli-proxy-api:latest
    

通过 Docker,您可以快速部署并管理服务,尤其适合团队协作或生产环境。

如何参与社区和贡献

CLI 代理 API 是一个开源项目,欢迎大家参与改进。如果您有新想法,可以按照以下步骤贡献代码:

  1. Fork 项目仓库。
  2. 创建功能分支:

    git checkout -b feature/amazing-feature
    
  3. 提交更改:

    git commit -m 'Add some amazing feature'
    
  4. 推送分支:

    git push origin feature/amazing-feature
    
  5. 提交 Pull Request。

项目采用 MIT 许可证,具体条款可以查看 LICENSE 文件。加入社区,不仅能提升技术,还能结识志同道合的朋友。

总结:开启您的 AI 之旅

CLI 代理 API 是一个简单却强大的工具,它将 CLI 模型的能力带入了更广阔的应用场景。从安装到配置,再到代码集成,本文为您提供了全面的指引。无论您是想开发智能应用,还是优化现有项目,CLI 代理 API 都能助您一臂之力。

希望通过这篇文章,您能感受到技术的魅力,并动手尝试将 CLI 代理 API 融入自己的工作。有什么问题或想法,欢迎在社区中交流!