Připojte GitHub Copilot CLI k inferenčnímu endpointu Windows Server

GitHub Copilot CLI je AI kódovací agent, který dokáže odesílat požadavky na model z podporovaného klienta Windows na inferenční endpoint kompatibilní s OpenAI, který je hostován na Windows Server. Tato konfigurace vám umožňuje používat model hostovaný organizací z vašeho terminálu, zatímco Windows Server centralizuje hosting modelů a výpočetní výkony.

Tento článek vám ukáže, jak nastavit klientské připojení a ověřit, že nakonfigurovaný model reaguje. Nenasazuje ani nezabezpečuje inferenční službu.

Prerequisites

  • Klientský počítač, který běží na verzi Windows, kterou podporuje GitHub Copilot CLI, s:
  • Aktivní GitHub Copilot předplatné. Pokud vám předplatné poskytne organizace nebo podnik, musí jeho správce povolit GitHub Copilot CLI.
  • Důvěryhodný pracovní adresář pro spuštění GitHub Copilot CLI.
  • Existující koncový bod kompatibilní s OpenAI v systému Windows Server, který:
    • Je dostupný z klientského počítače.
    • Vyžaduje ověření. Tento postup platí pro vzdálená připojení Windows Server. Koncové body bez autentizace rezervujte pouze pro scénáře omezené na zpětnou smyčku mimo tento postup.
    • Poslouchá pouze na zamýšleném serverovém síťovém rozhraní, povoluje příchozí připojení pouze z autorizovaných klientských počítačů nebo podsítí a nepřijímá přímá připojení z veřejného internetu.
    • Podporuje streamování a volání nástrojů nebo funkcí. Samotná kompatibilita s OpenAI nezaručuje podporu všech CLI schopností GitHub Copilot. Ověřte koncový bod a vybrané schopnosti modelu u koncového operátora.
  • Síťové spojení Windows-klient-Windows-Server které má:
    • DNS název pro inferenční endpoint Windows Server, který se řeší z klientského počítače.
    • Síťová trasa a firewallová pravidla, která umožňují připojení pouze autorizovaným klientům nebo podsítím k portu koncového zařízení.
    • HTTPS certifikát, kterému klient důvěřuje a jehož subjekt nebo alternativní název odpovídá DNS jménu koncového zařízení.
  • Základní adresa URL koncového bodu, například https://inference.contoso.com/v1.
  • Přihlašovací údaje a autentizační typ koncového zařízení, které specifikuje koncový operátor.

Nainstalujte GitHub Copilot CLI

  1. Otevřete PowerShell.

  2. Nainstalujte stabilní balíček GitHub Copilot CLI:

    winget install GitHub.Copilot
    
  3. Potvrďte, že instalace byla úspěšná:

    copilot --version
    

    Příkaz vrátí nainstalovanou verzi GitHub Copilot CLI.

Získejte ID modelu z inference endpointu Windows Server

  1. Nastavte základní URL, kterou poskytl koncový operátor:

    $BaseUrl = 'https://inference.contoso.com/v1'
    
  2. Zadejte API klíč nebo nosicí token, který specifikuje koncový operátor. Použijte krátkodobou kvalifikaci s nejmenším privilegiem. Když vaše organizace poskytne schválený příkaz pro tajné uložení, použijte ho k získání přihlašovacích údajů místo přímého zadání. Následující příkaz převede hodnotu SecureString na prostou textovou hodnotu $endpointCredential, která zůstává v paměti po dobu této relace PowerShellu.

    $secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString
    $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).Password
    
  3. Pošlete požadavek GET do $BaseUrl/models. Zahrňte $endpointCredential do hlavičky data a načtěte každé ID modelu z pole Authorization: Bearer odpovědi:

    $requestParameters = @{
       Uri = "$BaseUrl/models"
       Method = 'Get'
    }
    
    try {
       $requestParameters.Headers = @{ Authorization = "Bearer $endpointCredential" }
       $models = Invoke-RestMethod @requestParameters
       $models.data | Select-Object -ExpandProperty id
    }
    finally {
       $requestParameters.Headers = $null
    }
    

    Příkaz vrátí jedno nebo více ID modelů. Zkopírujte přesné ID modelu, který podporuje streamování a volání nástrojů nebo funkcí.

Konfigurujte poskytovatele a model CLI GitHub Copilot

  1. Nastavte $BaseUrl na základní adresu URL koncového bodu serveru Windows Server a $endpointCredential na jeho klíč API nebo token nositele. Ve stejné PowerShell relaci nastavte typ poskytovatele, základní URL koncového bodu a přesné ID modelu. Nahraďte <MODEL_ID> ID, které vrací koncový bod Windows Serveru.

    $env:COPILOT_PROVIDER_TYPE = 'openai'
    $env:COPILOT_PROVIDER_BASE_URL = $BaseUrl
    $env:COPILOT_MODEL = '<MODEL_ID>'
    

    Typ openai poskytovatele podporuje koncové body kompatibilní s OpenAI, včetně vLLM.

  2. Vymažte všechny proměnné pro ověřování zprostředkovatele, které zdědila aktuální relace PowerShellu:

    Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
    
  3. Nakonfigurujte autentizační metodu, kterou specifikoval koncový operátor:

    • Pro standardní autentizaci pomocí API klíče OpenAI použijte příkaz pro tajné úložiště schválený organizací, kdykoli je k dispozici:

      $env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'
      

      Příkaz musí získat přihlašovací údaje z schváleného tajného úložiště, vydat pouze přihlašovací údaje, a nesmí je zaznamenávat ani uchovávat. COPILOT_PROVIDER_API_KEY_COMMAND má přednost před COPILOT_PROVIDER_API_KEY.

    • Pokud není k dispozici žádný schválený příkaz pro ukládání tajemství, nastavte API klíč přímo jako krátkodobou záložní variantu pro aktuální PowerShell relaci:

      $env:COPILOT_PROVIDER_API_KEY = $endpointCredential
      
    • Pro autentizaci nositelového tokenu nastavte nositelský token:

      $env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
      

    Important

    Nedávejte API klíče do skriptů, správy zdrojového kódu ani příkladů příkazů. copilot a všechny procesy, které spustí, dědí proměnné prostředí ověřování poskytovatele. Používejte krátkodobé přihlašovací údaje s nejmenšími oprávněními a po ukončení GitHub Copilot CLI odstraňte proměnné.

  4. Projděte podporované proměnné poskytovatelů ve vaší instalované verzi:

    copilot help providers
    

