জ্ঞানকোষের বিভাগসমূহ ▾

নেভিগেশন

▸ এখানে শুরু করুন রোল অনুযায়ী

বিভাগ

সরঞ্জাম 52
গ্লসারি 12

টুলস

Crush + JoinGonka Gateway: Gonka নেটওয়ার্ক মডেলগুলিতে Charm এজেন্ট

Crush — Charm-এর একটি টার্মিনাল কোডিং-এজেন্ট, যাদের কনসোল ইন্টারফেস লাইব্রেরি দিয়ে হাজার হাজার প্রোগ্রাম তৈরি হয়েছে। এটি প্রজেক্ট ফাইল পড়ে এবং এডিট করে, কমান্ড চালায়, ল্যাঙ্গুয়েজ সার্ভার থেকে কনটেক্সট নেয় (LSP), MCP এর মাধ্যমে এক্সটারনাল টুল যুক্ত করে এবং কনটেক্সট না হারিয়ে সেশনের মাঝেই মডেল পরিবর্তন করতে পারে। এটি macOS, Linux এবং Windows-এর টার্মিনালে কাজ করে, সেই সাথে Android এবং BSD-তেও; লাইসেন্স — FSL-1.1-MIT। প্রজেক্টটির একটি উল্লেখযোগ্য ইতিহাস রয়েছে: আর্কাইভ করা opencode-ai/opencode রিপোজিটরি সরাসরি Crush-এর দিকে নির্দেশ করে — যার প্রথম লেখক এবং Charm টিম প্রজেক্টটি চালিয়ে নিয়েছে।

Crush দুই ধরনের থার্ড-পার্টি প্রোভাইডার গ্রহণ করে — OpenAI এবং Anthropic-সামঞ্জস্যপূর্ণ API। JoinGonka Gateway openai-compat হিসেবে সংযুক্ত হয়: ইন্সটলার কমান্ড বা দশ লাইনের কনফিগের মাধ্যমে। এর পরে এজেন্ট Gonka ডিসেন্ট্রালাইজড নেটওয়ার্কের মডেলে কাজ করে — DeepSeek V4 Flash, GLM-5.3 Flash এবং MiniMax M2.7 — একই মূল্যে: প্রতি মিলিয়ন ইনপুট টোকেনের জন্য $0.0069।

প্রথম সেশনের আগেই Crush-এর দুটি বিশেষত্ব জানা জরুরি: এটি মডেলগুলোকে লার্জ এবং স্মল স্লটে সাজায়, এবং ইন্টারফেসে নির্বাচিত মডেলটিকে একটি আলাদা স্টেট ফাইলে সংরক্ষণ করে, যা কনফিগের চেয়ে বেশি গুরুত্বপূর্ণ। এগুলোর জন্য আলাদা সেকশন রয়েছে। নিচের কমান্ড এবং মেসেজগুলো ২৩ সেপ্টেম্বর ২০২৬-এ গেটওয়ের মাধ্যমে Crush 0.96.1 রান করে যাচাই করা হয়েছে। ঠিকানা নিশ্চিত করার পর অ্যাকাউন্টে 3M ফ্রি টোকেন আসবে — যা নিজেই সবকিছু করার জন্য যথেষ্ট।

দ্রুত শুরু: ইনস্টলেশন এবং এক কমান্ড

ধাপ ১: Crush ইনস্টল করুন। প্রজেক্টের README-তে দেওয়া অফিসিয়াল পদ্ধতিগুলো:

# Homebrew
brew install charmbracelet/tap/crush

# npm
npm install -g @charmland/crush

# Arch Linux
yay -S crush-bin

# Windows
winget install charmbracelet.crush

# Go
go install github.com/charmbracelet/crush@latest

সেখানেই Debian, Ubuntu, Fedora ও RHEL, Nix এবং Scoop-এর প্যাকেজ রিপোজিটরির কথা বলা আছে, আর রিলিজ পেজে তৈরি বাইনারি রয়েছে। যাচাই করার命令 — crush --version, উত্তরে crush version v0.96.1-এর মতো একটি লাইন আসবে।

