Csatlakoztassa a GitHub Copilot CLI-t egy Windows Server következtetési végponthoz

A GitHub Copilot CLI egy AI kódoló ügynök, amely képes modellkéréseket küldeni egy támogatott Windows kliensről egy OpenAI-kompatibilis következtetési végpontra, amely a Windows Server-en található. Ez a konfiguráció lehetővé teszi, hogy a terminálból a szervezet által hosztolt modellt használhass, miközben a Windows Server központosítja a modellek hosztolását és a számítási kapacitást.

Ez a cikk bemutatja, hogyan konfigurálhatod az ügyfélkapcsolatot, és hogyan ellenőrizheted, hogy a konfigurált modell reagál-e. Nem telepíti vagy biztosítja az inferencia szolgáltatást.

Prerequisites

  • Egy kliens számítógép, amely Windows verziót futtat, amelyet a GitHub Copilot CLI támogat, és a következőkkel:
  • Aktív GitHub Copilot előfizetés. Ha egy szervezet vagy vállalat biztosítja az előfizetésedet, annak adminisztrátorának engedélyeznie kell a GitHub Copilot CLI-t.
  • Egy megbízható munkakönyvtár, ahonnan elindíthatjuk a GitHub Copilot CLI-t.
  • Egy meglévő OpenAI-kompatibilis végpont Windows Server-en, amely:
    • Elérhető a kliens számítógépről.
    • Hitelesítést igényel. Ez az eljárás a távoli Windows Server kapcsolatokra vonatkozik. Fenntartsd a hitelesítés nélküli végpontokat a csak loopback-alapú forgatókönyvek számára, amelyek ezen az eljáráson kívül vannak.
    • Csak a tervezett szerverhálózati interfészen hallgat, csak engedélyezett kliens számítógépekről vagy alhálózatokról engedélyezi a bejövő kapcsolatokat, és nem fogad el közvetlen kapcsolatot a nyilvános internetről.
    • Támogatja a streamelést és a szerszám- vagy függvényhívást. Az OpenAI kompatibilitása önmagában nem garantálja a támogatást minden GitHub Copilot CLI képességhez. Ellenőrizd a végpontot és a kiválasztott modell képességeit a végállomásoperátorral.
  • Egy Windows-kliens-Windows-Server hálózati kapcsolat, amely:
    • Egy DNS név a Windows Server következtetési végponthoz, amely a kliens számítógépről oldódik meg.
    • Hálózati útvonal és tűzfal szabályok, amelyek csak engedélyezett klienseknek vagy alhálózatoknak engedélyezik a végpont portjához való csatlakozást.
    • Egy HTTPS tanúsítvány, amelyben az ügyfél megbízik, és amelynek tárgyneve vagy alternatív neve megegyezik a végpont DNS nevével.
  • A végpont alap URL-je, például https://inference.contoso.com/v1.
  • Az a végpont hitelesítő és hitelesítési típus, amelyet a végállomásoperátor megad.

A GitHub Copilot CLI telepítése

  1. Nyissa meg a PowerShellt.

  2. Telepítse a stabil GitHub Copilot CLI csomagot:

    winget install GitHub.Copilot
    
  3. Erősítse meg, hogy a telepítés sikeres:

    copilot --version
    

    A parancs visszaadja a telepített GitHub Copilot CLI verziót.

Szerezz modellazonosítót a Windows Server következtetési végpontjáról

  1. Állítsuk be az alap URL-t, amelyet a végállomásoperátor biztosított:

    $BaseUrl = 'https://inference.contoso.com/v1'
    
  2. Adja meg az API kulcsot vagy a hordozó tokent, amelyet a végállomás operátor megad. Használj egy rövid életű, legkevésbé jogosultságú hitelesítő jogot. Amikor a szervezete jóváhagyott titoktárparancsot biztosít, azt használja a hitelesítő adat lekérésére ahelyett, hogy közvetlenül adná meg. A következő parancs átalakítja az SecureString értéket a tiszta szövegű $endpointCredential értékre, amely a PowerShell ülés memóriájában marad.

    $secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString
    $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).Password
    
  3. Küldj kérést GET a címre $BaseUrl/models. Tegyék $endpointCredential be a Authorization: Bearer fejlécbe, és olvassák el az adott modellazonosítót a válasz data tömbjéből:

    $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
    }
    

    A parancs egy vagy több modellazonosítót ad vissza. Másold le egy olyan modell pontos azonosítóját, amely támogatja a streamelést és a szerszám- vagy függvényhívást.

