러시아의 GitHub Copilot: 계정, 플랜 및 Custom Endpoint

GitHub 계정과 Copilot 플랜을 VS Code Custom Endpoint와 분리하고 외부 모델을 inline completion과 혼동하지 않고 시험합니다.

BetterToken Custom Endpoint로 외부 모델을 Copilot Chat에 연결할 수 있습니다. GitHub 계정, Copilot 플랜, API 액세스는 서로 다른 기능을 제어합니다. 현재 VS Code 버전은 키를 로컬 Secret Storage에 저장하며, 이후 Chat과 Dashboard에서 요청을 검증할 수 있습니다. 이 설정은 inline completion이나 GitHub 서비스 액세스를 바꾸지 않습니다.

설정하는 대상

Copilot에는 독립적인 계층이 있습니다. 설정 전에 분리해 두면 Chat이 응답하는데 에디터의 제안은 바뀌지 않는 이유를 이해하기 쉽습니다.

계층제어하는 것Custom Endpoint가 대체하는가?
GitHub 계정로그인, 라이선스 연결, GitHub 기능아니요
Copilot 플랜내장 모델과 completions를 포함한 Copilot 서비스의 쿼터와 기능아니요
로컬 BYOK / Custom Endpoint지원되는 클라이언트와 Chat 화면에서 외부 모델 선택클라이언트가 선택 모델로 보내는 요청만
Inline completions에디터에서 직접 코드 완성아니요. GitHub Copilot 기능으로 남음

GitHub는 로컬 BYOK를 설명합니다. 키는 장치에 저장되고 지원 여부는 클라이언트마다 다릅니다. Business 또는 Enterprise 조직에서는 관리자가 이 기능을 끌 수 있습니다. Enterprise BYOK는 별도 서버 측 시나리오이며 요구사항도 다릅니다.

사용 중인 Copilot Chat 버전에서 Custom Endpoint를 확인하고 싶나요? 자신의 BetterToken 계정과 API Key를 만들고, 현재 지침을 연 뒤 아래 설정을 완료하세요. BetterToken은 OpenAI-compatible API 액세스와 Dashboard 사용 기록을 제공하지만 GitHub 계정을 발급하거나 Copilot 플랜을 활성화하거나 GitHub 지역 규칙을 바꾸지는 않습니다.

러시아에서 GitHub Copilot을 설정하기 전에 확인할 것

  1. 최신 안정 VS Code 버전을 설치합니다.
  2. Copilot Chat을 열고 모델 선택기에 **Manage Models...**가 있는지 확인합니다.
  3. Language Models 창에서 Add Models → Custom Endpoint 명령이 가능한지 확인합니다.
  4. 자신의 BetterToken API Key를 만들고 모델 디렉터리에서 정확한 Model ID를 선택합니다.

BYOK 지원은 모든 클라이언트에서 동시에 바뀌지 않습니다. VS Code에 Custom Endpoint가 있다고 해도 JetBrains, Xcode, GitHub.com 또는 다른 인터페이스에서 같은 구성이 동작한다는 증거는 아닙니다. 지원 클라이언트와 제한의 최신 목록은 GitHub가 공개합니다.

공식 Copilot에는 또 다른 한계가 있습니다. GitHub Trade Restrictions Policy는 적절한 허가 없이 Copilot을 러시아에 판매하거나 수출할 수 없다고 설명합니다. Custom Endpoint는 이 정책을 무효화하지 않습니다. 지역 변경, 제3자 결제, 계정 확인 우회 방법은 제공되지 않습니다.

VS Code에 BetterToken Custom Endpoint를 추가하는 방법

1. 모델 관리를 엽니다

Copilot Chat 입력란에서 모델 선택기를 열고 **Manage Models...**를 고른 다음 Add Models → Custom Endpoint를 클릭합니다.

이 옵션이 없다면 먼저 VS Code를 업데이트하세요. 오래된 임의의 매뉴얼에서 구성을 옮기지 마세요. 명령 이름과 파일 구조는 바뀔 수 있습니다.

2. 그룹을 만들고 키를 저장합니다

Group Name 필드에 BetterToken을 입력합니다. VS Code가 API Key를 요청하면 팝업에 키를 붙여 넣고 Enter를 누릅니다.

VS Code는 비밀을 로컬에 저장하고 구성에는 대략 다음 참조를 작성해야 합니다.

"apiKey": "${input:chat.lm.secret.xxxxx}"

이 참조를 실제 키로 바꾸지 마세요. 키를 settings.json, 공개 저장소의 .env에 쓰거나 커밋하면 안 됩니다.

3. Chat Completions 프로토콜을 선택합니다

검증된 BetterToken 구성에서는 Chat Completions를 선택합니다. 그러면 VS Code가 chatLanguageModels.json을 엽니다.

최소 필드 구성은 다음과 같습니다.

[ { "name": "BetterToken", "vendor": "customendpoint", "apiKey": "${input:chat.lm.secret.xxxxx}", "apiType": "chat-completions", "models": [ { "id": "YOUR_MODEL_ID", "name": "YOUR_MODEL_ID", "url": "https://www.bettertoken.ai/v1/chat/completions" } ] } ]

YOUR_MODEL_ID는 자리표시자입니다. 사용 가능한 모델의 정확한 ID로 바꾸세요. 여기서 url은 완전한 Chat Completions endpoint이며 Base URL https://www.bettertoken.ai/v1만으로는 충분하지 않습니다. toolCalling, vision, Token 컨텍스트 제한은 선택 모델의 기능과 현재 BetterToken 문서에 맞는 경우에만 추가합니다.

4. VS Code 창을 다시 로드합니다

파일을 저장하고 Command Palette에서 다음을 실행합니다.

Developer: Reload Window