ধাপ ২: কী নিন। gate.joingonka.ai/register-এ রেজিস্টার করুন, ঠিকানা যাচাই করুন এবং «API-কী» বিভাগে jg- প্রিফিক্সসহ একটি কী তৈরি করুন। একটি কী ও একটি ব্যালেন্স নেটওয়ার্কের সব মডেলের জন্য কাজ করে।

ধাপ ৩: ইনস্টলার চালান।

npx @joingonka/setup --tool crush

ইনস্টলার কী চাইবে — শেলের ইতিহাসে যাতে না পড়ে যায় সেজন্য কমান্ড লাইনের আর্গুমেন্টে এটি দেওয়া হয় না — এবং চারটি কাজ করবে:

  • ~/.config/crush/crush.json-এ joingonka প্রোভাইডার লিখবে: টাইপ openai-compat, গেটওয়ের ঠিকানা, কী সরাসরি এবং নেটওয়ার্কের তিনটি মডেল কনটেক্সট উইন্ডো, রেসপন্সের সীমা ও প্রতি মিলিয়ন টোকেনের দামসহ, যা ইনস্টল করার সময়েই গেটওয়ে থেকে লাইভ নেওয়া হয় — এগুলো দিয়েই Crush সেশনের খরচ হিসাব করে। ফাইলটি 600 পারমিশন পাবে;
  • মডেল নির্ধারণ করবে: large স্লটে — DeepSeek V4 Flash, small-এ — MiniMax M2.7, আর GLM-5.3 Flash ম্যানুয়াল নির্বাচনের তালিকায় থাকবে। এটি করবে কেবল তখনই যদি large স্লট খালি থাকে বা নেটওয়ার্ক থেকে বাদ পড়া আমাদের কোনো মডেলের দিকে ইঙ্গিত করে; অন্য কারও পছন্দ অপরিবর্তিত থাকবে, আর আউটপুটে কীভাবে সুইচ করতে হবে তার হিন্ট থাকবে;
  • যাচাই করবে যে নির্বাচন কার্যকর হবে: Crush ইন্টারফেস থেকে বেছে নেওয়া মডেল স্টেট ফাইলে থাকে, আর সেটি কনফিগকে ওভাররাইড করে, — এই নিয়েই large ও small-এর অংশ;
  • ব্যাকআপ করবে, বাকি প্রোভাইডার ও সেটিংস আগের মতোই রাখবে এবং গেটওয়েতে একটি লাইভ রিকোয়েস্ট দিয়ে শেষ করবে, যাতে সঙ্গে সঙ্গে কী, ঠিকানা ও মডেল যাচাই হয়।

অন্য মডেল নির্ধারণ করা হয় --model ফ্ল্যাগ দিয়ে, সংক্ষেপে deepseek, glm বা minimax; স্পষ্টভাবে উল্লেখ করা মডেল সবসময় লেখা হয়। নন-স্ট্যান্ডার্ড ডিরেক্টরি ইনস্টলার ঠিক Crush-এর মতোই বিবেচনা করে: কনফিগের জন্য CRUSH_GLOBAL_CONFIG, স্টেট ফাইলের জন্য CRUSH_GLOBAL_DATA, আর XDG_CONFIG_HOME ও XDG_DATA_HOME-ও। সার্ভার ও স্ক্রিপ্টের জন্য প্রশ্নহীন মোড আছে, সেখানে কী পরিবেশ ভেরিয়েবল থেকে নেওয়া হয়:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool crush --model glm --non-interactive

Crush-এর প্রধান ফরম্যাট এখন crushrc, কিন্তু ইনস্টলার crush.json লেখে: সব ভার্সনই এটি বোঝে। যদি আপনার কাছে crushrc আগে থেকেই থাকে, Crush দুটি ফাইলই একত্র করবে, কী মিলে গেলে crushrc জিতবে, আর ইনস্টলার এটি স্পর্শ করে না।

