使用 GitHub Copilot CLI 集成 GenStudio API
GitHub Copilot CLI 支持通过 BYOK(Bring Your Own Key)连接外部模型。本文介绍如何通过 GenStudio 的 OpenAI 兼容 API,在 Copilot CLI 中使用 glm-5.1、minimax-m2.7、kimi-k2.5 等模型。
使用前须知
使用前请确认:
- 已安装
copilot命令。 - 目标模型支持 tool calling 和 streaming。
- 使用 GitHub 托管能力(例如代码搜索)时,需要先执行
copilot login。其他登录方式,请参考 GitHub Copilot CLI。
警告
GitHub Copilot CLI 使用自定义 Provider 时,一次会话只绑定一个模型。切换模型时,需退出当前会话,再使用新的 COPILOT_MODEL 或 copilot --model 重新启动。会话内的 /model、/models 不适用于此场景。
获取 API 接入信息
GenStudio 通用 LLM API
适用于按量付费场景。
API Key:创建
sk-前缀的密钥。详见 GenStudio API 快速集成。按 Token 计费,有 频率限制,详见 LLM API 计费规则。
OpenAI (OpenAI Compatible)
- Base URL:
https://cloud.infini-ai.com/maas/v1 - Endpoints
- Create Chat Completion:
/chat/completions - List Models:
/models
- Create Chat Completion:
- Base URL:
通过 API 获取最新可用模型列表
调用以下接口查询可用模型。
使用通用 API Key(sk- 前缀)查询:
curl --request GET \
--url 'https://cloud.infini-ai.com/maas/v1/models' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer sk-xxxxxxxxxx'配置 Copilot CLI 环境变量
BYOK 通过环境变量配置。本文仅介绍 OpenAI-compatible 接入方式,使用环境变量进行配置。
COPILOT_PROVIDER_BASE_URL: Base URL,不追加/chat/completions。COPILOT_PROVIDER_API_KEY: API 密钥。COPILOT_MODEL:模型 ID,例如glm-5.1。也可以在启动时指定,例如copilot --model glm-5.1。COPILOT_PROVIDER_TYPE:API 协议类型,可省略,默认值为openai。
由于自定义模型通常不在 Copilot 内置目录中,建议补充 token 限额(以 glm-5.1 为例)。切换模型时,请按目标模型的上下文窗口更新这两个值。
COPILOT_PROVIDER_MAX_PROMPT_TOKENS=200000COPILOT_PROVIDER_MAX_OUTPUT_TOKENS=128000
macOS / Linux:当前终端会话中临时生效
export COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1"
export COPILOT_PROVIDER_API_KEY="sk-xxx"
export COPILOT_MODEL="glm-5.1"
export COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000"
export COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="128000"
copilotWindows PowerShell:当前终端会话中临时生效
$env:COPILOT_PROVIDER_BASE_URL = "https://cloud.infini-ai.com/maas/v1"
$env:COPILOT_PROVIDER_API_KEY = "sk-xxx"
$env:COPILOT_MODEL = "glm-5.1"
$env:COPILOT_PROVIDER_MAX_PROMPT_TOKENS = "200000"
$env:COPILOT_PROVIDER_MAX_OUTPUT_TOKENS = "128000"
copilot常用启动方式
# 交互式会话
copilot
# 交互式会话,附带初始任务
copilot -i "Review this repository"
# 非交互式调用
copilot -p "Summarize the current diff" --allow-all-tools切换模型与简化启动命令
自定义 Provider 下,会话内 /model、/models 不适用。切换模型时,需要修改 COPILOT_MODEL 或使用 --model 指定,然后重新启动会话。
最直接的方式是在启动时显式指定模型:
copilot --model glm-5.1
copilot --model minimax-m2.7模型 ID 应与 GenStudio /models API 接口返回值一致。非内置模型需同步更新 token 限额。
如果需要频繁切换模型,建议把常用启动方式写成 alias 或 function。
固定模型可写成 alias:
alias copilot-genstudio='COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1" COPILOT_PROVIDER_API_KEY="sk-xxx" COPILOT_MODEL="glm-5.1" COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000" COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="128000" copilot'需要按次切换模型时可改用 function:
copilot-genstudio() {
COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1" \
COPILOT_PROVIDER_API_KEY="sk-xxx" \
COPILOT_PROVIDER_MAX_PROMPT_TOKENS="${2:-200000}" \
COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="${3:-128000}" \
copilot --model "${1:-glm-5.1}"
}用法:
copilot-genstudio
copilot-genstudio glm-5.1
copilot-genstudio kimi-k2.5 200000 128000建议写入 ~/.zshrc 或 ~/.bashrc,并使用独立名称(如 copilot-genstudio),避免与默认 copilot 冲突。
常见问题
为什么 COPILOT_MODEL 就够了?
COPILOT_MODEL 同时设置内部模型 ID(COPILOT_PROVIDER_MODEL_ID)和发送给 Provider 的模型名(COPILOT_PROVIDER_WIRE_MODEL)。具体解释,请参考 copilot providers help 命令输出。