GitHub Copilot CLI'yi Windows Server çıkarma uç noktasına bağla

GitHub Copilot CLI, desteklenen bir Windows istemcisinden Windows Server'da barındırılan OpenAI uyumlu bir çıkarım uç noktasına model talepleri gönderebilen bir yapay zeka kodlama ajanıdır. Bu yapılandırma, terminalinizden organizasyon tarafından barındırılan bir model kullanmanızı sağlarken, Windows Server model barındırma ve hesaplamayı merkezileştirir.

Bu makale, istemci bağlantısını nasıl yapılandıracağınızı ve yapılandırılmış modelin yanıt verdiğini nasıl doğrulayacağınızı gösterir. Çıkarım hizmetini dağıtıma almaz veya güvenliğini sağlamaz.

Prerequisites

  • GitHub Copilot CLI'nin desteklediği Windows sürümünü çalıştıran bir istemci bilgisayar, aşağıdaki özelliklerle:
  • Etkin bir GitHub Copilot aboneliği. Bir kuruluş veya kuruluş aboneliğinizi sağlıyorsa, yöneticisi GitHub Copilot CLI'ya izin vermelidir.
  • GitHub Copilot CLI'yı başlatmak için güvenilir bir çalışma dizini.
  • Windows Server'da mevcut OpenAI uyumlu bir uç nokta:
    • İstemci bilgisayardan erişilebilir.
    • Kimlik doğrulaması gerektirir. Bu prosedür uzak Windows Server bağlantıları için geçerlidir. Bu prosedür dışındaki sadece döngü geri bildirimi senaryoları için doğrulamasız uç noktaları rezerve edin.
    • Yalnızca amaçlanan sunucu ağ arayüzünde dinler, gelen bağlantılara yalnızca yetkili istemci bilgisayarlardan veya alt ağlardan izin verir ve halka açık internetten doğrudan bağlantıları kabul etmez.
    • Yayın ve araç veya fonksiyon çağrısını destekler. Tek başına OpenAI uyumluluğu, her GitHub Copilot CLI yeteneği için desteği garanti etmez. Uç noktayı ve seçilen model yeteneklerini uç nokta operatörü ile doğrulayın.
  • Aşağıdaki özelliklere sahip Windows istemci-Windows-Server ağ bağlantısı:
    • İstemci bilgisayar tarafından çözümlenebilen bir Windows Server çıkarım uç noktası DNS adı.
    • Yalnızca yetkili istemcilerin veya alt ağların uç nokta portuna bağlanmasına izin veren bir ağ rotası ve güvenlik duvarı kuralları.
    • İstemcinin güvendiği ve konu adı veya alternatif adı uç nokta DNS adıyla eşleşen bir HTTPS sertifikası.
  • Uç noktanın temel URL’si, örneğin https://inference.contoso.com/v1.
  • Uç nokta operatörünün belirttiği uç nokta kimlik bilgileri ve kimlik doğrulama türü.

GitHub Copilot CLI'yi Install

  1. PowerShell’i açın.

  2. Kararlı GitHub Copilot CLI paketini yükleyin:

    winget install GitHub.Copilot
    
  3. Kurulumun başarılı olduğunu doğrulayın:

    copilot --version
    

    Komut, kurulu GitHub Copilot CLI sürümünü geri döndürür.

Windows Server çıkarım uç noktasından model kimliği alın

  1. Uç nokta operatörünün sağladığı temel URL'yi ayarlayın:

    $BaseUrl = 'https://inference.contoso.com/v1'
    
  2. Uç nokta operatörünün belirttiği API anahtarını veya taşıyıcı tokenı girin. Kısa ömürlü, en az ayrıcalıklı bir kimlik bilgisi kullanın. Kuruluşunuz onaylanmış bir gizli bilgi deposu komutu sağlıyorsa, kimlik bilgilerini doğrudan girmek yerine bunları almak için bu komutu kullanın. Aşağıdaki komut, bu SecureString değeri bu PowerShell oturumu için hafızada kalan açık metin $endpointCredential değerine dönüştürür.

    $secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString
    $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).Password
    
  3. $BaseUrl/models'e bir GET isteği gönderin. Authorization: Bearer öğesini bir $endpointCredential başlığına ekleyin ve her model kimliğini yanıtın data dizisinden okuyun:

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

    Komut, bir veya daha fazla model kimliği döndürür. Akış ve araç veya fonksiyon çağrısını destekleyen bir modelin tam kimliğini kopyalayın.