ম্যানুয়াল কনফিগারেশন: crush.json অথবা crushrc

ইনস্টলার যা করে, সবই হাতে লেখা যায়। এখানে একটি কার্যকর ~/.config/crush/crush.json — এই ফাইলটি আমরা গেটওয়ে দিয়ে চালিয়েছি:

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "joingonka": {
      "name": "JoinGonka (Gonka)",
      "type": "openai-compat",
      "base_url": "https://gate.joingonka.ai/v1",
      "api_key": "jg-your-key",
      "models": [
        { "id": "deepseek-ai/DeepSeek-V4-Flash-0731", "name": "DeepSeek V4 Flash (Gonka)",
          "context_window": 380000, "default_max_tokens": 32768,
          "can_reason": true, "supports_attachments": false },
        { "id": "MiniMaxAI/MiniMax-M2.7", "name": "MiniMax M2.7 (Gonka)",
          "context_window": 200000, "default_max_tokens": 8192,
          "can_reason": false, "supports_attachments": false },
        { "id": "zai-org/GLM-5.3-Flash", "name": "GLM-5.3 Flash (Gonka)",
          "context_window": 390000, "default_max_tokens": 8192,
          "can_reason": true, "supports_attachments": false }
      ]
    }
  },
  "models": {
    "large": { "provider": "joingonka", "model": "deepseek-ai/DeepSeek-V4-Flash-0731" },
    "small": { "provider": "joingonka", "model": "MiniMaxAI/MiniMax-M2.7" }
  }
}
ফিল্ডমানকী গুরুত্বপূর্ণ
typeopenai-compatOpenAI-সামঞ্জস্যপূর্ণ API-সহ থার্ড-পার্টি সার্ভিসের জন্য টাইপ। openai টাইপ Crush ডকুমেন্টেশন নিজের OpenAI দিয়ে পাঠানো রিকোয়েস্টের জন্য রেখে দিয়েছে
base_urlhttps://gate.joingonka.ai/v1শেষে /v1 সহ: /chat/completions পাথ Crush নিজেই যোগ করে
api_keyআপনার কী jg-…Crush মানটিকে শেল সাবস্টিটিউশনের মধ্য দিয়ে চালায়, তাই কীয়ের বদলে $JOINGONKA_API_KEY লিখতে পারেন — তখন ভেরিয়েবলটি যেখান থেকে Crush চালু হয় সেখানে এক্সপোর্ট করা থাকতে হবে
context_windowমডেলের উইন্ডোএর মাধ্যমে Crush কনটেক্সটের পূর্ণতা দেখায় এবং কখন হিস্ট্রি কম্প্রেস করবে তা ঠিক করে
default_max_tokensরেসপন্সের সীমাপ্রতিটি রিকোয়েস্টে max_tokens হিসেবে যায়। রিজনিং মডেলের ক্ষেত্রে এই বাজেটের মধ্যে রিজনিংও পড়ে

Crush শুধু কঠোর JSON গ্রহণ করে: একটি কমেন্ট বা ট্রেইলিং কমা — এবং এটি চালু হবে না। দামের ফিল্ডগুলো (cost_per_1m_in, cost_per_1m_out এবং ক্যাশের জন্য দুটি ফিল্ড) কেবল খরচের কাউন্টারের জন্য দরকার: ইনস্টলার সেখানে গেটওয়ের লাইভ দাম বসায়, আর সেগুলো ছাড়া Crush কাজ করে এবং শূন্য দেখায় — শুধু $schema-এর স্কিমা-সহ এডিটর সেগুলোকে আবশ্যক হিসেবে হাইলাইট করবে।

crushrc ফরম্যাটে একই প্রোভাইডার — এটি Crush-এর বিল্ট-ইন কমান্ডসহ সাধারণ Bash। ফাইল ~/.config/crush/crushrc:

