Skip to main content
Select language: current language is Japanese
検索する、または Copilot に質問する
メニューを開く

鍵を持ち込む (BYOK)

          Copilot SDK認証をバイパスして、さまざまなモデル プロバイダーの独自の API キーでGitHub Copilotを使用します。

この機能を使用できるユーザーについて

GitHub Copilot SDK は、すべての Copilot プランで使用できます。

メモ

          Copilot SDK は現在 パブリック プレビューです。 機能と可用性は変更される場合があります。

Bring Your Own Key (BYOK) を使用すると、モデル プロバイダーからの独自の API キーで Copilot SDK を使用し、 GitHub Copilot 認証をバイパスできます。 これは、エンタープライズ デプロイ、カスタム モデル ホスティング、またはモデル プロバイダーとの直接課金が必要な場合に便利です。

サポートされているプロバイダー

プロバイダー種類の値メモ
OpenAI"openai"OpenAI API と OpenAI と互換性のあるエンドポイント
Azure OpenAI /Azure AI Foundry
          `"azure"` または `"openai"` | Azure でホストされるモデル ( [Azure エンドポイントの種類](#azure-endpoint-type-confusion)を参照) |

| Anthropic | "anthropic" | クロード モデル | | Ollama | "openai" | OpenAI 互換 API を使用したローカル モデル | | Microsoft Foundry Local | "openai" | OpenAI 互換 API を使用してデバイス上で AI モデルをローカルで実行する | | その他の OpenAI 互換 | "openai" | vLLM、LiteLLM など |

クイックスタート:Azure AI Foundry

Azure AI Foundry (旧称 Azure OpenAI) は、企業向けの一般的な BYOK デプロイ ターゲットです。 次の例は、/TypeScript セットアップの完全な Node.jsを示しています。

  1. Azure AI Foundry エンドポイントと API キーを使用してセッションを作成します。

    TypeScript
    import { CopilotClient } from "@github/copilot-sdk";
    
    const client = new CopilotClient();
    const session = await client.createSession({
        model: "YOUR-DEPLOYMENT-NAME",
        provider: {
            type: "openai",
            baseUrl: "https://YOUR-RESOURCE.openai.azure.com/openai/v1/",
            wireApi: "responses",  // Use "completions" for older models
            apiKey: process.env.FOUNDRY_API_KEY,
        },
    });
    
    session.on("assistant.message", (event) => {
        console.log(event.data.content);
    });
    
    await session.sendAndWait({ prompt: "What is 2+2?" });
    await client.stop();
    
           `YOUR-RESOURCE`を Azure リソース名に置き換え、`YOUR-DEPLOYMENT-NAME`をモデルのデプロイ名に置き換えます。 
           `FOUNDRY_API_KEY`環境変数を Azure API キーに設定します。
    

Python、Go、.NET の例については、 リポジトリの github/copilot-sdk を参照してください。 Java については、 github/copilot-sdk-java リポジトリを参照してください。

プロバイダー構成リファレンス

ProviderConfig フィールド

フィールドタイプ説明
type
          `"openai"`
          \|
          `"azure"`
          \|
          `"anthropic"`
         | プロバイダーの種類。 既定値は `"openai"` です。 |

| baseUrl | 文字列 | 必須。 API エンドポイント URL。 | | apiKey | 文字列 | API キー。 Ollama などのローカル プロバイダーの場合は省略可能です。 | | bearerToken | 文字列 | ベアラー トークン認証。 apiKeyよりも優先されます。 | | wireApi | "completions" | "responses" | API 形式。 既定値は "completions" です。 | | azure.apiVersion | 文字列 | Azure API バージョン。 既定値は "2024-10-21" です。 |

Wire API フォーマット形式

          `wireApi`設定によって、使用する OpenAI API 形式が決まります。

* ** "completions" ** (既定値): Chat Completions API (/chat/completions)。 ほとんどのモデルに使用します。 * ** "responses" **: 応答 API。 新しい応答形式をサポートする GPT-5 シリーズ モデルに使用します。

型固有の注記

          **OpenAI (`type: "openai"`)**
  • OpenAI API と任意の OpenAI 互換エンドポイントで動作します。

  •         `baseUrl` には、 `https://api.openai.com/v1`など、完全なパスを含める必要があります。
    
            **Azure (`type: "azure"`)**
    
  • ネイティブの Azure OpenAI エンドポイントに使用します。

  •         `baseUrl` はホスト (たとえば、 `https://YOUR-RESOURCE.openai.azure.com`) である必要があります。
    
  • URL に /openai/v1 を含めないでください。SDK はパスの構築を処理します。

            **アントロピック (`type: "anthropic"`)**
    
  • 直接 Anthropic API アクセスの場合。

  • Claude 固有の API 形式を使用します。

構成例

OpenAI Direct

TypeScript
provider: {
    type: "openai",
    baseUrl: "https://api.openai.com/v1",
    apiKey: process.env.OPENAI_API_KEY,
}

Azure OpenAI (ネイティブ Azure エンドポイント)

          `type: "azure"`のエンドポイントに`*.openai.azure.com`を使用します。
TypeScript
provider: {
    type: "azure",
    baseUrl: "https://YOUR-RESOURCE.openai.azure.com",  // Just the host
    apiKey: process.env.AZURE_OPENAI_KEY,
    azure: {
        apiVersion: "2024-10-21",
    },
}
          `YOUR-RESOURCE`を Azure リソース名に置き換えます。

Azure AI Foundry (OpenAI と互換性のあるエンドポイント)

          `/openai/v1/` エンドポイントを使用した Azure AI Foundry デプロイの場合は、次の`type: "openai"`を使用します。
TypeScript
provider: {
    type: "openai",
    baseUrl: "https://YOUR-RESOURCE.openai.azure.com/openai/v1/",
    apiKey: process.env.FOUNDRY_API_KEY,
    wireApi: "responses",  // For GPT-5 series models
}

Ollama (ローカル)

TypeScript
provider: {
    type: "openai",
    baseUrl: "http://localhost:11434/v1",
    // No apiKey needed for local Ollama
}

Microsoft Foundry Local

          [Microsoft Foundry Local](https://foundrylocal.ai) を使用すると、OpenAI と互換性のある API を使用して AI モデルをローカルで実行できます。 Foundry Local CLI を使用してインストールし、ローカル エンドポイントで SDK をポイントします。
TypeScript
provider: {
    type: "openai",
    baseUrl: "http://localhost:YOUR-PORT/v1",
    // No apiKey needed for local Foundry Local
}

メモ

Foundry Local は、固定されていない動的ポートで開始されます。 foundry service statusを実行して、サービスが現在リッスンしているポートを確認してから、baseUrlでそのポートを使用します。

Foundry Local の使用を開始するには:

Bash
# Windows: Install Foundry Local CLI (requires winget)
winget install Microsoft.FoundryLocal

# List available models
foundry model list

# Run a model (starts the local server automatically)
foundry model run phi-4-mini

# Check the port the service is running on
foundry service status

macOS/Linux のインストールについては、 foundrylocal.ai を参照してください。

Anthropic

TypeScript
provider: {
    type: "anthropic",
    baseUrl: "https://api.anthropic.com",
    apiKey: process.env.ANTHROPIC_API_KEY,
}

ベアラー トークン認証

一部のプロバイダーでは、API キーの代わりにベアラー トークン認証が必要です。

TypeScript
provider: {
    type: "openai",
    baseUrl: "https://YOUR-CUSTOM-ENDPOINT.example.com/v1",
    bearerToken: process.env.MY_BEARER_TOKEN,  // Sets Authorization header
}

メモ

          `bearerToken` オプションは、静的トークン文字列のみを受け入れます。 SDK は、このトークンを自動的に更新しません。 トークンの有効期限が切れると、要求は失敗し、新しいトークンを使用して新しいセッションを作成する必要があります。

カスタム モデルの一覧

BYOK を使用する場合、CLI サーバーはプロバイダーがサポートするモデルを認識できない場合があります。 クライアント レベルでカスタム onListModels ハンドラーを指定して、 client.listModels() がプロバイダーのモデルを標準の ModelInfo 形式で返すようにすることができます。

TypeScript
import { CopilotClient } from "@github/copilot-sdk";
import type { ModelInfo } from "@github/copilot-sdk";

const client = new CopilotClient({
    onListModels: () => [
        {
            id: "my-custom-model",
            name: "My Custom Model",
            capabilities: {
                supports: { vision: false, reasoningEffort: false },
                limits: { max_context_window_tokens: 128000 },
            },
        },
    ],
});

結果は、最初の呼び出しの後にキャッシュされます。 ハンドラーは CLI の models.list RPC を完全に置き換えます。サーバーへのフォールバックは発生しません。

Python、Go、.NET の例については、 リポジトリの github/copilot-sdk を参照してください。 Java については、 github/copilot-sdk-java リポジトリを参照してください。

制限事項

ID の制限事項

BYOK 認証では、静的資格情報のみが使用されます。 次の ID プロバイダーはサポートされていません。

  • Microsoft Entra ID (Azure AD)—Entra マネージド ID またはサービス プリンシパルはサポートされません。
  • サード パーティの ID プロバイダー 。OIDC、SAML、またはその他のフェデレーション ID はありません。
  • マネージド ID - Azure マネージド ID はサポートされていません。

自分で管理する API キーまたは静的ベアラー トークンを使用する必要があります。

メモ

Entra ID はベアラー トークンを発行しますが、これらのトークンは有効期間が短く (通常は 1 時間)、Azure Identity SDK を使用した自動更新が必要です。 bearerToken オプションは静的文字列のみを受け入れます。SDK が新しいトークンを要求するためのコールバック メカニズムはありません。 Entra 認証を必要とする実行時間の長いワークロードの場合は、独自のトークン更新ロジックを実装し、更新されたトークンを使用して新しいセッションを作成する必要があります。

機能の制限事項

BYOK では、一部の Copilot 機能の動作が異なる場合があります。

  •         **モデルの可用性**: プロバイダーでサポートされているモデルのみを使用できます。
    
  •         **レート制限**: Copilotではなく、プロバイダーのレート制限に従います。
    
  •         **使用状況の追跡**: 使用状況は、 GitHubではなく、プロバイダーによって追跡されます。
    
  •         **Premium 要求**: Premium 要求クォータにカウントされません。
    

プロバイダー固有の制限事項

プロバイダー制限事項
Azure AI FoundryEntra ID 認証なし。API キーを使用する必要があります。
OllamaAPI キーがありません。local のみ。モデルのサポートは異なります。
Microsoft Foundry Localローカルのみ。モデルの可用性は、デバイスのハードウェアによって異なります。API キーは必要ありません。
OpenAIOpenAI のレート制限とクォータに従います。

Troubleshooting

"モデルが指定されていません" エラー

BYOK を使用する場合は、 model パラメーターが必要です。

// Error: model required with custom provider
const session = await client.createSession({
    provider: { type: "openai", baseUrl: "..." },
});

// Correct: model specified
const session = await client.createSession({
    model: "gpt-4",
    provider: { type: "openai", baseUrl: "..." },
});

Azure エンドポイントの種類の混乱

Azure OpenAI エンドポイント (*.openai.azure.com)は、適切なプロバイダーの種類を使用していることを確認します。

// Wrong: using "openai" type with native Azure endpoint
provider: {
    type: "openai",
    baseUrl: "https://YOUR-RESOURCE.openai.azure.com",
}

// Correct: using "azure" type
provider: {
    type: "azure",
    baseUrl: "https://YOUR-RESOURCE.openai.azure.com",
}

Azure AI Foundry デプロイで OpenAI と互換性のあるエンドポイント パス (たとえば、 /openai/v1/) が提供される場合は、代わりに type: "openai" を使用します。

// Correct: OpenAI-compatible Azure AI Foundry endpoint
provider: {
    type: "openai",
    baseUrl: "https://YOUR-RESOURCE.openai.azure.com/openai/v1/",
}

接続が拒否されました (Ollama)

Ollama が実行され、アクセスできることを確認します。

Bash
# Check Ollama is running
curl http://localhost:11434/v1/models

# Start Ollama if not running
ollama serve

接続が拒否されました (Foundry Local)

Foundry Local は、再起動の間に変更される可能性がある動的ポートを使用します。 アクティブなポートを確認します。

Bash
foundry service status

出力に表示されるポートと一致するように baseUrl を更新します。 サービスが実行されていない場合は、モデルを使って起動させます。

Bash
foundry model run phi-4-mini

認証に失敗しました

  1. API キーが正しく、期限切れではないことを確認します。
  2.        `baseUrl`がプロバイダーの予想される形式と一致することを確認します。
    
  3. ベアラー トークンの場合は、プレフィックスだけでなく、完全なトークンが提供されていることを確認します。
Morty Proxy This is a proxified and sanitized view of the page, visit original site.