Crush با یوتاپن — provider از نوع openai-compat در crushrc

افزودن یوتاپن به Crush با دستور provider add از نوع openai-compat، ثبت مدل‌ها با context-window و default-max-tokens و انتخاب مدل small ارزان.

به‌روزرسانی: ۳۱ شهریور ۱۴۰۵

Crush ایجنت کدنویسی ترمینالی Charm است. پیکربندی‌اش از نسخه‌های اخیر یک فایل Bash به نام crushrc است که هنگام اجرا خوانده می‌شود و دستورهای مخصوص Crush دارد (فرمت قدیمی crush.json هنوز خوانده می‌شود ولی منسوخ اعلام شده). این صفحه با مستندات مخزن رسمی در شهریور ۱۴۰۵ بررسی شده است.

فایل crushrc

~/.config/crush/crushrc برای همهٔ پروژه‌ها، یا .crushrc در ریشهٔ پروژه:

provider add uttapen \
  --type openai-compat \
  --base-url "https://api.uttapen.ir/v1" \
  --api-key "$UTTAPEN_API_KEY"

model add uttapen/anthropic/claude-sonnet-5 \
  --name "Claude Sonnet 5" \
  --context-window 200000 \
  --default-max-tokens 8192

model add uttapen/openai/gpt-5-nano \
  --name "GPT-5 nano" \
  --context-window 400000 \
  --default-max-tokens 1024

model large uttapen/anthropic/claude-sonnet-5
model small uttapen/openai/gpt-5-nano

بعد UTTAPEN_API_KEY را در محیط بگذار (یا در همان فایل از یک مدیر رمز بخوان، چون Bash است):

export UTTAPEN_API_KEY="sk-up-..."

چهار نکته‌ای که هزینه‌ات را تعیین می‌کند

  • --type openai-compat را حتماً بنویس. نوع openai برای هر شناسه‌ای که الگوی gpt-4 تا gpt-9 داشته باشد سراغ Responses API می‌رود؛ یوتاپن آن مسیر را ندارد و جواب 404 است.
  • مدل‌ها را دستی ثبت کن. اگر فهرست مدل خالی بماند، Crush از GET /v1/models می‌خواند و چون از آن‌جا فقط شناسه را برمی‌دارد، context_window و default_max_tokens صفر می‌مانند: هیچ سقف خروجی فرستاده نمی‌شود، خلاصه‌سازی خودکار خاموش می‌شود و بیش از ۴۰۰ مدل در انتخابگر می‌ریزد.
  • --default-max-tokens همان سقفی است که ما رزرو می‌کنیم (قیمت‌گذاری). 8192 برای کار روی کد کافی است؛ اگر جایی به سقف خوردی، با model large … --max-tokens 16000 موقتاً بالاترش ببر.
  • model small را بگذار. عنوان جلسه با مدل small و سقف بسیار کوچک ساخته می‌شود؛ اگر تعیینش نکنی، Crush اولین مدل provider را برای هر دو نقش برمی‌دارد.

شناسه‌ها را از فهرست مدل‌ها بردار؛ / داخل شناسه مشکلی ندارد چون Crush فقط اولین / را جداکنندهٔ provider می‌گیرد. برای کار سبک‌تر qwen/qwen3-coder و deepseek/deepseek-v3.2، و برای عنوان و کارهای ریز openai/gpt-5-nano یا google/gemini-2.5-flash-lite.

بررسی اتصال

Crush را در یک پروژه باز کن، مدل را از فهرست انتخاب کن و یک سؤال کوتاه بپرس؛ بعد دو درخواست (عنوان و پیام) را در داشبورد ← مصرف ببین.

عیب‌یابی

خطاعلت در Crushراه‌حل
401 invalid_api_keyUTTAPEN_API_KEY در محیطی که Crush اجرا شده خالی استمتغیر را export کن و دوباره اجرا کن
404 model_not_foundشناسهٔ مدل در model add اشتباه استاز /models کپی کن (پیام 404 در uttapen.suggestions نزدیک‌ترین شناسه‌های محتمل را هم پیشنهاد می‌دهد)
404 not_foundprovider با --type openai ساخته شدهبا --type openai-compat دوباره بسازش
402 insufficient_balanceموجودی کمتر از رزرو، یا رزرو بزرگ چون سقف تعیین نشده--default-max-tokens را بگذار و شارژ کن
429سقف نرخ یا سقف ماهانهٔ کلید (محدودیت نرخ)صبر یا افزایش سقف
پاسخ ناتماممدل به سقف خروجی خورده است--max-tokens مدل large را بالاتر بگذار

وقتی موجودی قابل‌استفاده کل سقف خروجی را پوشش ندهد، یوتاپن سقف را به اندازهٔ موجودی کم می‌کند (کف ۱٬۰۲۴ توکن) و عدد نهایی را در هدر X-Uttapen-Max-Tokens برمی‌گرداند؛ 402 فقط برای وقتی است که همان کف هم جا نشود.

ابزارهای دیگر در یکپارچه‌سازی و کدهای خطا در خطاها.

هنوز کلید API نداری؟

با شماره موبایل ثبت‌نام کن، کیف پول را از ۱۰۰٬۰۰۰ تومان شارژ کن و کلید بساز. مدل‌های رایگان بدون شارژ هم کار می‌کنند — تا ۵۰ درخواست در روز. ساخت کلید API ←