provider add joingonka \
  --name "JoinGonka (Gonka)" \
  --type openai-compat \
  --base-url "https://gate.joingonka.ai/v1" \
  --api-key "${JOINGONKA_API_KEY:?set JOINGONKA_API_KEY}"

model add joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 \
  --name "DeepSeek V4 Flash (Gonka)" \
  --context-window 380000 --default-max-tokens 32768 --can-reason true

model add joingonka/MiniMaxAI/MiniMax-M2.7 \
  --name "MiniMax M2.7 (Gonka)" \
  --context-window 200000 --default-max-tokens 8192

model add joingonka/zai-org/GLM-5.3-Flash \
  --name "GLM-5.3 Flash (Gonka)" \
  --context-window 390000 --default-max-tokens 8192 --can-reason true

model large joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
model small joingonka/MiniMaxAI/MiniMax-M2.7

এখানে মডেলকে provider/model-id আকারে ডাকা হয়: প্রথম স্ল্যাশের আগে প্রোভাইডারের নাম, তারপর নেটওয়ার্কের আইডেন্টিফায়ার যেমন আছে তেমন। ${JOINGONKA_API_KEY:?…} আকার কীটিকে ফাইলের বাইরে রাখে, কিন্তু এক্সপোর্ট করা ভেরিয়েবল ছাড়া Crush চালু হয় না — খালি কী দিয়ে রিকোয়েস্টের চেয়ে স্টার্টে এরর ভালো।

large এবং small মডেল ও স্টেট ফাইল

Crush-এ মডেলটি পুরো কাজের জন্য একটি নয়, বরং দুটি স্লটের জন্য আলাদাভাবে নির্বাচন করা হয়:

স্লটএটি যা সম্পাদন করেইনস্টলার যা সেট করেকীভাবে পরিবর্তন করবেন
largeপ্রধান এজেন্ট: ফাইল পড়া, সম্পাদনা করা এবং কমান্ড চালানোর সমস্ত কাজDeepSeek V4 Flash: 380K উইন্ডো এবং নেটওয়ার্কের সবচেয়ে বড় রেসপন্স সিলিং, 32768ইন্টারফেসে ctrl+l, crush run-এ -m, কনফিগে models.large
smallসহায়ক কাজ: সেশনের নাম এবং সাব-এজেন্ট, যা ইন্টারনেটে অনুসন্ধান করে এবং ওয়েব পেজ পড়ে। যদি ছোট মডেলটি নাম দিতে ব্যর্থ হয়, Crush বড় মডেলটির কাছে অনুরোধটি আবার পাঠায়MiniMax M2.7: নেটওয়ার্কে এর ধারণক্ষমতা সবচেয়ে বেশিcrush run-এ --small-model, কনফিগে models.small, crushrc-এ model small

নেটওয়ার্কের তৃতীয় মডেল, রিজনিং মডেল GLM-5.3 Flash, জটিল লজিকের জন্য নির্বাচন করা হয়, এটি মনে রেখে যে এর রেসপন্স সিলিং 8192 এবং এর একটি অংশ রিজনিংয়ের কাজে ব্যয় হয় — বিস্তারিত দেখুন মডেল পর্যালোচনা-এ। প্রতিবার চালানোর জন্য মডেলটি সম্পূর্ণ নাম দিয়ে সেট করা হয়: crush run -m joingonka/zai-org/GLM-5.3-Flash "…"। সমস্ত উপলব্ধ নাম দেখতে crush models joingonka কমান্ডটি ব্যবহার করুন।

স্টেট ফাইল। ctrl+l এর মাধ্যমে ইন্টারফেসে যে মডেলটি নির্বাচন করা হয়, Crush তা crush.json-এ নয়, বরং মেশিন স্টেট ফাইলে সংরক্ষণ করে: ~/.local/share/crush/crush.json, Windows-এ — %LOCALAPPDATA%\crush\crush.json। এই ফাইলটি ব্যবহারকারীর কনফিগারেশন এবং crushrc-এর চেয়ে বেশি গুরুত্বপূর্ণ: Crush এগুলোকে এই ক্রমে পড়ে /etc/crush/crush.json → ~/.config/crush/crush.json → ~/.config/crush/crushrc → স্টেট ফাইল, এবং পরবর্তী ফাইলটি পূর্ববর্তীটির ওপর প্রাধান্য পায়। শুধুমাত্র প্রজেক্ট সেটিংস—সেই ডিরেক্টরিতে থাকা crush.json বা crushrc—এর উপরে থাকে। আপনার মেশিনে ফাইলগুলো কোথায় আছে তা crush dirs কমান্ডটি দেখাবে।

