# GitHub Copilot-কে Tokens-এর সাথে যুক্ত করুন

> VS Code-এর GitHub Copilot Chat-এ Tokens-এর model চালান। bring-your-own-key Custom Endpoint provider আর chatLanguageModels.json-এর একটা entry-ই যথেষ্ট।

GitHub Copilot-এর bring-your-own-key (BYOK) **Custom Endpoint** provider দিয়ে VS Code-এ GitHub-এর বাইরের model চালানো যায়। Tokens-এর ক্ষেত্রে Custom Endpoint আপনার OpenAI Chat Completions request পাঠায় `https://tokens.bd/v1/chat/completions`-এ, আর model-গুলো Copilot Chat-এর model picker-এ দেখা যায়।

Custom Endpoint আসার পর পুরোনো "OpenAI Compatible" provider আর `github.copilot.chat.customOAIModels` setting, দুটোই deprecated। আগে ওই পদ্ধতিতে Tokens সেট করে থাকলে নিচের ধাপগুলো ধরে নতুন পদ্ধতিতে চলে আসুন।

## Copilot-এ BYOK কী কী কাজ করে

VS Code-এর docs অনুযায়ী BYOK model শুধু chat আর utility কাজে চলে। Inline suggestion, semantic search আর embeddings এখনো GitHub দিয়েই যায়। তাই ওই কাজগুলোর জন্য আপনার Copilot সাবস্ক্রিপশন লাগবেই।

Copilot Business আর Enterprise-এ admin চাইলে policy দিয়ে BYOK বন্ধ করে রাখতে পারেন। **Custom Endpoint** option না দেখলে আপনার organization-এর Copilot settings যিনি দেখেন, তাঁকে জিজ্ঞেস করুন।

## VS Code-এ Tokens-এর জন্য Custom Endpoint যোগ করুন

### 1. key তৈরি করুন

Dashboard থেকে একটা key তৈরি করুন। শুধু Copilot-এর জন্য আলাদা key রাখুন, তার নিজস্ব মাসিক spend cap দিয়ে। এতে খরচ ট্র্যাক করা আর দরকারে key বাতিল করা সহজ হয়। কী কী option আছে তা [API keys](/docs/api-keys) পাতায় আছে।

### 2. wizard চালান

1. Copilot Chat-এর model picker খুলে gear আইকনে ক্লিক করুন, তারপর **Manage Language Models** বেছে নিন। চাইলে command palette থেকে **Chat: Manage Language Models** চালাতে পারেন।
2. **Add Models** বেছে নিন, তারপর **Custom Endpoint**।
3. একটা group name (`Tokens`), একটা display name আর আপনার API key দিন।
4. API type হিসেবে **Chat Completions** বেছে নিন।

এরপর VS Code নিজেই `chatLanguageModels.json` খুলে দেবে।

### 3. chatLanguageModels.json এডিট করুন

Tokens-এর entry-টা এমন করে নিন:

```json title="chatLanguageModels.json"
[
  {
    "name": "Tokens",
    "vendor": "customendpoint",
    "apiKey": "${input:tokensApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "deepseek/deepseek-v4.1-flash",
        "name": "DeepSeek V4.1 Flash (Tokens)",
        "url": "https://tokens.bd/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 120000,
        "maxOutputTokens": 8192
      }
    ]
  }
]
```

প্রতিটা field-এর কাজ:

- `id` হলো Tokens-এর model ID, হুবহু। এটা যেমন আছে তেমনই upstream-এ যায়।
- `url`-এ উপরের মতো পুরো endpoint দিতে পারেন। যে URL আগে থেকেই `/chat/completions`, `/responses` বা `/messages` দিয়ে শেষ, VS Code সেটা বদলায় না। না হলে API type অনুযায়ী path জুড়ে দেয়, আর `/v1` না থাকলে সেটাও বসায়। পুরো URL লিখে দিলে আর আন্দাজের দরকার পড়ে না।
- `apiKey`-তে input variable ব্যবহার হয়েছে, তাই আসল key JSON file-এ থাকে না। সরাসরি key paste করলে এই file-টাকে secret হিসেবে সামলাতে হবে।
- Copilot-এর agent mode-এর জন্য `toolCalling: true` লাগে। শুধু যে model tool calling সাপোর্ট করে, তাতেই এটা দিন।
- `vision` শুধু সেই model-এ `true` করুন, যেটা image input নিতে পারে।
- `maxInputTokens` আর `maxOutputTokens` এখানে উদাহরণ মাত্র। আসল সীমা [model catalog](/models) থেকে দেখে বসান।

