Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
GitHub Copilot CLI is een AI-codeeragent die modelverzoeken van een ondersteunde Windows-client kan sturen naar een OpenAI-compatibel inferentie-eindpunt dat wordt gehost op Windows Server. Deze configuratie stelt je in staat een organisatie-gehost model vanaf je terminal te gebruiken, terwijl Windows Server het hosten en rekenen van het model centraliseert.
Dit artikel laat zien hoe je de clientverbinding configureert en verifieert dat het geconfigureerde model reageert. Het implementeert of beveiligt de inferentiedienst niet.
Prerequisites
- Een clientcomputer die een Windows-versie draait die GitHub Copilot CLI ondersteunt, met:
- PowerShell 6 of hoger.
- Windows Pakketbeheer (WinGet).
- Een actief GitHub Copilot-abonnement. Als een organisatie of onderneming je abonnement aanbiedt, moet de beheerder GitHub Copilot CLI toestaan.
- Een vertrouwde werkmap van waaruit u GitHub Copilot CLI kunt starten.
- Een bestaand OpenAI-compatibel eindpunt op Windows Server dat:
- Is bereikbaar vanaf de clientcomputer.
- Hiervoor is verificatie vereist. Deze procedure geldt voor externe Windows Server-verbindingen. Reserveer eindpunten zonder authenticatie voor loopback-only scenario's buiten deze procedure.
- Luistert alleen op de beoogde servernetwerkinterface, staat inkomende verbindingen alleen toe vanaf geautoriseerde clientcomputers of subnetten, en accepteert geen directe verbindingen van het publieke internet.
- Ondersteunt streaming en tool- of functiecalling. OpenAI-compatibiliteit alleen garandeert geen ondersteuning voor elke GitHub Copilot CLI-functionaliteit. Controleer de endpoint- en geselecteerde modelmogelijkheden met de endpointoperator.
- Een Windows-client-naar-Windows-Server netwerkverbinding die het volgende heeft:
- Een DNS-naam voor het inferentie-eindpunt van Windows Server dat wordt opgelost vanaf de clientcomputer.
- Een netwerkroute en firewallregels die alleen geautoriseerde clients of subnetten toestaan om verbinding te maken met de endpointpoort.
- Een HTTPS-certificaat dat de client vertrouwt en waarvan de onderwerpnaam of alternatieve onderwerpnaam overeenkomt met de DNS-naam van het eindpunt.
- De basis-URL van het eindpunt, zoals
https://inference.contoso.com/v1. - Het endpoint-credential en authenticatietype dat door de endpointoperator wordt gespecificeerd.
Installeer GitHub Copilot CLI
Open PowerShell.
Installeer het stabiele GitHub Copilot CLI-pakket:
winget install GitHub.CopilotBevestig dat de installatie slaagt:
copilot --versionHet commando geeft de geïnstalleerde GitHub Copilot CLI-versie terug.
Haal een model-ID op van het Windows Server inferentie-eindpunt
Stel de basis-URL in die de eindpuntoperator heeft geleverd:
$BaseUrl = 'https://inference.contoso.com/v1'Voer de API-sleutel of draagtoken in die door de eindpuntoperator wordt gespecificeerd. Gebruik een tijdelijk inloggegeven met minimale rechten. Wanneer je organisatie een goedgekeurd secret-store-commando geeft, gebruik dit dan om het inloggegevens op te halen in plaats van het direct in te voeren. Het volgende commando zet de
SecureStringwaarde om in de platte tekstwaarde$endpointCredential, die voor deze PowerShell-sessie in het geheugen blijft.$secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).PasswordStuur een
GETverzoek naar$BaseUrl/models. Neem$endpointCredentialop in eenAuthorization: Bearer-header en lees elke model-ID uit dedata-array van het antwoord:$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 }Het commando geeft één of meer model-ID's terug. Kopieer de exacte ID van een model dat streaming en tool- of functieaanroepen ondersteunt.
GitHub Copilot CLI-provider en -model configureren
Stel
$BaseUrlin op de basis-URL van het Windows Server-eindpunt en$endpointCredentialop de API-sleutel of bearer-token. Stel in dezelfde PowerShell-sessie het providertype, de endpointbasis-URL en de exacte model-ID in. Vervang<MODEL_ID>het door een ID die het Windows Server-eindpunt teruggeeft.$env:COPILOT_PROVIDER_TYPE = 'openai' $env:COPILOT_PROVIDER_BASE_URL = $BaseUrl $env:COPILOT_MODEL = '<MODEL_ID>'Het
openaiprovidertype ondersteunt OpenAI-compatibele eindpunten, inclusief vLLM.Maak alle provider-authenticatievariabelen die de huidige PowerShell-sessie heeft geërfd, op:
Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinueConfigureer de authenticatiemethode die de eindpuntoperator heeft gespecificeerd:
Voor standaard OpenAI API-sleutel authenticatie gebruik een door de organisatie goedgekeurde secret-store-commando wanneer er een beschikbaar is:
$env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'Het commando moet het inloggegevens ophalen uit een goedgekeurde geheime opslag, alleen het inloggegevens uitvoeren en het niet loggen of behouden.
COPILOT_PROVIDER_API_KEY_COMMANDheeft voorrang opCOPILOT_PROVIDER_API_KEY.Als er geen goedgekeurde secret-store-opdracht beschikbaar is, stel dan de API-sleutel direct in als een kortstondige fallback voor de huidige PowerShell-sessie:
$env:COPILOT_PROVIDER_API_KEY = $endpointCredentialVoor bearer-token authenticatie stelt u het bearer token in:
$env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
Important
Plaats geen API-sleutels in scripts, bronbeheer of commandovoorbeelden.
copiloten alle processen die het start, erven de omgevingsvariabelen van providerauthenticatie. Gebruik kortstondige, minst privilege inloggegevens en verwijder de variabelen nadat je de GitHub Copilot CLI hebt verlaten.Bekijk de ondersteunende providervariabelen in je geïnstalleerde versie:
copilot help providers
Start en verifieer GitHub Copilot CLI
Verander naar een map waarvan je de bestanden vertrouwt:
Set-Location 'C:\path\to\trusted-project'
Important
Als je stopt voordat je start copilot, of een eerder commando faalt, verwijder dan de provider-authenticatievariabelen, verwijder de requestheaders en verwijder de beveiligde credential voordat je PowerShell sluit:
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()
}
Sluit de PowerShell-sessie nadat de opruiming is uitgevoerd. De onveranderlijke plaintextstring $endpointCredential blijft in het geheugen totdat het proces wordt afgesloten.
Start GitHub Copilot CLI en voer de verificatiestappen uit in een
tryblok zodat PowerShell de variabelen van de providerauthenticatieomgeving verwijdert en deSecureStringwaarde verwijdert wanneer je afsluit of het commando faalt: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() } }Bevestig de prompt voor vertrouwde mappen. Vertrouw de map alleen in toekomstige sessies als je volledige controle hebt over de inhoud en verwacht dat deze betrouwbaar blijft.
Als GitHub Copilot CLI je hierom vraagt, voer je
/loginin en volg je de instructies om je aan te melden bij GitHub. GitHub-authenticatie staat los van de API-sleutel die authenticeert naar het inferentie-endpoint.Voer deze testprompt in:
Reply with exactly: Local inference test succeededHet geconfigureerde model op het Windows Server-eindpunt geeft geen provider-, authenticatie- of modelcompatibiliteitsfout terug
Local inference test succeeded. Nadat je de GitHub Copilot CLI hebt verlaten, voert PowerShell de blokkadefinallyuit. PowerShell kan de onveranderlijke plaintextstring$endpointCredentialniet betrouwbaar uit het geheugen wissen, dus sluit de PowerShell-sessie nadat het commando is voltooid om het procesgeheugen vrij te geven.
Problemen met verbindingen van de GitHub Copilot CLI met een Windows Server-inferentie-eindpunt oplossen
| Probleem | Wat u moet controleren |
|---|---|
| Het verzoek van het model kan het eindpunt niet bereiken | Controleer de endpointbasis-URL, DNS-resolutie, poort, netwerkroute, servicestatus en TLS-certificaatvertrouwen. De basis-URL moet het API-voorvoegsel bevatten dat de endpointoperator aangeeft, zoals /v1. |
De modellenaanvraag retourneert 401 of 403 |
Controleer of het certificaat geldig is. Voor API-sleutelauthenticatie heeft COPILOT_PROVIDER_API_KEY_COMMAND met een goedgekeurd secret-store-commando de voorkeur. Gebruik COPILOT_PROVIDER_API_KEY alleen als tijdelijk vangnet. Voor bearer-tokenverificatie stelt u COPILOT_PROVIDER_BEARER_TOKEN in, zoals de beheerder van het eindpunt aangeeft. |
| GitHub Copilot CLI gebruikt een andere provider of model | Stel het type provider, basis-URL, model en geselecteerde authenticatievariabele in in dezelfde PowerShell-sessie die start copilot. Gebruik de exacte model-ID die het eindpunt teruggeeft. Controleer ook $HOME\.copilot\providers.json; de provider- of modelverklaringen van dat bestand krijgen voorrang boven de variabelen COPILOT_PROVIDER_* . |
| GitHub Copilot CLI kan het model niet vinden | Vraag $BaseUrl/models opnieuw op en vergelijk de COPILOT_MODEL waarde met de id waarde die het eindpunt teruggeeft, inclusief hoofdletters en interpunctie. |
| De prompt faalt nadat het eindpunt het verzoek accepteert | Bevestig dat het model en het eindpunt zowel streaming als tool- of functieaanroepen ondersteunen. Bekijk de eindpuntlogboeken op een niet-ondersteund verzoekveld, toolschema, contextlimiet of responsformaat. |