আমাদের প্রুনে, আমরা মডেল সিলেকশন ওপেন করেছি—প্রোভাইডার "JoinGonka (Gonka)" সেখানে "✓ Configured" চিহ্নসহ রয়েছে—এবং MiniMax M2.7 নির্বাচন করেছি। Crush উত্তর দিয়েছে "Large model changed to MiniMax M2.7 (Gonka)" এবং স্টেট ফাইলে লিখেছে:

{"models":{"large":{"model":"MiniMaxAI/MiniMax-M2.7","provider":"joingonka","max_tokens":8192}}, …}

এখন এই মডেলটি crush.json-এ যা লেখা আছে তার চেয়ে বেশি গুরুত্বপূর্ণ। ইনস্টলার এই পরিস্থিতিটি শনাক্ত করে এবং ভিন্নভাবে আচরণ করে:

  • --model ছাড়া: এটি স্টেট ফাইল পরিবর্তন করে না—এটি আপনার করা পছন্দ—তবে Crush আসলে কোন মডেলের সাথে চালু হবে সে সম্পর্কে সতর্ক করে: Heads-up: Crush will still start with joingonka/MiniMaxAI/MiniMax-M2.7, not joingonka/deepseek-ai/DeepSeek-V4-Flash-0731। ইন্টারফেসে GLM-5.3 Flash বা অন্য কোনো প্রোভাইডারের মডেল নির্বাচন করা থাকলেও এটি একইভাবে কাজ করবে;
  • স্পষ্ট --model সহ: এটি স্টেট ফাইলে ঠিক একটি এন্ট্রি—models.large—সম্পাদনা করে, তার আগে একটি কপি সংরক্ষণ করে, এবং কী ছিল ও কী হয়েছে তা লিখে দেয়। অন্যথায় ফ্ল্যাগটি কোনো প্রভাব ফেলত না। এই ধরনের লঞ্চের পর আমাদের প্রুনে Crush ফ্ল্যাগে উল্লেখিত মডেলটিতে ওপেন হয়েছে।

পরীক্ষা: কী ঘটা উচিত

প্রথমে নিশ্চিত করুন যে Crush প্রোভাইডার দেখতে পাচ্ছে:

crush models joingonka

উত্তরে তিনটি লাইন আসবে:

joingonka/MiniMaxAI/MiniMax-M2.7
joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
joingonka/zai-org/GLM-5.3-Flash

এরপর ইন্টারফেস ছাড়াই একবার চালান। প্রজেক্ট ডিরেক্টরিতে স্পষ্ট একটি বাগসহ ফাইল রেখে সেটি খুঁজে বের করতে বলুন:

crush run -q "Read calc.py and tell me in one sentence whether it has a bug."

এজেন্টকে নিজে থেকেই ফাইল পড়ার টুল কল করতে হবে এবং লাইন নম্বরসহ মূল বিষয়টি জানাতে হবে। আমাদের রানে তিনটি মডেলই বাগটি খুঁজে পেয়েছে, কাজটি করতে লেগেছে ২০-৪০ সেকেন্ড। -q ফ্ল্যাগ অপেক্ষার ইন্ডিকেটর লুকিয়ে রাখে। crush run মোডে সব টুল কল স্বয়ংক্রিয়ভাবে অনুমোদিত হয়, তাই এটি নিজের প্রজেক্টে চালান। সাধারণ ইন্টারফেসে (crush কমান্ড) সক্রিয় মডেল স্ট্যাটাস লাইনে দেখা যায়: ◇ DeepSeek V4 Flash (Gonka) via JoinGonka (Gonka)। Crush সেশন ও লগ প্রজেক্টের .crush ডিরেক্টরিতে রাখে, যা নিজস্ব .gitignore দিয়ে git থেকে লুকানো থাকে; লগ দেখাতে crush logs। গেটওয়ের দিক থেকে অনুরোধ ড্যাশবোর্ডে দেখা যায়: "ব্যবহার" সেকশনে, "মডেল অনুযায়ী" ও "কী অনুযায়ী" ভাগে।

