GitHub Copilot / VS Code

GitHub Copilot / VS Code

이 튜토리얼은 VS Code 채팅에서 LiteLLM Proxy를 사용하는 두 가지 방법을 보여줍니다. LiteLLM 확장은 여러분의 게이트웨이를 언어 모델 제공자로 추가하여, 채팅 모델 선택기에 여러분의 키가 도달할 수 있는 모델들이 각 모델의 가격과 reasoning effort 컨트롤과 함께 표시되게 해요. Copilot proxy override 방식은 대신 GitHub Copilot의 트래픽을 프록시로 향하게 합니다.

출처: 문서

본문

info

proxy override 섹션은 Sergio Pino가 GitHub Copilot 모델을 LiteLLM Proxy로 호출하는 방법에 대한 가이드를 바탕으로 한 것입니다.

VS Code 채팅을 LiteLLM과 함께 사용할 때의 이점

VS Code 채팅을 LiteLLM과 함께 사용하면 다음과 같은 이점이 있어요:

개발자 이점:

  • 범용 모델 접근: VS Code 채팅 모델 선택기에서 LiteLLM이 지원하는 모든 모델(Anthropic, OpenAI, Vertex AI, Bedrock 등)을 사용할 수 있어요.
  • 더 높은 Rate Limit과 신뢰성: 여러 모델과 제공자에 걸쳐 로드 밸런싱하여 개별 제공자 한도에 부딪히는 것을 피하고, 한 제공자가 실패해도 응답을 받도록 fallback을 보장해요.

Proxy 관리자 이점:

  • 중앙 집중식 관리: 각 제공자에 개발자에게 API 키를 주지 않고 단일 LiteLLM proxy 인스턴스를 통해 모든 모델에 대한 접근을 통제할 수 있어요.
  • 예산 컨트롤: 모든 VS Code 사용량에 걸쳐 비용 상한을 설정하고 비용을 추적할 수 있어요.

전제 조건

시작하기 전에 다음이 필요합니다:

  • 실행 중인 LiteLLM Proxy 인스턴스
  • 유효한 LiteLLM Proxy API 키
  • GitHub Copilot Chat 확장이 포함된 VS Code 1.115 이상(채팅 보기와 모델 선택기가 이 확장에서 제공됨)

옵션 1: VS Code용 LiteLLM 확장

확장은 LiteLLM 저장소의 vscode-extension/ 아래에 있어요. 구성한 키에 대해 게이트웨이의 GET /model_group/info를 읽어서, 선택기에 그 키가 사용할 수 있는 채팅 모델이 각각의 1M 토큰당 입력/출력 가격과 함께 정확히 표시됩니다. 게이트웨이 항목에 supported_reasoning_efforts가 있는 모델은 채팅 툴바에 Reasoning Effort 메뉴가 생기고, 선택한 effort는 그 모델에 대한 모든 요청에 reasoning_effort로 전송됩니다. 요청은 스트리밍 채팅 completion으로 POST /v1/chat/completions로 가며 도구와 이미지가 통과하므로 라우팅, fallback, guardrail, 비용 추적이 평소처럼 적용됩니다.

1단계: 확장 빌드 및 설치

git clone https://github.com/BerriAI/litellm.gitcd litellm/vscode-extensionnpm cinpm run packagecode --install-extension litellm-vscode-0.1.0.vsix

main에 확장을 건드리는 push가 있을 때마다 VS Code Extension 워크플로에서도 litellm-vscode 아티팩트가 빌드되며, 같은 방식으로 다운로드해 설치할 수 있어요.

