Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
GitHub Copilot CLI adalah agen pengkode AI yang dapat mengirim permintaan model dari klien Windows yang didukung ke endpoint inferensi kompatibel OpenAI yang dihosting di Windows Server. Konfigurasi ini memungkinkan Anda menggunakan model yang dihosting organisasi dari terminal Anda sementara Windows Server memusatkan hosting model dan komputasi.
Artikel ini menunjukkan cara mengonfigurasi koneksi klien dan memverifikasi bahwa model yang dikonfigurasi merespons. Layanan inferensi tidak dideploy atau diamankan.
Prerequisites
- Komputer klien yang menjalankan versi Windows yang didukung GitHub Copilot CLI, dengan:
- PowerShell 6 atau lebih baru.
- Windows Package Manager (WinGet).
- Langganan GitHub Copilot aktif. Jika sebuah organisasi atau perusahaan menyediakan langganan Anda, administratornya harus mengizinkan GitHub Copilot CLI.
- Sebuah direktori kerja tepercaya yang digunakan untuk memulai GitHub Copilot CLI.
- Endpoint yang sudah ada dan kompatibel dengan OpenAI di Windows Server yang:
- Dapat diakses dari komputer klien.
- Memerlukan autentikasi. Prosedur ini berlaku untuk koneksi Windows Server jarak jauh. Sediakan endpoint tanpa autentikasi hanya untuk skenario loopback di luar prosedur ini.
- Mendengarkan hanya pada antarmuka jaringan server yang dimaksud, hanya mengizinkan koneksi masuk dari komputer klien atau subnet yang sah, dan tidak menerima koneksi langsung dari internet publik.
- Mendukung streaming dan pemanggilan alat atau fungsi. Kompatibilitas OpenAI saja tidak menjamin dukungan untuk setiap kemampuan CLI GitHub Copilot. Verifikasi endpoint dan kemampuan model yang dipilih dengan operator endpoint.
- Koneksi jaringan Windows-klien-ke-Windows-Server yang memiliki:
- Nama DNS untuk endpoint inferensi Windows Server yang dapat diresolusikan dari komputer klien.
- Rute jaringan dan aturan firewall yang hanya mengizinkan klien atau subnet yang berwenang untuk terhubung ke port endpoint.
- Sertifikat HTTPS yang dipercaya klien dan nama subjek atau nama alternatif subjeknya cocok dengan nama DNS endpoint.
- URL dasar endpoint, seperti
https://inference.contoso.com/v1. - Kredensial endpoint dan tipe autentikasi yang ditentukan oleh operator endpoint.
Instal GitHub Copilot CLI
Buka PowerShell.
Instal paket CLI GitHub Copilot yang stabil:
winget install GitHub.CopilotKonfirmasi bahwa instalasi berhasil:
copilot --versionPerintah ini mengembalikan versi CLI GitHub Copilot yang terpasang.
Dapatkan ID model dari endpoint inferensi Windows Server
Atur URL dasar yang diberikan operator endpoint:
$BaseUrl = 'https://inference.contoso.com/v1'Masukkan kunci API atau token pembawa yang ditentukan oleh operator endpoint. Gunakan kredensial yang berumur pendek dan memiliki hak istimewa paling sedikit. Jika organisasi Anda menyediakan perintah secret-store yang telah disetujui, gunakan perintah tersebut untuk mengambil kredensial alih-alih memasukkan kredensial secara langsung. Perintah berikut mengubah
SecureStringnilai menjadi nilai plaintext$endpointCredential, yang tetap berada di memori untuk sesi PowerShell ini.$secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).PasswordKirim permintaan
GETke$BaseUrl/models. Sertakan$endpointCredentialdalam headerAuthorization: Bearer, dan baca setiap ID model dari array responsdata:$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 }Perintah ini mengembalikan satu atau lebih ID model. Salin ID tepat dari model yang mendukung streaming dan pemanggilan alat atau fungsi.
Konfigurasikan penyedia dan model CLI GitHub Copilot
Atur
$BaseUrlke URL dasar endpoint Windows Server dan$endpointCredentialke kunci API atau token pembawanya. Dalam sesi PowerShell yang sama, atur tipe provider, URL dasar endpoint, dan ID model yang tepat. Ganti<MODEL_ID>dengan ID yang dikembalikan oleh endpoint Windows Server.$env:COPILOT_PROVIDER_TYPE = 'openai' $env:COPILOT_PROVIDER_BASE_URL = $BaseUrl $env:COPILOT_MODEL = '<MODEL_ID>'Tipe
openaipenyedia mendukung endpoint yang kompatibel dengan OpenAI, termasuk vLLM.Hapus variabel otentikasi penyedia yang diwarisi oleh sesi PowerShell saat ini:
Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinueKonfigurasikan metode autentikasi yang ditentukan operator endpoint:
Untuk autentikasi kunci API OpenAI standar, gunakan perintah secret-store yang disetujui oleh organisasi jika tersedia:
$env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'Perintah harus mengambil kredensial dari penyimpanan rahasia yang telah disetujui, hanya menampilkan kredensial, dan tidak mencatatnya ke log atau menyimpannya.
COPILOT_PROVIDER_API_KEY_COMMANDlebih diutamakan daripadaCOPILOT_PROVIDER_API_KEY.Jika tidak ada perintah secret-store yang disetujui tersedia, atur kunci API secara langsung sebagai cadangan singkat untuk sesi PowerShell saat ini:
$env:COPILOT_PROVIDER_API_KEY = $endpointCredentialUntuk autentikasi bearer-token, atur bearer token:
$env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
Important
Jangan masukkan kunci API ke dalam skrip, kontrol sumber, atau contoh perintah.
copilotdan proses apa pun yang dijalankannya mewarisi variabel lingkungan autentikasi provider. Gunakan kredensial yang berumur pendek dengan hak istimewa paling sedikit, dan hapus variabel setelah Anda keluar dari GitHub Copilot CLI.Tinjau variabel penyedia yang didukung dalam versi yang Anda terpasang:
copilot help providers
Mulai dan verifikasi CLI GitHub Copilot
Ubah ke direktori yang file-nya Anda percaya:
Set-Location 'C:\path\to\trusted-project'
Important
Jika Anda berhenti sebelum memulai copilot, atau perintah sebelumnya gagal, hapus variabel autentikasi penyedia, hapus header permintaan, dan buang kredensial aman sebelum Anda menutup 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()
}
Tutup sesi PowerShell setelah pembersihan dijalankan. String plaintext $endpointCredential yang tidak dapat diubah tetap berada di memori sampai proses keluar.
Mulai GitHub Copilot CLI dan jalankan langkah verifikasi dalam blok
trysehingga PowerShell menghapus variabel lingkungan autentikasi penyedia dan membuangSecureStringnilai saat Anda keluar atau perintah gagal: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() } }Konfirmasi permintaan direktori tepercaya. Percayakan direktori untuk sesi berikutnya hanya jika Anda mengontrol isinya dan mengharapkan direktori tetap dipercaya.
Jika CLI GitHub Copilot meminta Anda, masukkan
/logindan ikuti instruksi untuk mengautentikasi ke GitHub. Autentikasi GitHub terpisah dari kunci API yang mengautentikasi ke endpoint inferensi.Masukkan prompt uji ini:
Reply with exactly: Local inference test succeededModel yang dikonfigurasi pada endpoint Windows Server mengembalikan
Local inference test succeededtanpa kesalahan provider, autentikasi, atau kompatibilitas model. Setelah Anda keluar dari GitHub Copilot CLI, PowerShell menjalankan blok tersebutfinally. PowerShell tidak dapat menghapus string plaintext$endpointCredentialyang tidak dapat diubah dari memori secara andal, jadi tutup sesi PowerShell setelah perintah selesai untuk melepaskan memori proses.
Mengatasi masalah koneksi CLI GitHub Copilot ke endpoint inferensi di Windows Server
| Masalah | Apa yang harus diperiksa |
|---|---|
| Permintaan model tidak dapat menjangkau endpoint | Verifikasi URL dasar endpoint, resolusi DNS, port, rute jaringan, status layanan, dan kepercayaan sertifikat TLS. URL dasar harus mencakup awalan API yang disediakan operator endpoint, seperti /v1. |
Permintaan model mengembalikan 401 atau 403 |
Verifikasi bahwa kredensial valid. Untuk autentikasi kunci API, pilih COPILOT_PROVIDER_API_KEY_COMMAND dengan perintah secret-store yang disetujui. Gunakan COPILOT_PROVIDER_API_KEY hanya sebagai cadangan singkat. Untuk autentikasi bearer-token, atur COPILOT_PROVIDER_BEARER_TOKEN, sesuai dengan spesifikasi operator endpoint. |
| GitHub Copilot CLI menggunakan penyedia atau model yang berbeda | Atur tipe provider, URL dasar, model, dan variabel autentikasi yang dipilih dalam sesi PowerShell yang sama yang dimulai copilot. Gunakan ID model yang persis dikembalikan oleh endpoint. Juga periksa $HOME\.copilot\providers.json; deklarasi penyedia atau model file tersebut lebih diutamakan daripada COPILOT_PROVIDER_* variabel. |
| GitHub Copilot CLI tidak dapat menemukan modelnya | Query $BaseUrl/models lagi dan bandingkan nilai COPILOT_MODEL dengan nilai id yang dikembalikan oleh endpoint, termasuk kapitalisasi dan tanda baca. |
| Prompt gagal setelah endpoint menerima permintaan | Pastikan model dan endpoint mendukung streaming serta pemanggilan alat atau fungsi. Tinjau log endpoint untuk bidang permintaan yang tidak didukung, skema alat, batas konteks, atau format respons. |