কিছু ভুল হলে সাধারণত ত্রুটির বার্তা থেকেই কারণ বোঝা যায়:

যা দেখা যায়এর মানে কীকী করতে হবে
unauthorized: Invalid API key.গেটওয়ে কী গ্রহণ করেনিapi_key পরীক্ষা করুন: সম্পূর্ণ কী, কোনো স্পেস ছাড়া। যদি সেখানে কোনো ভেরিয়েবলের রেফারেন্স থাকে, সেটি এই শেল-এ এক্সপোর্ট করা থাকতে হবে
invalid JSON in config file …/crush.jsonফাইলে কমেন্ট, অতিরিক্ত কমা বা টাইপো আছেCrush শুধু কঠোর JSON গ্রহণ করে: ফাইলটি ঠিক করুন। ইনস্টলার কমেন্ট নিজে মুছে দেয় না, তবে সেগুলো নিয়ে সতর্ক করে, আর যে ফাইল একেবারেই পার্স হয় না তা স্পর্শ করে না এবং কারণ জানায়
failed to load shell config …/crushrc: … exit status 1crushrc-তে ত্রুটি, বেশিরভাগ ক্ষেত্রে ${…:?} ফর্মে কী-এর ভেরিয়েবল সেট করা নেইচালু করার আগে ভেরিয়েবলটি এক্সপোর্ট করুন বা যে লাইনে স্ক্রিপ্ট ব্যর্থ হচ্ছে সেটি ঠিক করুন
Failed to override models: large model "…" not found-m ফ্ল্যাগে মডেলের নামে টাইপোcrush models joingonka-র আউটপুট থেকে নামটি কপি করুন
too many requests: Model "…" is currently overloaded in the Gonka network (rate limit)পিক আওয়ারে নেটওয়ার্কে মডেলের ফ্রি ক্যাপাসিটি শেষ হয়ে গেছেCrush নিজেই বাড়তে থাকা বিরতিতে অনুরোধ পুনরাবৃত্তি করে — আমাদের রানে প্রায় এক মিনিট — তারপরই হাল ছাড়ে। ctrl+l বা -m দিয়ে অন্য মডেলে যান, নয়তো অপেক্ষা করুন; অবস্থা স্ট্যাটাস পেজে দেখা যায়
ইনস্টলার যে মডেলের কথা বলেছিল, Crush সেটিতে খোলেনিইন্টারফেস থেকে নির্বাচন স্টেট ফাইলে থাকে এবং কনফিগকে ওভাররাইড করেctrl+l দিয়ে মডেল বেছে নিন বা --model সহ ইনস্টলেশন আবার চালান
402ব্যালেন্সে টাকা শেষ"বিলিং" সেকশনে অ্যাকাউন্ট রিচার্জ করুন; কী তখনও কাজ করবে

এটির খরচ কত

এজেন্ট চ্যাটের চেয়ে ভিন্নভাবে টোকেন খরচ করে: আপনার প্রতিটি বাক্যের সাথে Crush সিস্টেম প্রম্পট এবং তার টুলগুলোর বর্ণনা যোগ করে, এবং একটি কাজ সম্পন্ন করতে সাধারণত কয়েকবার আদান-প্রদান করতে হয়। আমাদের রান-এ, মডেলের প্রতিটি রিকোয়েস্টে প্রায় ১১.৫ হাজার ইনপুট টোকেন ছিল, এবং "ফাইল পড়া ও ভুল খোঁজা" কাজে দুই-তিনটি রিকোয়েস্ট ও ২৩-৩৫ হাজার টোকেন লেগেছে, যার প্রায় পুরোটাই ইনপুট। তাই টোকেন প্রতি দাম এখানে গুরুত্বপূর্ণ।