Spusť a ověř GitHub Copilot CLI

  1. Přepněte na adresář, jehož soubory důvěřujete:

    Set-Location 'C:\path\to\trusted-project'
    

Important

Pokud zastavíte před spuštěním copilot, nebo pokud předchozí příkaz selže, odstraňte proměnné ověřování poskytovatele, vymažte hlavičky požadavku a zlikvidujte zabezpečené přihlašovací údaje před zavřením PowerShellu:

if ($requestParameters) {
   $requestParameters.Headers = $null
}

Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue

if ($secureEndpointCredential) {
   $secureEndpointCredential.Dispose()
}

Po dokončení čištění ukončete relaci PowerShellu. Neměnný řetězec otevřeného textu $endpointCredential zůstává v paměti, dokud proces neskončí.

  1. Spusťte GitHub Copilot CLI a spusťte ověřovací kroky v blokutry, aby PowerShell odstranil proměnné prostředí pro ověřování poskytovatelů a zlikvidoval SecureString hodnotu při ukončení nebo selhání příkazu:

    try {
       copilot
    }
    finally {
       if ($requestParameters) {
          $requestParameters.Headers = $null
       }
    
       Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
    
       if ($secureEndpointCredential) {
          $secureEndpointCredential.Dispose()
       }
    }
    
  2. Potvrďte výzvu k důvěryhodnému adresáři. Důvěřujte adresáři pro budoucí relace jen tehdy, pokud ovládáte jeho obsah a očekáváte, že zůstane důvěryhodný.

  3. Pokud vás GitHub Copilot CLI vyzve, zadejte /login a postupujte podle pokynů k ověření na GitHubu. Autentizace přes GitHub je oddělená od API klíče, který slouží k ověření vůči inferenčnímu endpointu.

  4. Zadejte tento testovací úkol:

    Reply with exactly: Local inference test succeeded
    

    Konfigurovaný model na koncovém bodu Windows Server se vrací Local inference test succeeded bez chyby poskytovatele, autentizace nebo kompatibility modelu. Po ukončení nástroje GitHub Copilot CLI PowerShell spustí blok kódu finally. PowerShell nemůže spolehlivě vymazat neměnný $endpointCredential otevřený text z paměti, proto po dokončení příkazu uzavřete PowerShell relaci, aby se uvolnila paměť procesu.

Řešení problémů s připojením GitHub Copilot CLI k inferenčnímu endpointu Windows Server

Problém Co zkontrolovat
Požadavek modelu nemůže dosáhnout na koncový bod Ověřte základní URL koncového zařízení, DNS rozlišení, port, síťovou trasu, stav služby a důvěru v TLS certifikáty. Základní URL by měla obsahovat API prefix, který poskytuje koncový operátor, například ./v1
Modely požadují návraty 401 nebo 403 Ověřte, že je oprávnění platné. Pro ověřování pomocí klíče API upřednostňujte COPILOT_PROVIDER_API_KEY_COMMAND se schváleným příkazem pro úložiště tajných údajů. Používejte COPILOT_PROVIDER_API_KEY jen jako krátkodobou záložní možnost. Pro autentizaci nositelného tokenu nastavte COPILOT_PROVIDER_BEARER_TOKEN, jak specifikuje koncový operátor.
GitHub Copilot CLI používá jiného poskytovatele nebo model Nastavte typ poskytovatele, základní adresu URL, model a vybranou autentizační proměnnou ve stejné relaci PowerShellu, ve které se spouští copilot. Použijte přesné ID modelu, které endpoint vrací. Zkontrolujte také $HOME\.copilot\providers.json; deklarace poskytovatele nebo modelu v tomto souboru mají přednost před proměnnými COPILOT_PROVIDER_*.
GitHub Copilot CLI model nenajde Znovu zadejte dotaz na $BaseUrl/models a porovnejte hodnotu COPILOT_MODEL s hodnotou id, kterou vrátí koncový bod, včetně velkých písmen a interpunkce.
Výzva selže poté, co koncový bod požadavek přijme Ověřte, že model i koncový bod podporují jak streamování, tak volání nástrojů nebo funkcí. Prohlédněte si logy koncových zařízení kvůli nepodporovanému poli požadavku, schématu nástroje, limitu kontextu nebo formátu odpovědi.