2단계: 게이트웨이에 연결

  • Command Palette에서 Chat: Manage Language Models를 실행하고 LiteLLM을 선택하세요
  • 연결 이름, 게이트웨이 URL(예: https://litellm.example.com), LiteLLM virtual key를 입력하세요. 키는 VS Code의 비밀 저장소에 보관돼요.

Language Models 편집기에 이제 선택한 이름 아래 해당 키가 도달할 수 있는 채팅 모델이 표시됩니다. 다른 게이트웨이나 두 번째 키에 도달하려면 다른 이름으로 LiteLLM을 다시 추가하면 돼요.

3단계: 모델과 reasoning effort 선택

채팅 보기를 열고 툴바에서 모델 이름을 클릭하세요. 게이트웨이 모델이 1M 토큰당 가격과 함께 나열되고, 모델에 마우스를 올리면 컨텍스트 한도와 지원되는 reasoning effort가 보여요. reasoning effort를 지원하는 모델을 선택하면 툴바에 Reasoning Effort 컨트롤이 나타나는데, 그 선택지는 게이트웨이가 해당 모델에 대해 보고한 effort에 Gateway default(reasoning_effort를 보내지 않아 프록시의 기본값이 적용됨)가 더해진 것입니다.

목록 최신 상태 유지

게이트웨이의 모델 목록이나 가격이 바뀌면 LiteLLM: Refresh Models를 실행하세요. 연결의 키를 교체하려면 Language Models 편집기에서 해당 행의 기어를 사용해 Update API Key를 선택하고, Delete는 연결을 제거하며, Open in Language Models (JSON)은 항목을 열어 URL을 변경하게 해줍니다. 저장된 키가 유실되면 편집기는 키를 업데이트할 때까지 그 연결에 대해 missing its API key 행을 표시해요.

옵션 2: GitHub Copilot을 LiteLLM을 통해 라우팅

이 경로는 GitHub Copilot의 자체 모델 선택기를 유지하고 Copilot의 트래픽을 대신 프록시로 보냅니다. 위 전제 조건에 추가로 GitHub Copilot 구독(Individual, Business, Enterprise)이 필요해요.

1단계: LiteLLM 설치

프록시 지원과 함께 LiteLLM을 설치합니다:

uv tool install litellm[proxy]

2단계: LiteLLM Proxy 구성

모델 설정이 담긴 config.yaml 파일을 만드세요:

config.yaml

model_list:
  - model_name: gpt-5.6-terra
    litellm_params:
      model: gpt-5.6-terra
      api_key: os.environ/OPENAI_API_KEY
  - model_name: claude-sonnet-5
    litellm_params:
      model: anthropic/claude-sonnet-5
      api_key: os.environ/ANTHROPIC_API_KEYgeneral_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

3단계: LiteLLM Proxy 시작

프록시 서버를 시작합니다:

litellm --config config.yaml --port 4000

4단계: GitHub Copilot 구성

GitHub Copilot이 LiteLLM proxy를 사용하도록 구성합니다. VS Code settings.json에 다음을 추가하세요:

{
  "github.copilot.advanced": {
    "debug.overrideProxyUrl": "http://localhost:4000",
    "debug.testOverrideProxyUrl": "http://localhost:4000"
  }
}

5단계: 통합 테스트

VS Code를 재시작하고 GitHub Copilot을 테스트하세요. 이제 요청이 LiteLLM Proxy를 통해 라우팅되어 다음과 같은 LiteLLM 기능을 사용할 수 있어요:

  • 요청/응답 로깅
  • Rate limiting
  • 비용 추적
  • 모델 라우팅과 fallback

고급

VS Code에서 Anthropic, OpenAI, Bedrock 등 모델 사용

두 옵션 모두 프록시 설정에 나열된 모델로 라우팅하므로, LiteLLM Proxy 설정에 다른 모델을 구성하면 어떤 제공자에도 도달할 수 있어요:

  • Anthropic
  • OpenAI
  • Bedrock
  • 다중 제공자 로드 밸런싱

Claude Sonnet으로 요청 라우팅:config.yaml

model_list:
  - model_name: claude-sonnet-5
    litellm_params:
      model: anthropic/claude-sonnet-5
      api_key: os.environ/ANTHROPIC_API_KEYgeneral_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

gpt-5.6-terra로 요청 라우팅:config.yaml

model_list:
  - model_name: gpt-5.6-terra
    litellm_params:
      model: gpt-5.6-terra
      api_key: os.environ/OPENAI_API_KEYgeneral_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

Bedrock의 Claude로 요청 라우팅:config.yaml

model_list:
  - model_name: bedrock-claude
    litellm_params:
      model: bedrock/us.anthropic.claude-sonnet-5
      aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID
      aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY
      aws_region_name: us-east-1general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

같은 model_name을 가진 모든 배포는 로드 밸런싱됩니다. 이 예시에서는 OpenAI와 Anthropic 사이에서 로드 밸런싱해요:config.yaml

model_list:
  - model_name: gpt-5.6-terra
    litellm_params:
      model: gpt-5.6-terra
      api_key: os.environ/OPENAI_API_KEY
  - model_name: gpt-5.6-terra  # Same model name for load balancing
    litellm_params:
      model: anthropic/claude-sonnet-5
      api_key: os.environ/ANTHROPIC_API_KEYrouter_settings:
  routing_strategy: simple-shufflegeneral_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

이 구성으로 VS Code 채팅 요청은 LiteLLM을 통해 구성한 제공자(들)로 로드 밸런싱과 fallback과 함께 라우팅됩니다.

트러블슈팅

문제가 발생하면:

  • 선택기에 LiteLLM 모델이 없음: 선택기는 mode가 chat이고 구성한 키가 접근할 수 있는 모델 그룹만 나열해요. 그 키로 GET /model_group/info를 확인한 뒤 LiteLLM: Refresh Models를 실행하세요. 제한 모드(Restricted Mode)의 창은 워크스페이스를 신뢰할 때까지 "Models unavailable"을 표시해요.
  • Language Models 편집기의 missing its API key: 저장된 키가 유실된 경우. 연결 행의 기어를 사용해 Update API Key를 선택하세요.
  • GitHub Copilot이 프록시를 사용하지 않음: VS Code 설정에서 프록시 URL이 올바르게 구성됐는지, LiteLLM proxy가 실행 중인지 확인하세요.
  • 인증 오류: master key가 유효한지, 제공자 API 키가 올바르게 설정됐는지 확인하세요.
  • 연결 오류: LiteLLM Proxy가 http://localhost:4000에서 접근 가능한지 확인하세요.

크레딧

프록시 override 경로는 Sergio Pino의 원저 기사(OpenHands에서 LiteLLM Proxy를 사용해 GitHub Copilot 모델 호출)를 바탕으로 합니다. 기초 작업에 감사드립니다!

더 알아보기 (Learn more)