JoinGonka Gateway এর মাধ্যমে টোকেনের দাম ইনপুটে প্রতি মিলিয়নে $0.0069 এবং আউটপুটে প্রতি মিলিয়নে $0.021 — নেটওয়ার্কের সব মডেলের জন্য দাম একই এবং এই পৃষ্ঠায় লাইভ সোর্স থেকে আপডেট হয়।

দৃশ্যপটখরচGateway এর মাধ্যমে
এককালীন কাজ: ফাইল পড়া, ভুল খোঁজা২৩-৩৫ হাজার টোকেনসেন্ট-এর ভগ্নাংশ
সক্রিয় কাজের একদিন৩-৭ মিলিয়ন টোকেনকয়েক সেন্ট
সক্রিয় ডেভেলপমেন্টের এক মাস~১৫০ মিলিয়ন টোকেনপ্রায় এক ডলার

ডানদিকের কলামের অনুমানগুলো ২০২৬ সালের সেপ্টেম্বরের দাম অনুযায়ী। তুলনার জন্য — Crush-এ মডেলের জন্য যেভাবে পেমেন্ট করা যায়:

পদ্ধতিপেমেন্ট মডেলকী সীমাবদ্ধ করে
Hyper — অফিসিয়াল Charm প্রোভাইডারসাবস্ক্রিপশন, ফ্রি টিয়ার আছেCharm এর দিকে ট্যারিফের শর্ত
সরাসরি ভেন্ডর কিভেন্ডরের রেটে টোকেন অনুযায়ীসেশনের দৈর্ঘ্যের সাথে বিল বাড়ে; দাম মডেলের ওপর নির্ভর করে
JoinGonka Gatewayটোকেন অনুযায়ী, প্রিপেইড ব্যালেন্সখরচ ড্যাশবোর্ডে দেখা যায়; কোনো সাবস্ক্রিপশন বা মাসিক কোটা নেই

Crush ইন্টারফেসের কস্ট কাউন্টার কনফিগ থেকে দামের হিসাব করে। সেখানে ইন্সটলেশনের সময়ের গেটওয়ের দাম থাকে, এবং নেটওয়ার্কে ডলারের দাম GNK রেটের সাথে পরিবর্তিত হয়, তাই কাউন্টারটি কেবল একটি নির্দেশক। সঠিক খরচ এবং ব্যালেন্স ড্যাশবোর্ডের "Usage" এবং "Billing" সেকশনে দেখা যাবে। কেন ডিফল্টভাবে large স্লটে DeepSeek V4 Flash থাকে, তা মডেলের রিভিউতে বিস্তারিত আলোচনা করা হয়েছে।

কাজের সময় যা মনে রাখতে হবে

অনুমতিসমূহ। Crush-এর ইন্টারফেসে ডিফল্টভাবে কোনো টুল কল করার আগে অনুমতি চায়। --yolo ফ্ল্যাগ একসাথে সব প্রশ্ন বন্ধ করে দেয়, আর নির্দিষ্টভাবে বিশ্বস্ত টুলগুলো কনফিগে তালিকাভুক্ত করা হয়:

# crushrc
permissions allow view ls grep

# crush.json
"permissions": { "allowed_tools": ["view", "ls", "grep"] }

মনে রাখবেন, crush run নিজেই সবকিছু অনুমোদন করে। এটি Crush-এর বৈশিষ্ট্য, মডেল প্রদানকারীর উপর নির্ভর করে না।

