GitHub Copilot CLI를 Windows Server 추론 엔드포인트에 연결하세요

GitHub Copilot CLI는 지원되는 Windows 클라이언트에서 Windows Server에 호스팅된 OpenAI 호환 추론 엔드포인트로 모델 요청을 보낼 수 있는 AI 코딩 에이전트입니다. 이 구성은 터미널에서 조직 호스팅 모델을 사용하는 동안 Windows Server가 모델 호스팅과 컴퓨팅을 중앙 집중화할 수 있게 합니다.

이 글에서는 클라이언트 연결을 어떻게 구성하고 설정된 모델이 응답하는지 확인하는 방법을 안내합니다. 추론 서비스를 배포하거나 보호하지 않습니다.

Prerequisites

  • GitHub Copilot CLI가 지원하는 Windows 버전을 실행하는 클라이언트 컴퓨터로, 다음과 같습니다:
  • 활성 GitHub Copilot 구독입니다. 조직이나 기업이 구독을 제공한다면, 관리자는 GitHub Copilot CLI를 허용해야 합니다.
  • GitHub Copilot CLI를 시작할 수 있는 신뢰할 수 있는 작업 디렉터리입니다.
  • Windows Server에 존재하는 기존 OpenAI 호환 엔드포인트:
    • 클라이언트 컴퓨터에서 접근 가능합니다.
    • 인증이 필요합니다. 이 절차는 원격 Windows Server 연결에도 적용됩니다. 인증 없이 엔드포인트는 이 절차 외의 루프백 전용 시나리오를 위해 예약하세요.
    • 의도된 서버 네트워크 인터페이스에서만 청취하며, 권한 있는 클라이언트 컴퓨터나 서브넷에서만 인바운드 연결을 허용하고, 공용 인터넷에서의 직접 연결은 허용하지 않습니다.
    • 스트리밍과 도구 또는 함수 호출을 지원합니다. OpenAI 호환성만으로 모든 GitHub Copilot CLI 기능에 대한 지원을 보장하지는 않습니다. 엔드포인트 운영자와 선택된 모델 기능을 검증하세요.
  • Windows 클라이언트에서 Windows Server로의 네트워크 연결은 다음과 같습니다:
    • 클라이언트 컴퓨터에서 해결되는 Windows Server 추론 엔드포인트의 DNS 이름입니다.
    • 네트워크 라우팅과 방화벽 규칙으로, 권한 있는 클라이언트나 서브넷만 엔드포인트 포트에 연결할 수 있습니다.
    • 클라이언트가 신뢰하는 HTTPS 인증서로, 그 주제 이름 또는 주제 대체 이름이 엔드포인트 DNS 이름과 일치합니다.
  • 엔드포인트 기본 URL, 예를 들어 https://inference.contoso.com/v1.
  • 엔드포인트 운영자가 지정한 엔드포인트 자격 증명과 인증 유형.

GitHub Copilot CLI 설치

  1. PowerShell을 엽니다.

  2. 안정적인 GitHub Copilot CLI 패키지를 설치하세요:

    winget install GitHub.Copilot
    
  3. 설치가 성공했는지 확인하세요:

    copilot --version
    

    명령어는 설치된 GitHub Copilot CLI 버전을 반환합니다.

Windows Server 추론 엔드포인트에서 모델 ID를 얻습니다

  1. 엔드포인트 운영자가 제공한 기본 URL을 설정하세요:

    $BaseUrl = 'https://inference.contoso.com/v1'
    
  2. 엔드포인트 운영자가 지정한 API 키 또는 베어러 토큰을 입력하세요. 단기간 사용 가능한 최소 권한 자격 증명을 사용하세요. 조직에서 승인된 비밀 저장 명령어를 제공할 때, 직접 입력하지 않고 자격 증명을 가져오는 데 사용하세요. 다음 명령어는 값 값을 SecureString 평문 $endpointCredential 값으로 변환하며, 이 값은 이 PowerShell 세션 동안 메모리에 남아 있습니다.

    $secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString
    $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).Password
    
  3. GET에 $BaseUrl/models 요청을 보내세요. $endpointCredential 헤더에 Authorization: Bearer을(를) 포함하고, 응답의 data 배열에서 각 모델 ID를 읽습니다:

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

    이 명령어는 하나 이상의 모델 ID를 반환합니다. 스트리밍과 도구 또는 함수 호출을 지원하는 모델의 정확한 ID를 복사하세요.