GitHub Copilot CLI sağlayıcısını ve modelini yapılandırmak

  1. $endpointCredential değerini Windows Server uç noktasının temel URL’si olarak ve $BaseUrl değerini onun API anahtarı veya bearer belirteci olarak ayarlayın. Aynı PowerShell oturumunda, sağlayıcı türünü, uç nokta tabanlı URL'yi ve tam model kimliğini ayarlayın. <MODEL_ID> öğesini, Windows Server uç noktasının döndürdüğü bir ID ile değiştirin.

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

    Sağlayıcı türü, openai vLLM dahil olmak üzere OpenAI uyumlu uç noktaları destekler.

  2. Mevcut PowerShell oturumunun devraldığı sağlayıcı kimlik doğrulama değişkenlerini temizleyin:

    Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
    
  3. Uç nokta operatörünün belirttiği kimlik doğrulama yöntemini yapılandırın:

    • Standart OpenAI API anahtarı kimlik doğrulaması için, mevcut olduğunda organizasyon onaylı bir gizli depo komutu kullanın:

      $env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'
      

      Komut, onaylanmış gizli bir depodan kimlik bilgilerini geri almalı, yalnızca kimlik bilgilerini çıkarmalı ve onu kaydetmemeli veya devam ettirmemelidir. COPILOT_PROVIDER_API_KEY_COMMAND ' den önceliklidir COPILOT_PROVIDER_API_KEY.

    • Onaylanmış bir gizli depo komutu yoksa, API anahtarını mevcut PowerShell oturumu için kısa ömürlü bir yedek olarak doğrudan ayarlayın:

      $env:COPILOT_PROVIDER_API_KEY = $endpointCredential
      
    • Taşıyıcı-token doğrulaması için, taşıyıcı tokenı ayarlayın:

      $env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
      

    Important

    API anahtarlarını scriptlere, kaynak kontrolüne veya komut örneklerine koymayın. copilot ve başlattığı herhangi bir süreç, sağlayıcı kimlik doğrulama ortamı değişkenlerini devralır. Kısa ömürlü, en az ayrıcalıklı kimlik bilgilerini kullanın ve GitHub Copilot CLI'dan çıktıktan sonra değişkenleri kaldırın.

  4. Kurulum sürümünde desteklenen sağlayıcı değişkenlerini gözden geçirin:

    copilot help providers
    

GitHub Copilot CLI'yi başlatın ve doğrulayın

  1. Güvenilir dosyalarınıza geçiş:

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

Important

Başlamadan önce copilot durursanız veya önceki bir komut başarısız olursa, PowerShell'i kapatmadan önce sağlayıcı kimlik doğrulama değişkenlerini kaldırın, istek üst bilgilerini temizleyin ve güvenli kimlik bilgisini elden çıkarın:

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

Temizlik tamamlandıktan sonra PowerShell oturumunu kapatın. Değişmez düz metin $endpointCredential dizisi, süreç sona erene kadar bellekte kalır.

  1. GitHub Copilot CLI'yı başlatın ve doğrulama adımlarını bir try blokta çalıştırın, böylece PowerShell sağlayıcı kimlik doğrulama ortamı değişkenlerini kaldırır ve çıkış yaptığınızda veya komut başarısız olduğunda değeri SecureString ortadan kaldırır:

    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. Güvenilir dizin istemini onaylayın. Yalnızca içeriğini kontrol ediyorsanız ve güvenilir kalmasını bekliyorsanız bu dizine gelecekteki oturumlarda güvenin.

  3. GitHub Copilot CLI sizden isterse, GitHub’da kimlik doğrulamak için /login girin ve yönergeleri izleyin. GitHub doğrulaması, çıkarım uç noktasına kimlik doğrulaması sağlayan API anahtarından ayrıdır.

  4. Bu test promptunu girin:

    Reply with exactly: Local inference test succeeded
    

    Windows Server uç noktasındaki yapılandırılmış model, sağlayıcı, kimlik doğrulama veya model uyumluluk hatası olmadan geri dönerLocal inference test succeeded. GitHub Copilot CLI'dan çıktıktan sonra, PowerShell bloğu finally çalıştırıyor. PowerShell, değişmez açık metin $endpointCredential dizesini bellekten güvenilir şekilde silemiyor, bu yüzden komut tamamlandıktan sonra PowerShell oturumunu kapatarak süreç belleğini serbest bırakın.

GitHub Copilot CLI’nin bir Windows Server çıkarım uç noktasına yönelik bağlantılarındaki sorunları giderme

Sorunu Denetlenecek şeyler
Model isteği uç noktaya ulaşamıyor Uç nokta taban URL'sini, DNS çözümlemesini, portu, ağ rotası, hizmet durumunu ve TLS sertifika güvenini doğrulayın. Temel URL, uç nokta operatörünün sağladığı API önekini içermelidir, örneğin /v1.
Model isteği 401 veya 403 döndürür Kimlik bilgilerinin geçerli olduğunu doğrulayın. API anahtarı kimlik doğrulaması için, onaylı bir gizli depo komutuyla COPILOT_PROVIDER_API_KEY_COMMAND tercih edin. Sadece kısa ömürlü bir yedek olarak kullanın COPILOT_PROVIDER_API_KEY . Bearer belirteci kimlik doğrulaması için, uç nokta operatörünün belirttiği şekilde COPILOT_PROVIDER_BEARER_TOKEN ayarlayın.
GitHub Copilot CLI farklı bir sağlayıcı veya model kullanır copilot öğesini başlatan aynı PowerShell oturumunda sağlayıcı türünü, temel URL’yi, modeli ve seçilen kimlik doğrulama değişkenini ayarlayın. Uç noktanın döndürdüğü tam model kimliğini kullanın. Ayrıca $HOME\.copilot\providers.json’yi kontrol edin; o dosyadaki sağlayıcı veya model bildirimleri, COPILOT_PROVIDER_* değişkenlerine göre önceliklidir.
GitHub Copilot CLI modeli bulamıyor $BaseUrl/models öğesini yeniden sorgulayın ve id değerini, uç noktanın döndürdüğü COPILOT_MODEL değeriyle büyük/küçük harf kullanımı ve noktalama işaretleri dâhil olmak üzere karşılaştırın.
Uç nokta isteği kabul ettikten sonra prompt başarısız olur Model ve uç noktanın hem akışı hem de araç veya fonksiyon çağrısını desteklediğini doğrulayın. Desteklenmeyen bir istek alanı, araç şeması, bağlam sınırı veya yanıt formatı için uç nokta loglarını inceleyin.