রিকোয়েস্ট টাইমআউট। মডেল থেকে দীর্ঘ সময় কোনো উত্তর-অংশ না এলে Crush রিকোয়েস্ট বন্ধ করে দেয়: সংস্করণ 0.96.1-এ এটি দুই মিনিট নীরবতা (ডকুমেন্টেশনে ৬০ সেকেন্ড বলা হয়েছে, কিন্তু কোডে এবং আমাদের পরীক্ষায় — দুই মিনিট)। গেটওয়ে সংযোগ ধরে রাখতে যে সার্ভিস পিং পাঠায়, সেগুলো এই কাউন্টার রিসেট করে না — আমরা লোকাল স্ট্যান্ডে যাচাই করেছি। অন্যদিকে গেটওয়ে ব্যস্ত সময়ে নেটওয়ার্ক থেকে প্রথম টোকেনের জন্য ১৫০ সেকেন্ড পর্যন্ত অপেক্ষা করে, তাই বাফার বাড়ানো উচিত:

# crushrc
option request-timeout 300

# crush.json
"options": { "request_timeout": 300 }

কমিটে স্বাক্ষর। Crush যে কমিট ও পুল রিকোয়েস্ট তৈরি করে, সেগুলো ডিফল্টভাবে Assisted-by: Crush:<model> লাইন এবং «Generated with Crush» সংযোজন পায়। এটি না চাইলে:

# crushrc
option attribution-trailer-style none
option attribution-generated-with false

# crush.json
"options": { "attribution": { "trailer_style": "none", "generated_with": false } }

মেট্রিক্স। Crush ডেভেলপারদের কাছে ছদ্মনামভিত্তিক ব্যবহারের পরিসংখ্যান পাঠায় — শুধু মেটাডেটা, প্রম্পট বা উত্তর ছাড়া। CRUSH_DISABLE_METRICS=1 বা DO_NOT_TRACK=1 ভেরিয়েবল দিয়ে বন্ধ করা যায়। গেটওয়ে নিজের দিক থেকে প্রম্পট ও উত্তরের বিষয়বস্তু সংরক্ষণ করে না — পরিসংখ্যানে শুধু খরচের সমষ্টি থাকে।

কনফিগই কোড। Crush আপনার শেলের অধিকার নিয়ে crushrc এবং crush.json উভয়ই চালায়: কী ফিল্ডে $(…) লোড হওয়ার সময় চালু হবে, আর প্রকল্পের crushrc সেই ডিরেক্টরিতে আপনি Crush খোলার সাথে সাথেই কাজ করবে। অন্যের রিপোজিটরিতে তার কনফিগ না পড়ে এজেন্ট চালাবেন না।

Crush একটি কমান্ডের মাধ্যমে JoinGonka Gateway-এর সাথে সংযুক্ত হয় — npx @joingonka/setup --tool crush — অথবা ~/.config/crush/crush.json-এ providers.joingonka ব্লকের মাধ্যমে: টাইপ openai-compat, অ্যাড্রেস https://gate.joingonka.ai/v1, কি jg-…, সঠিক context_window এবং default_max_tokens সহ মডেল। একইভাবে crushrc-এ কয়েকটি provider add এবং model add লাইন দিয়েও করা যায়। Large স্লটে DeepSeek V4 Flash, small-এ MiniMax M2.7, এবং জটিল লজিকের জন্য GLM-5.3 Flash ব্যবহার হয়। প্রধান ফাঁদ হলো স্টেট ফাইল: ctrl+l দিয়ে সিলেক্ট করা মডেলটি কনফিগের চেয়ে বেশি গুরুত্বপূর্ণ, তাই স্পষ্ট --model ফ্ল্যাগসহ ইনস্টলার সেটিও ঠিক করে দেয়। যাচাই করার জন্য crush models joingonka এবং crush run ব্যবহার করুন; রিকোয়েস্ট টাইমআউট 300 সেকেন্ডে উন্নীত করা উচিত।

আরও জানতে চান?

অন্যান্য বিভাগগুলি অন্বেষণ করুন অথবা এখনই GNK উপার্জন শুরু করুন।

কী এবং ফ্রি টোকেন নিন →