B2BB2B LLM

GitHub Copilot

使用 BYOK 和自定义 OpenAI 兼容端点将 GitHub Copilot Chat、VS Code 代理和 Copilot CLI 连接到 Model Gate。

GitHub Copilot穿过模型门

GitHub Copilot 和 Visual Studio Code 支持 自带密钥 (BYOK) 模型。 Model Gate 可用作 Copilot 聊天和代理工作流程的 OpenAI 兼容自定义端点。

对于 VS Code,推荐的设置是 自定义端点 提供者与 响应API。仅当选定的模型或工作流程特别需要该 API 系列时,才使用聊天完成。

所需值

API key: mg_live_...
Responses endpoint: https://api.model-gate.com/v1/responses
Chat Completions endpoint: https://api.model-gate.com/v1/chat/completions
Base URL for Copilot CLI: https://api.model-gate.com/v1

在中创建专用的 API 密钥 模型门控制面板。对于团队或工作站集成,最好使用单独的密钥,而不是重复使用不相关的生产密钥,这样限制、请求历史记录、轮换和撤销仍然易于审核。

在配置 Copilot 之前列出当前启用的型号:

curl https://api.model-gate.com/v1/models \
  -H "Authorization: Bearer mg_live_..."

使用此端点返回的启用的规范模型 ID 或管理员管理的别名。

VS Code:推荐的自定义端点设置

当前 VS Code 版本在语言模型编辑器中公开 BYOK 模型。

1. 打开命令面板。 2. 跑步 聊天:管理语言模型。 3. 选择 添加模型。 4. 选择 自定义端点。 5. 使用组名称,例如 Model Gate。 6. 当 VS Code 请求提供者凭据时,输入 Model Gate API 密钥。 7. 选择 回应 当所选模型支持响应 API 时,作为 API 类型。 8. 使用显式模型门端点配置模型并保存生成的 chatLanguageModels.json。 9. 从聊天模型选择器中选择模型门模型。

不要使用已弃用的 github.copilot.chat.customOAIModels 设置新配置。当前的自定义终结点提供程序支持响应、聊天完成和消息样式终结点,并且是首选的 VS Code 配置路径。

推荐的响应配置

生成的 chatLanguageModels.json 可以使用这样的配置:

[
  {
    "name": "Model Gate",
    "vendor": "customendpoint",
    "apiKey": "${input:modelGateApiKey}",
    "apiType": "responses",
    "models": [
      {
        "id": "gpt-5.4",
        "name": "GPT-5.4 through Model Gate",
        "url": "https://api.model-gate.com/v1/responses",
        "toolCalling": true
      }
    ]
  }
]

代替 gpt-5.4 具有启用的模型门模型或别名。

VS Code 通常将 API 密钥发送为:

Authorization: Bearer mg_live_...

这是 Model Gate OpenAI 兼容 API 的正确身份验证形式。

聊天完成回退

如果所选工作流程需要聊天完成,请将模型配置为:

[
  {
    "name": "Model Gate",
    "vendor": "customendpoint",
    "apiKey": "${input:modelGateApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "MODEL_ID",
        "name": "MODEL_ID through Model Gate",
        "url": "https://api.model-gate.com/v1/chat/completions",
        "toolCalling": true
      }
    ]
  }
]

首选明确的完整端点 URL。如果 VS Code 更改 URL 路径推断行为,这可以避免歧义。

模型能力建议

Copilot 代理工作流程需要一个可以使用工具的模型。为了通过 Model Gate 可靠地使用代理:

- 选择经过验证的型号 工具/函数调用 支持; - 选择一个型号 流媒体 支持; - 对于图像附件,请使用经过验证的模型 视觉/图像输入 能力和设置 "vision": true 对于该模型; - 使用大型上下文模型进行存储库规模的代理工作; GitHub 目前建议 Copilot CLI 自定义模型至少有 128k-token 上下文窗口; - 不做广告 toolCalling, vision、推理、上下文或输出限制超出所选模型门模型的实际能力; - 在为大型团队启用模型之前,在 Model Gate Playground 中测试确切的模型。

如果你手动设置 contextWindow, maxInputTokens, 或者 maxOutputTokens 在 VS Code 中,使用经过身份验证的所选模型的限制 /models 页面或来自 GET /v1/models;不要猜测他们。模型门映射字段如下:

