# 在 GitHub Copilot CLI 中使用自己的 LLM 模型

您可以通过提供自己的 API 密钥，在 Copilot 中使用您选择的外部提供商的模型。

你可以配置Copilot CLI以使用自己的LLM提供商（即BYOK，自带密钥），而不是GitHub托管的模型。 这样，便可以连接到与 OpenAI 兼容的终结点、Azure OpenAI 或 Anthropic，包括本地运行的模型（如 Ollama）。

> \[!NOTE]
> 本文适用于想要在本地计算机上配置自己的 LLM 提供程序 API 密钥的用户。 若要为企业中的用户设置自定义模型，请参阅 [在企业中为 GitHub Copilot 启用自定义模型](/zh/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/enable-custom-models)。

## 先决条件

* Copilot CLI 已安装。 请参阅“[安装 GitHub Copilot CLI](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli)”。
* 你有受支持 LLM 提供程序的 API 密钥，或者有一个正在运行的本地模型（例如 Ollama）。

## 支持的提供程序

Copilot CLI 支持三种提供程序类型：

| 供应商类型       | 兼容的服务                                                                      |
| ----------- | -------------------------------------------------------------------------- |
| `openai`    | OpenAI、Ollama、vLLM、Foundry Local 和任何其他 OpenAI 聊天完成 API 兼容的终结点。 这是默认提供程序类型。 |
| `azure`     | Azure OpenAI 服务。                                                           |
| `anthropic` | Anthropic（克劳德模型）。                                                          |

有关其他示例，请在终端中运行 `copilot help providers` 。

## 模型要求

模型必须支持 **工具调用** （也称为函数调用）和 **流式处理**。 如果模型不支持任一功能， Copilot CLI 则返回错误。 为了获得最佳结果，请使用具有至少 128k 个标记的上下文窗口的模型。

## 配置提供程序

通过在开始 Copilot CLI之前设置环境变量来配置模型提供程序。

| 环境变量                        | 必需 | 说明                                                |
| --------------------------- | -- | ------------------------------------------------- |
| `COPILOT_PROVIDER_BASE_URL` | 是的 | 模型提供程序 API 终结点的基本 URL。                            |
| `COPILOT_PROVIDER_TYPE`     | 否  | 提供程序类型： `openai` （默认值）， `azure`或 `anthropic`。     |
| `COPILOT_PROVIDER_API_KEY`  | 否  | 您的提供程序的 API 密钥。 不需要身份验证的提供程序无需此步骤，例如本地 Ollama 实例。 |
| `COPILOT_MODEL`             | 是的 | 要使用的模型标识符。 还可以使用 `--model` 命令行标志来设置此设置。           |

## 连接到与 OpenAI 兼容的终结点

如果要连接到 OpenAI、Ollama、vLLM、Foundry Local 或任何其他与 OpenAI 聊天完成 API 兼容的终结点，请使用以下步骤。

1. 为服务提供商设置环境变量。 例如，对于本地 Ollama 实例：

   ```shell
   export COPILOT_PROVIDER_BASE_URL=http://localhost:11434
   export COPILOT_MODEL=YOUR-MODEL-NAME
   ```

   用您在 Ollama 中拉取的模型的名称替换 `YOUR-MODEL-NAME`（例如 `llama3.2`）。

2. 对于远程 OpenAI 终端，请设置 API 密钥。

   ```shell
   export COPILOT_PROVIDER_BASE_URL=https://api.openai.com/v1
   export COPILOT_PROVIDER_API_KEY=YOUR-OPENAI-API-KEY
   export COPILOT_MODEL=YOUR-MODEL-NAME
   ```

   用 `YOUR-OPENAI-API-KEY` 替换为你的 OpenAI API 密钥，用 `YOUR-MODEL-NAME` 替换为你想使用的模型（例如，`gpt-4o`）。

3. 启动 Copilot CLI。

```bash
copilot
```

## 连接到 Azure OpenAI

1. 设置 Azure OpenAI 的环境变量。

   ```shell
   export COPILOT_PROVIDER_BASE_URL=https://YOUR-RESOURCE-NAME.openai.azure.com/openai/deployments/YOUR-DEPLOYMENT-NAME
   export COPILOT_PROVIDER_TYPE=azure
   export COPILOT_PROVIDER_API_KEY=YOUR-AZURE-API-KEY
   export COPILOT_MODEL=YOUR-DEPLOYMENT-NAME
   ```

   替换以下占位符：

   * `YOUR-RESOURCE-NAME`：Azure OpenAI 的资源名称
   * `YOUR-DEPLOYMENT-NAME`：模型部署的名称
   * `YOUR-AZURE-API-KEY`：Azure OpenAI API 密钥

2. 启动 Copilot CLI。

```bash
copilot
```

## 连接到 Anthropic

1. 设置Anthropic的环境变量：

   ```shell
   export COPILOT_PROVIDER_TYPE=anthropic
   export COPILOT_PROVIDER_BASE_URL=https://api.anthropic.com
   export COPILOT_PROVIDER_API_KEY=YOUR-ANTHROPIC-API-KEY
   export COPILOT_MODEL=YOUR-MODEL-NAME
   ```

   将`YOUR-ANTHROPIC-API-KEY`替换为你的人类 API 密钥，并将YOUR-MODEL-NAME替换为你想要使用的 Claude 模型（例如，`claude-opus-4-5`）。

2. 启动 Copilot CLI。

```bash
copilot
```

## 在脱机模式下运行

可以在脱机模式下运行 Copilot CLI ，以防止其与服务器联系 GitHub。 这专为隔离环境而设计，在这种环境中，CLI 应仅与你的本地或本地部署的模型提供程序通信。

> \[!IMPORTANT]
> 脱机模式仅在您的提供商也是本地或位于同一隔离环境中时，才能保证完全的网络隔离。 如果 `COPILOT_PROVIDER_BASE_URL` 指向远程终结点，则提示和代码上下文仍通过网络发送到该提供程序。

1. 请按照“配置您的提供程序”中的说明来配置您提供程序的环境变量。

2. 设置脱机模式环境变量：

   ```shell
   export COPILOT_OFFLINE=true
   ```

3. 1. 启动 Copilot CLI。

```bash
copilot
```