key যায় `Authorization: Bearer` header-এ, আর Tokens সেটা গ্রহণ করে।

## model বদলান

প্রতিটা Tokens model-এর জন্য `models`-এ একটা করে object যোগ করুন, নিজের `id`, `name` আর সীমা সহ। সেগুলো Copilot Chat-এর model picker-এ Tokens group-এর নিচে দেখা যাবে। সঠিক ID পাবেন [catalog](/models) থেকে, অথবা এই command চালিয়ে:

```bash
curl -s https://tokens.bd/v1/models -H "Authorization: Bearer $TOKENS_API_KEY"
```

কোনটা বেছে নেবেন বুঝতে না পারলে [Choosing a model](/docs/choosing-a-model) দেখুন।

### Anthropic Messages variant

Custom Endpoint Anthropic Messages API-ও সাপোর্ট করে। সেজন্য `"apiType": "messages"` আর `"url": "https://tokens.bd/v1/messages"` দিন। এই type-এ VS Code key পাঠায় `x-api-key` header-এ, Tokens সেটাও গ্রহণ করে। request-এর format আছে [Messages](/docs/messages) পাতায়। তবে সহজ default হলো Chat Completions।

## ঠিকমতো চলছে কিনা দেখুন

আগে VS Code-এর বাইরে key-টা পরীক্ষা করে নিন:

```bash
export TOKENS_API_KEY=tok_live_your_key
curl -s https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek/deepseek-v4.1-flash", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with OK"}]}'
```

এরপর Copilot Chat খুলে model picker থেকে "DeepSeek V4.1 Flash (Tokens)" বেছে নিন, তারপর একটা প্রশ্ন করুন। agent mode-এ tool calling ঠিক আছে কিনা দেখতে একটা file পড়তে বলুন। request-টা আপনার Dashboard-এর usage analytics-এ দেখা যাবে।

## সমস্যা হলে

**Custom Endpoint option নেই।** আপনার VS Code বা Copilot Chat-এর version পুরোনো, নয়তো organization-এর policy BYOK বন্ধ করে রেখেছে।

**401 `invalid_api_key` বা `missing_api_key`।** key দেওয়া হয়নি, অথবা key ভুল, revoke করা বা rotate করা। key rotate করলে পুরোনো secret সঙ্গে সঙ্গে অচল হয়ে যায়। নতুন key দিতে wizard আবার চালান।

**404 `model_not_found`।** `id` হতে হবে Tokens-এর পুরো ID, যেমন `deepseek/deepseek-v4.1-flash`।

**404, আর path-টা অদ্ভুত।** `url` দেখুন। `/v1/chat/completions/chat/completions`-এর মতো দ্বিগুণ path দেখলে বুঝবেন পুরো URL-এর সাথে এমন কিছু মিশেছে, যা নিজে path জুড়ে দেয়। উপরে যেভাবে দেখানো হয়েছে, পুরো URL ঠিক সেভাবেই দিন।

**agent mode-এ model পাওয়া যাচ্ছে না।** `toolCalling: true` দিন।

**Inline suggestion Tokens ব্যবহার করছে না।** এটাই স্বাভাবিক। BYOK-তে inline suggestion পড়ে না।

**402 `insufficient_credits` বা 429 error।** [billing](/dashboard/billing) থেকে টাকা যোগ করুন। rate limit-এর ক্ষেত্রে [Troubleshooting](/docs/troubleshooting) দেখুন।

Copilot-এর request-গুলো [Chat Completions](/docs/chat-completions) format মেনে চলে। যদি এমন agent চান যা সবকিছু আপনার key দিয়েই চালায়, তাহলে [Cline](/docs/cline) বা [Continue](/docs/continue) দেখতে পারেন।

সূত্র: [VS Code docs, language models and Custom Endpoint](https://code.visualstudio.com/docs/agent-customization/language-models), 2026 সালের অক্টোবরে যাচাই করা।

---
Page: https://tokens.bd/bn/docs/github-copilot