VS代码设置模型门场
contextWindowcontext_window (与相同的值 context_length
maxInputTokensmax_input_tokens
maxOutputTokensmax_output_tokens

经过认证的 /models 页面显示这些为 语境, 最大输入, 和 最大输出 当对应的值已知时。直接检查 API 对象:

curl -s https://api.model-gate.com/v1/models \
  -H "Authorization: Bearer mg_live_..." \
| jq '.data[] | select(.id=="MODEL_ID") | {context_window,max_input_tokens,max_output_tokens}'

值为 0 意味着 Model Gate 没有该限制的配置值。在这种情况下,请保留相应的手动 VS Code 设置未设置,而不是输入 0 或发明一个极限。

VS Code 中的实用程序模型

VS Code 还使用较小的背景模型来执行标题、摘要、提交消息、重命名建议和意图检测等任务。

如果您在没有 GitHub 托管的 Copilot 模型的情况下使用 Model Gate BYOK,请配置:

chat.utilityModel
chat.utilitySmallModel

选择快速且便宜的 Model Gate 模型 chat.utilitySmallModel。为提交消息生成或其他轻量级实用工作支付最大的推理模型通常没有任何好处。

chat.byokUtilityModelDefault 设置还可以控制实用程序工作是否遵循所选的 BYOK 主代理模型、使用 GitHub Copilot 实用程序模型或没有默认值。

副驾驶 CLI

GitHub Copilot CLI 通过环境变量支持与 OpenAI 兼容的自定义提供程序。

Linux 或 macOS

export COPILOT_PROVIDER_TYPE="openai"
export COPILOT_PROVIDER_BASE_URL="https://api.model-gate.com/v1"
export COPILOT_PROVIDER_API_KEY="mg_live_..."
export COPILOT_MODEL="MODEL_ID"

副驾驶```

Windows PowerShell

$env:COPILOT_PROVIDER_TYPE = "openai"
$env:COPILOT_PROVIDER_BASE_URL = "https://api.model-gate.com/v1"
$env:COPILOT_PROVIDER_API_KEY = "mg_live_..."
$env:COPILOT_MODEL = "MODEL_ID"

副驾驶```

对于 Copilot CLI,所选型号必须支持 工具调用和流式传输。使用已启用的 Model Gate 模型或别名并在使配置永久化之前对其进行测试。

请勿将 API 密钥放置在 shell 历史记录、存储库文件或已提交的文件中 .env。尽可能使用操作系统凭据存储、受保护的 shell 环境或组织秘密管理工具。

副驾驶商业和企业

GitHub 还通过 BYOK 支持组织/企业自定义模型。 GitHub 目前列出了 OpenAI 兼容提供商 作为受支持的自定义模型提供商类别。此组织级功能由 GitHub 策略管理,并且可能处于预览状态,具体取决于 Copilot 界面。

对于受管理的组织:

1. 启用GitHub 定制模型/BYOK 您的 Copilot 计划所需的政策。 2. 在组织或企业 Copilot 模型设置中添加自定义 OpenAI 兼容提供程序/模型。 3. 使用具有最低必要 Model Gate 权限和限制的专用 Model Gate API 密钥。 4. 使用模型门端点和您的帐户可以访问的模型 ID。 5. 在 Copilot Chat/座席工作流程中验证模型,然后在组织模型选择器中广泛公开该模型。

GitHub 可以在功能发展时更改组织自定义模型 UI。按照当前的 GitHub 管理 UI 获取确切的字段标签,而不是依赖旧版本的屏幕截图。

安全和成本建议

- 为 Copilot 创建专用的 Model Gate 密钥,而不是共享通用密钥。 - 应用适合开发人员代理流量的 RPM 限制、并发限制、支出限制或业务组策略。 - 如果将密钥粘贴到源代码管理、聊天、日志或问题中,请立即轮换密钥。 - 绝不承诺 mg_live_...chatLanguageModels.json;让 VS Code 存储凭据或引用输入/秘密。 - 保持破坏性工具批准处于启用状态,除非您的开发环境有意沙盒化。 - 代理模式可以根据一个用户指令生成多个模型/工具轮次。在为大型存储库启用昂贵的推理模型之前设置模型门支出限制。 - 对后台任务使用较小的实用模型,并为规划、调试或复杂的重构保留较大的推理模型。 - 在调查意外成本、延迟、速率限制或提供商错误时检查模型门请求历史记录。

BYOK 可以取代什么,不能取代什么

当模型支持所需的功能时,Model Gate BYOK 模型可以为 VS Code 聊天、代理工作流程、工具和实用任务提供支持。

确实如此 不是 自动替换每个 GitHub Copilot 功能。根据当前的 VS Code/GitHub 版本,标准内联代码完成、语义搜索、嵌入或其他 GitHub 托管服务等功能仍可能需要 GitHub 身份验证、Copilot 计划或 GitHub 基础设施。

因此,当您的目标是控制 聊天/代理模型路径及其计费,而不是假设所有 GitHub Copilot 网络流量都通过 Model Gate 路由。

在测试 Copilot 之前验证 Model Gate

回应

curl https://api.model-gate.com/v1/responses \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "Reply with exactly: Model Gate OK"
  }'

聊天完成

curl https://api.model-gate.com/v1/chat/completions \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "messages": [{"role": "user", "content": "Reply with exactly: Model Gate OK"}]
  }'

如果这些请求失败,请在调试 Copilot 之前修复 API 密钥/模型/Model Gate 策略。

故障排除

问题解决
代理模式下模型不出现验证模型是否配置了工具调用,并且实际的 Model Gate 模型是否支持函数/工具调用。更改提供程序配置后重新启动 VS Code。
401 invalid_api_key重新输入或旋转专用模型门密钥。确认副驾驶发送 Authorization: Bearer ...
404 或错误的终点对于响应,请使用明确的 https://api.model-gate.com/v1/responses;用于聊天完成使用 /v1/chat/completions
找不到型号询问 /v1/models 并使用已启用的规范 ID 或别名。
代理无法使用工具选择具有经过验证的工具/函数调用的模型。 Copilot CLI 还需要流式传输。
图片附件被忽略/拒绝使用具有经过验证的图像输入/视觉功能的模型并配置 vision: true 仅适用于该型号。
实用程序功能不适用于仅 BYOK 设置配置 chat.utilityModelchat.utilitySmallModel 到可用的 BYOK 型号。
内联补全仍然使用 GitHub 或需要登录预期:BYOK 主要控制聊天/代理/实用程序模型流量,而不是每个 Copilot 功能。
请求费用出乎意料地昂贵使用较小的模型进行实用工作,在适当的情况下降低推理,并配置模型门支出/RPM/并发限制。

当前上游参考

GitHub 和 VS Code 可以在版本之间更改 BYOK 配置。对于当前上游行为,请检查:

- https://code.visualstudio.com/docs/agent-customization/language-models - https://docs.github.com/en/copilot/concepts/models/bring-your-own-key - https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models - https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-organization/enable-custom-models