GitHub Copilot CLI 제공자 및 모델을 구성하세요

  1. $endpointCredential를 Windows Server 엔드포인트 기본 URL로 설정하고 $BaseUrl를 해당 API 키 또는 베어러 토큰으로 설정하세요. 같은 PowerShell 세션에서 제공자 유형, 엔드포인트 기본 URL, 정확한 모델 ID를 설정하세요. Windows Server 엔드포인트가 반환하는 ID로 대체 <MODEL_ID> 하세요.

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

    제공자 유형은 openai vLLM을 포함한 OpenAI 호환 엔드포인트를 지원합니다.

  2. 현재 PowerShell 세션이 상속받은 모든 제공자 인증 변수를 삭제하세요:

    Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
    
  3. 엔드포인트 운영자가 지정한 인증 방법을 구성하세요:

    • 표준 OpenAI API 키 인증을 위해서는 조직에서 승인한 비밀 저장 명령어가 있을 때 사용할 수 있습니다:

      $env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'
      

      명령어는 승인된 비밀 저장소에서 자격 증명을 가져와야 하며, 자격 증명만 출력하고 기록하거나 보존하지 않아야 합니다. COPILOT_PROVIDER_API_KEY_COMMAND가 COPILOT_PROVIDER_API_KEY보다 우선합니다.

    • 승인된 비밀 저장소 명령어가 없다면, 현재 PowerShell 세션의 단기 백업으로 API 키를 직접 설정하세요:

      $env:COPILOT_PROVIDER_API_KEY = $endpointCredential
      
    • 베어러-토큰 인증을 위해 베어러 토큰을 설정하세요:

      $env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
      

    Important

    스크립트, 소스 컨트롤, 명령 예제에 API 키를 넣지 마세요. copilot 그리고 시작한 모든 프로세스는 제공자 인증 환경 변수를 상속받습니다. 단기간의 최소 권한 자격 증명을 사용하고, GitHub Copilot CLI를 종료한 후 변수를 제거하세요.

  4. 설치된 버전에서 지원되는 제공자 변수를 검토하세요:

    copilot help providers
    

GitHub Copilot CLI 시작 및 검증

  1. 신뢰할 수 있는 파일이 있는 디렉터리로 변경하세요:

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

Important

시작하기 copilot전에 멈췄거나 이전 명령이 실패하면, 제공자 인증 변수를 제거하고 요청 헤더를 지우고 보안 자격 증명을 폐기한 후 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()
}

정리가 실행되면 PowerShell 세션을 종료하세요. 변경 불가능한 평문 $endpointCredential 문자열은 프로세스가 종료될 때까지 메모리에 남아 있습니다.

  1. GitHub Copilot CLI를 시작하고 검증 단계를 try 블록에서 실행하여, 종료할 때 또는 명령이 실패할 때 PowerShell이 공급자 인증 환경 변수를 제거하고 SecureString 값을 삭제하도록 하세요:

    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. trusted-directory 프롬프트를 확인하세요. 디렉터리의 내용을 통제하고 신뢰를 유지할 것으로 기대할 때만 향후 세션에 대해 신뢰하세요.

  3. GitHub Copilot CLI에서 입력하라는 메시지가 표시되면 /login을 입력하고 GitHub에 인증하라는 안내에 따라 진행하세요. GitHub 인증은 추론 엔드포인트에 인증하는 API 키와는 별개입니다.

  4. 이 테스트 프롬프트를 입력하세요:

    Reply with exactly: Local inference test succeeded
    

    Windows Server 엔드포인트에서 구성된 모델은 제공자, 인증, 모델 호환성 오류 없이 반환 Local inference test succeeded 됩니다. GitHub Copilot CLI를 종료하면 PowerShell이 블록을 finally 실행합니다. PowerShell은 변경 불가능한 평문 $endpointCredential 문자열을 메모리에서 신뢰성 있게 지울 수 없으므로, 명령이 완료된 후 PowerShell 세션을 종료하여 프로세스 메모리를 해제하세요.

GitHub Copilot CLI Windows Server 추론 엔드포인트 연결 문제 해결

문제 확인할 사항
모델 요청이 엔드포인트에 도달할 수 없습니다 엔드포인트 기본 URL, DNS 해석, 포트, 네트워크 경로, 서비스 상태, TLS 인증서 신뢰도를 확인하세요. 기본 URL에는 엔드포인트 운영자가 제공하는 API 프리픽스(예: /v1.)가 포함되어야 합니다.
모델들은 반품 401 을 요청하거나 403 자격 증명이 유효한지 확인하세요. API 키 인증의 경우, 승인된 secret-store 명령과 함께 COPILOT_PROVIDER_API_KEY_COMMAND를 사용하는 것이 좋습니다. 단기간 대비책으로만 사용 COPILOT_PROVIDER_API_KEY 하세요. 베어러 토큰 인증의 경우, 엔드포인트 연산자가 지정한 대로 로 설정합니다 COPILOT_PROVIDER_BEARER_TOKEN.
GitHub Copilot CLI는 다른 공급자나 모델을 사용합니다 제공자 유형, 기본 URL, 모델, 그리고 선택한 인증 변수를 같은 PowerShell 세션에서 설정 copilot하세요. 엔드포인트가 반환하는 정확한 모델 ID를 사용하세요. 또한 $HOME\.copilot\providers.json도 확인해 보세요; 해당 파일의 공급자 또는 모델 선언이 COPILOT_PROVIDER_* 변수보다 우선 적용됩니다.
GitHub Copilot CLI가 모델을 찾을 수 없습니다 $BaseUrl/models에 다시 쿼리한 후, id 값을 엔드포인트가 반환하는 COPILOT_MODEL 값과 대소문자와 구두점까지 포함하여 비교하세요.
엔드포인트가 요청을 수락한 후 프롬프트는 실패합니다 모델과 엔드포인트가 스트리밍과 도구 또는 함수 호출을 모두 지원하는지 확인하세요. 엔드포인트 로그에서 지원되지 않는 요청 필드, 도구 스키마, 컨텍스트 제한, 응답 형식이 있는지 검토하세요.