다시 시작한 뒤 Copilot Chat 선택기를 열어 BetterToken 그룹의 모델을 고릅니다.

5. 짧게 테스트합니다

검증하기 쉬운 결과의 요청을 보냅니다. 예:

두 필드만 있는 JSON을 반환하세요: language="ko" 및 sum=2+2.

연결은 다음 세 조건이 동시에 충족될 때만 확인됩니다.

  • Copilot Chat이 권한 또는 Model ID 오류 없이 유효한 JSON을 반환한다.
  • 요청이 BetterToken Dashboard 사용 기록에 나타난다.
  • inline completion은 별도로 확인하며 Custom Endpoint 결과로 간주하지 않는다.

Copilot 로그인 없이 Chat을 사용할 경우 VS Code는 일부 유틸리티 작업에 모델이 계속 필요하다고 경고합니다. 이때 chat.utilityModelchat.utilitySmallModel에 BYOK 모델을 선택하세요. 정확한 설정 이름은 VS Code language models 문서에서 확인합니다.

Chat은 동작하지만 inline completion이 바뀌지 않는 이유

Custom Endpoint는 지원되는 Chat 및 Agent 워크플로 화면에 모델을 연결합니다. 에디터에 직접 나타나는 자동 완성은 GitHub Copilot 기능으로 남습니다. 따라서 BetterToken 요청이 성공해도 공식 completions가 확인되거나 같은 방식으로 소비되는 것은 아닙니다.

일부 VS Code 기능도 GitHub 서비스에 의존합니다. 문서에는 의미 검색, inline suggestions, embeddings가 언급됩니다. 모델과의 대화 또는 Chat 내 Agent 스크립트만 필요하다면 로컬 BYOK로 충분할 수 있습니다. completions 및 통합 Copilot 기능에는 계정, 플랜, 조직 정책을 따로 확인하세요.

GitHub Copilot app은 자체 BYOK 시나리오를 지원합니다. 자신의 provider를 사용할 때 GitHub 계정은 필요하지만 Copilot 플랜은 필요하지 않습니다. 이 규칙은 앱에 한정되며 VS Code, GitHub.com, Enterprise 기능에 자동 적용되지 않습니다.

흔한 Custom Endpoint 오류

모델이 선택기에 나타나지 않음

VS Code가 최신인지, chatLanguageModels.json에 항목이 있는지, Model ID가 정확히 일치하는지 확인한 뒤 Developer: Reload Window를 실행하세요. 관리되는 장치에서는 Business 또는 Enterprise 정책이 로컬 BYOK를 금지하는지 확인합니다.

Error 401 또는 Invalid token

Add Models에서 모델을 다시 추가하여 VS Code가 키를 요청하고 Secret Storage에 저장하게 합니다. JSON에는 실제 값이 아니라 ${input:chat.lm.secret...} 참조가 있어야 합니다. 키가 자신의 BetterToken 계정 소유이며 활성 상태인지도 확인하세요.

404 또는 model not found

apiType: "chat-completions"에서는 전체 URL https://www.bettertoken.ai/v1/chat/completions을 확인합니다. 이어서 id를 BetterToken 디렉터리의 현재 Model ID와 비교합니다. Base URL, 전체 endpoint, Model ID는 서로 다른 세 검증 필드입니다.

Chat은 답하지만 completions는 그대로임

이는 예상된 기능 경계입니다. Custom Endpoint는 inline completions를 대체하지 않습니다. 해당 GitHub Copilot 기능에 대한 별도 액세스가 필요합니다.

GitHub와 BetterToken에 각각 의존하는 것

GitHub는 계정, Copilot 플랜, 지역 및 조직 제한, inline completions 같은 내장 기능을 제어합니다. 이 시나리오에서 BetterToken은 외부 OpenAI-compatible 요청, API Key, 사용 가능한 Model ID, Dashboard의 사용 기록을 담당합니다.

설정 전에 현재 클라이언트의 BYOK 지원을 확인하세요. 그런 다음 현재 BetterToken 지침을 열고 VS Code 인터페이스로 Custom Endpoint를 추가한 뒤 짧은 쿼리와 Dashboard 기록으로 검증을 완료합니다.

FAQ

유료 Copilot 플랜 없이 Custom Endpoint를 사용할 수 있나요?

클라이언트와 기능에 따라 다릅니다. GitHub Copilot app에서는 문서상 Copilot 플랜 없이 GitHub 계정으로 BYOK를 사용할 수 있습니다. VS Code에서는 Copilot 미로그인 상태에서도 일부 BYOK Chat 스크립트가 동작할 수 있지만 의미 검색, inline suggestions, embeddings, 일부 유틸리티 작업에는 별도 종속성이 남습니다.

BetterToken이 GitHub Copilot 구독을 대체하나요?

아니요. BetterToken은 클라이언트가 Custom Endpoint 또는 BYOK를 지원하는 위치에서 외부 모델을 연결합니다. GitHub 계정, 플랜, completions, 다른 Copilot 기능은 별개입니다.

API Key를 chatLanguageModels.json에 저장할 수 있나요?

실제 키 값은 이 파일에 쓰면 안 됩니다. VS Code 팝업에서 키를 입력하고 애플리케이션이 만든 secret 참조를 남겨 두세요.

이 방식에 VPN이 필요한가요?

러시아에서 BetterToken API Endpoint에 연결하는 데 VPN은 필요하지 않습니다. 이 설명은 BetterToken endpoint에만 적용됩니다. GitHub 사이트, 로그인, 클라이언트 다운로드, 업데이트, Copilot 기능은 GitHub 약관과 네트워크 조건을 계속 따릅니다.

LLM 워크플로를 최적화할 준비가 되셨나요?

하나의 API로 모델을 연결하고 키와 AI 비용을 관리하세요.