Konfiguráld a GitHub Copilot CLI szolgáltatót és modelljét

  1. Állítsd $BaseUrl be a Windows Server végpont alap URL-jét, $endpointCredential valamint annak API kulcsát vagy bearer tokenjét. Ugyanebben a PowerShell ülésben állítsd be a szolgáltató típusát, a végpont bázis URL-jét és a pontos modellazonosítót. Cseréld <MODEL_ID> le egy olyan azonosítóval, amit a Windows Server végpont visszaad.

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

    A openai szolgáltatótípus támogatja az OpenAI-kompatibilis végpontokat, beleértve a vLLM-et is.

  2. Töröld azokat a szolgáltatói hitelesítési változókat, amelyeket a jelenlegi PowerShell munkamenet örökölt:

    Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
    
  3. Konfiguráljuk azt a hitelesítési módszert, amelyet a végállomás operátor megadott:

    • A szokásos OpenAI API-kulcs hitelesítéshez használjon egy szervezet által jóváhagyott titkos tároló parancsot, amikor az elérhető:

      $env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'
      

      A parancsnak le kell szereznie a hitelesítést egy jóváhagyott titkos tárolóból, csak a hitelesítést kell kiadnia, és nem kell naplóznia vagy fenntartania. COPILOT_PROVIDER_API_KEY_COMMAND elsőbbséget élvez a COPILOT_PROVIDER_API_KEY.

    • Ha nincs jóváhagyott titkos tároló parancs, állítsd be az API kulcsot közvetlenül rövid életű tartalékként a jelenlegi PowerShell munkamenethez:

      $env:COPILOT_PROVIDER_API_KEY = $endpointCredential
      
    • A bearer-token hitelesítéshez állítsuk be a bearer tokent:

      $env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
      

    Important

    Ne tegyél API kulcsokat szkriptekbe, forráskódolásba vagy parancspéldákba. copilot és minden folyamat, amelyet elindít, a szolgáltató hitelesítési környezeti változóit örökli. Használj rövid életű, legkevésbé jogosultságú hitelesítéseket, és távolítsd el a változókat, miután kilépsz a GitHub Copilot parancsnokságból.

  4. Nézze át a támogatott szolgáltatói változókat a telepített verzióban:

    copilot help providers
    

Indítsd el és ellenőrizd a GitHub Copilot CLI-t

  1. Váltson át egy olyan könyvtárra, amelynek fájljaiban megbízik:

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

Important

Ha megállsz a kezdés copilotelőtt, vagy egy korábbi parancs sikertelenül működik, távolítsd el a szolgáltató hitelesítési változókat, töröld a kérés fejléceit, és dobd el a biztonságos hitelesítő adottságot, mielőtt bezárnád a PowerShellt:

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()
}

Miután lefutott a tisztítás, zárd be a PowerShell-munkamenetet. Az átváltoztathatatlan tiszta szöveg $endpointCredential láncsora a memóriában marad, amíg a folyamat ki nem lép.

  1. Indítsa el a GitHub Copilot parancsnokságot, és futtasd le a verifikációs lépéseket egy try blokkban, hogy a PowerShell eltávolítsa a szolgáltató hitelesítési környezeti változókat, és eltüntetje az SecureString értéket, amikor kilépsz vagy a parancs meghibásodik:

    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. Erősítse meg a megbízható könyvtár promptot. Csak akkor tekintsd megbízhatónak a könyvtárat a jövőbeli munkamenetek során, ha te felügyeled a tartalmát, és arra számítasz, hogy továbbra is megbízható marad.

  3. Ha a GitHub Copilot CLI kéri, írd /login be és kövesd az utasításokat a hitelesítéshez a GitHub-ra. A GitHub hitelesítés különálló attól az API kulcstól, amely az inference végponthoz autentikál.

  4. Adja be ezt a tesztpromptot:

    Reply with exactly: Local inference test succeeded
    

    A Windows Server végpontján konfigurált modell szolgáltató, hitelesítési vagy modellkompatibilitási hiba nélkül tér visszaLocal inference test succeeded. Miután kilépsz a GitHub Copilot CLI-ből, a PowerShell futtatja a finally blokkot. A PowerShell nem tudja megbízhatóan törölni a módosíthatatlan tiszta szöveges $endpointCredential stringet a memóriából, ezért a parancs befejezése után zárja be a PowerShell ülést, hogy feloldja a folyamatmemóriát.

A GitHub Copilot CLI Windows Server következtetési végponthoz való kapcsolatainak hibaelhárítása

Kérdés Mit kell ellenőrizni?
A modellkérés nem éri el a végpontot Ellenőrizd a végpont bázis URL-jét, DNS felbontását, portját, hálózati útvonalát, szolgáltatási állapotát és a TLS tanúsítvány bizalmát. Az alap URL-nek tartalmaznia kell azt az API előtagot, amelyet a végállomásoperátor biztosít, például /v1.
A modellkérés 401 vagy 403 értéket ad vissza. Ellenőrizd, hogy a hitelesítő igazolmány érvényes-e. API-kulcsos hitelesítéshez inkább jóváhagyott titkos tárolóparancsot használjunk COPILOT_PROVIDER_API_KEY_COMMAND . Csak rövid távú tartalékként használd COPILOT_PROVIDER_API_KEY . Bearer tokenös hitelesítéshez állítsa be a(z) COPILOT_PROVIDER_BEARER_TOKEN értéket a végpont üzemeltetője által megadottak szerint.
A GitHub Copilot CLI más szolgáltatót vagy modellt használ Állítsa be a szolgáltató típusát, az alap URL-címet, a modellt és a kiválasztott hitelesítési változót abban a PowerShell-munkamenetben, amely elindítja a(z) copilot elemet. Használd pontosan azt a modellazonosítót, amit a végpont visszaad. Ellenőrizzük azt is $HOME\.copilot\providers.json; a fájl szolgáltató vagy modell deklarációi elsőbbséget élveznek a COPILOT_PROVIDER_* változókkal szemben.
GitHub Copilot CLI nem találja meg a modellt Kérdezze meg újra a(z) $BaseUrl/models elemet, és hasonlítsa össze az COPILOT_MODEL értéket azzal a id értékkel, amelyet a végpont ad vissza, a nagybetűhasználatot és az írásjeleket is figyelembe véve.
A prompt meghibás, miután a végpont elfogadja a kérést Győződj meg róla, hogy a modell és a végpont támogatja mind a streamelést, mind a szerszám- vagy függvényhívást. Nézze át a végpontnaplókat egy nem támogatott kérésmező, eszközséma, kontextuskorlátozás vagy válaszformátum esetén.