Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
GitHub Copilot CLI to agent kodujący AI, który może wysyłać żądania modelu z obsługiwanego klienta Windows do kompatybilnego z OpenAI endpoint inferencyjnego hostowanego na Windows Server. Ta konfiguracja pozwala korzystać z modelu hostowanego przez organizację z terminala, podczas gdy Windows Server centralizuje hosting i obliczenia modelu.
Ten artykuł pokazuje, jak skonfigurować połączenie klienta i zweryfikować, czy skonfigurowany model reaguje. Nie wdraża ani nie zabezpiecza usługi inferencyjnej.
Prerequisites
- Komputer kliencki działający na wersji Windows, którą obsługuje GitHub Copilot CLI, z:
- PowerShell 6 lub nowszy.
- Windows Menedżer pakietów (WinGet).
- Aktywna subskrypcja GitHub Copilot. Jeśli organizacja lub przedsiębiorstwo oferuje Twoją subskrypcję, jej administrator musi zezwolić na GitHub Copilot CLI.
- Zaufany katalog roboczy, z którego można rozpocząć GitHub Copilot CLI.
- Istniejący punkt końcowy zgodny z OpenAI w systemie Windows Server, który:
- Jest dostępny z komputera klienta.
- Wymaga uwierzytelniania. Ta procedura dotyczy zdalnych połączeń Windows Server. Rezerwuj punkty końcowe bez uwierzytelniania wyłącznie dla scenariuszy typu loopback, poza zakresem tej procedury.
- Nasłuchuje tylko na docelowym interfejsie serwera, zezwala na połączenia przychodzące tylko z autoryzowanych komputerów klienckich lub podsieci i nie akceptuje bezpośrednich połączeń z publicznego internetu.
- Obsługuje strumieniowanie oraz wywoływanie narzędzi lub funkcji. Sama kompatybilność z OpenAI nie gwarantuje wsparcia dla każdej funkcji GitHub Copilot CLI. Zweryfikowaj punkt końcowy i wybrane możliwości modelu z operatorem końcowym.
- Połączenie sieciowe z klienta systemu Windows do serwera Windows Server, które ma:
- Nazwa DNS dla punktu końcowego inferencyjnego Windows Server, który rozstrzyga się z komputera klienckiego.
- Trasa sieciowa i reguły zapory, które pozwalają na połączenie tylko autoryzowanych klientów lub podsieci z portem końcowego.
- Certyfikat HTTPS, któremu klient ufa i którego nazwa podmiotu lub alternatywna nazwa podmiotu odpowiada nazwie DNS punktu końcowego.
- Podstawowy adres URL punktu końcowego, na przykład
https://inference.contoso.com/v1. - Dane uwierzytelniające i typ uwierzytelniania punktu końcowego, które określa operator końcowy.
Zainstaluj GitHub Copilot CLI
Otwórz program PowerShell.
Zainstaluj stabilny pakiet GitHub Copilot CLI:
winget install GitHub.CopilotPotwierdź, że instalacja się powiodła:
copilot --versionPolecenie zwraca zainstalowaną wersję GitHub Copilot CLI.
Uzyskaj identyfikator modelu z endpointu inferencyjnego Windows Server
Ustaw bazowy adres URL podany przez operator końcowy:
$BaseUrl = 'https://inference.contoso.com/v1'Wprowadź klucz API lub token nośnika, który operator końcowy określa. Użyj krótkotrwałego poświadczenia o najmniejszych uprawnieniach. Gdy Twoja organizacja wyda zatwierdzone polecenie do przechowywania sekretów, użyj go do pobrania poświadczenia zamiast wprowadzać je bezpośrednio. Poniższe polecenie konwertuje wartość
SecureStringna wartość zwykłego tekstu$endpointCredential, która pozostaje w pamięci w tej sesji programu PowerShell.$secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).PasswordWyślij
GETzapytanie do$BaseUrl/models. UmieśćAuthorization: Bearerw nagłówku$endpointCredentiali odczytaj identyfikator każdego modelu z tablicydataw odpowiedzi:$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 }Polecenie zwraca jeden lub więcej identyfikatorów modelu. Skopiuj dokładny identyfikator modelu, który obsługuje streaming oraz wywoływanie narzędzi lub funkcji.
Konfiguruj dostawcę i model CLI GitHub Copilot
Ustaw
$BaseUrlna podstawowy adres URL punktu końcowego systemu Windows Server, a$endpointCredentialna jego klucz API lub token bearer. W tej samej sesji PowerShell ustaw typ dostawcy, bazowy adres URL punktu końcowego oraz dokładny identyfikator modelu. Zastąp<MODEL_ID>identyfikatorem zwróconym przez punkt końcowy systemu Windows Server.$env:COPILOT_PROVIDER_TYPE = 'openai' $env:COPILOT_PROVIDER_BASE_URL = $BaseUrl $env:COPILOT_MODEL = '<MODEL_ID>'Typ
openaidostawcy obsługuje punkty końcowe kompatybilne z OpenAI, w tym vLLM.Usuń wszelkie zmienne uwierzytelniające dostawców, które odziedziczyła bieżąca sesja PowerShell:
Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinueKonfiguruj metodę uwierzytelniania wskazaną przez operatora końcowego:
Dla standardowego uwierzytelniania klucza API OpenAI użyj zatwierdzonego przez organizację polecenia secret-store, gdy tylko jest dostępne:
$env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'Polecenie musi pobrać dane uwierzytelniające z zatwierdzonego tajnego magazynu, wypisać tylko dane uwierzytelniające i nie rejestrować ani utrzymywać ich.
COPILOT_PROVIDER_API_KEY_COMMANDma pierwszeństwo przedCOPILOT_PROVIDER_API_KEY.Jeśli nie ma zatwierdzonego polecenia secret-store, ustaw klucz API bezpośrednio jako krótkotrwały zapas dla bieżącej sesji PowerShell:
$env:COPILOT_PROVIDER_API_KEY = $endpointCredentialDla uwierzytelniania tokenów na okaziciela ustaw token na nośnika:
$env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
Ważna
Nie umieszczaj kluczy API w skryptach, w przykładach kontroli wersji czy poleceń.
copilota wszystkie procesy, które uruchamia, dziedziczą zmienne środowiska uwierzytelniania dostawcy. Używaj krótkotrwałych, najmniejszych uprawnień i usuń zmienne po wyjściu z GitHub Copilot CLI.Przejrzyj obsługiwane zmienne dostawcy w zainstalowanej wersji:
copilot help providers
Uruchom i zweryfikuj GitHub Copilot CLI
Przejdź do katalogu, którego plikom ufasz:
Set-Location 'C:\path\to\trusted-project'
Ważna
Jeśli zatrzymasz się przed rozpoczęciem copilotlub wcześniejsze polecenie zawiodło, usuń zmienne uwierzytelniające dostawcę, wyczyść nagłówki żądań i pozbądź się bezpiecznego poświadczenia przed zamknięciem PowerShell:
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()
}
Zamknij sesję programu PowerShell po zakończeniu czyszczenia. Niezmienny ciąg tekstu $endpointCredential jawnego pozostaje w pamięci aż do zakończenia procesu.
Uruchom GitHub Copilot CLI i wykonaj kroki weryfikacji w bloku
try, tak aby PowerShell usuwał zmienne środowiska uwierzytelniania dostawcy i usuwałSecureStringwartość po zakończeniu lub niepowodzeniu polecenia: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() } }Potwierdź monit dotyczący zaufanego katalogu. Ufaj katalogowi w przyszłych sesjach tylko wtedy, gdy kontrolujesz jego zawartość i spodziewasz się, że pozostanie zaufany.
Jeśli GitHub Copilot CLI Cię o to zapyta, wprowadź
/logini postępuj zgodnie z instrukcjami, aby uwierzytelnić się do GitHub. Uwierzytelnianie w GitHubie jest oddzielne od klucza API, który służy do uwierzytelniania w punkcie końcowym inferencji.Wpisz ten monit testowy:
Reply with exactly: Local inference test succeededSkonfigurowany model w punkcie końcowym Windows Server zwraca
Local inference test succeededbez błędu dostawcy, uwierzytelniania ani zgodności modelu. Po zamknięciu GitHub Copilot CLI program PowerShell uruchamia blokfinally. PowerShell nie jest w stanie niezawodnie usunąć niezmiennego ciągu tekstu$endpointCredentialjawnego z pamięci, więc zamknij sesję PowerShell po zakończeniu polecenia, aby zwolnić pamięć procesu.
Rozwiązywanie problemów z połączeniami CLI GitHub Copilot z endpointem inferencyjnym Windows Server
| Kwestia | Co należy sprawdzić? |
|---|---|
| Żądanie modelu nie może dotrzeć do punktu końcowego | Zweryfikowaj bazowy adres URL punktu końcowego, rozdzielczość DNS, port, trasę sieciową, status usługi oraz zaufanie do certyfikatów TLS. Podstawowy adres URL powinien zawierać prefiks API dostarczany przez operator końcowy, taki jak /v1. |
Żądanie do modeli zwraca 401 lub 403 |
Sprawdź, czy dane uprawnienia są ważne. W przypadku uwierzytelniania kluczem API preferuj COPILOT_PROVIDER_API_KEY_COMMAND zatwierdzone polecenie przechowywania sekretów. Używaj COPILOT_PROVIDER_API_KEY tylko jako krótkotrwałego rozwiązania awaryjnego. Do uwierzytelniania za pomocą tokenu okaziciela ustaw COPILOT_PROVIDER_BEARER_TOKEN, zgodnie z określeniem operatora punktu końcowego. |
| GitHub Copilot CLI korzysta z innego dostawcy lub modelu | Ustaw typ dostawcy, podstawowy adres URL, model oraz wybraną zmienną uwierzytelniania w tej samej sesji programu PowerShell, w której uruchamiasz copilot. Użyj dokładnego ID modelu, które zwraca punkt końcowy. Sprawdź też $HOME\.copilot\providers.json; deklaracje dostawcy lub modelu w tym pliku mają pierwszeństwo przed zmiennymi COPILOT_PROVIDER_*. |
| GitHub Copilot CLI nie może znaleźć modelu | Wykonaj ponownie zapytanie $BaseUrl/models i porównaj wartość COPILOT_MODEL z wartością id, którą zwraca punkt końcowy, z uwzględnieniem wielkości liter i interpunkcji. |
| Monit kończy się niepowodzeniem po zaakceptowaniu żądania przez punkt końcowy | Potwierdź, że model i punkt końcowy obsługują zarówno streaming, jak i wywoływanie narzędzi lub funkcji. Przejrzyj logi końcowe pod kątem nieobsługiwanego pola żądania, schematu narzędzia, limitu kontekstu lub formatu odpowiedzi. |