Qwen Code با یوتاپن — modelProviders در settings.json

تنظیم Qwen Code برای یوتاپن: بلوک modelProviders در settings.json با baseUrl و envKey، سقف max_tokens و اندازهٔ context، یا راه سریع با متغیر محیطی.

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

Qwen Code یک ایجنت کدنویسی ترمینالی است که provider نوع openai آن به‌صورت پیش‌فرض با Chat Completions کار می‌کند — دقیقاً همان چیزی که یوتاپن سرو می‌کند. این صفحه با مستندات رسمی مخزن در شهریور ۱۴۰۵ بررسی شده است.

راه سریع

export OPENAI_BASE_URL="https://api.uttapen.ir/v1"
export OPENAI_API_KEY="sk-up-..."
export OPENAI_MODEL="anthropic/claude-sonnet-5"
qwen

برای کار پایدارتر (چند مدل، سقف توکن، انتخاب با دستور /model) بلوک modelProviders را در ~/.qwen/settings.json بنویس.

settings.json

{
  "modelProviders": {
    "openai": [
      {
        "id": "anthropic/claude-sonnet-5",
        "name": "Claude Sonnet 5",
        "envKey": "UTTAPEN_API_KEY",
        "baseUrl": "https://api.uttapen.ir/v1",
        "generationConfig": {
          "contextWindowSize": 200000,
          "samplingParams": { "max_tokens": 8192 }
        }
      },
      {
        "id": "qwen/qwen3-coder",
        "name": "Qwen3 Coder",
        "envKey": "UTTAPEN_API_KEY",
        "baseUrl": "https://api.uttapen.ir/v1",
        "generationConfig": {
          "contextWindowSize": 262144,
          "samplingParams": { "max_tokens": 8192 }
        }
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "anthropic/claude-sonnet-5" }
}
  • id همان شناسهٔ مدل در یوتاپن است؛ شناسه‌های دارای / پذیرفته‌اند. آن‌ها را از فهرست مدل‌ها بردار.
  • envKey نام متغیر محیطی است، نه خود کلید. کلید sk-up-… را در همان متغیر export کن یا در فایل .env پروژه بگذار و .env را در .gitignore نگه دار.
  • samplingParams.max_tokens سقف خروجی هر درخواست است و همان عددی است که ما برایش رزرو می‌کنیم (قیمت‌گذاری). 8192 برای کار روی کد منطقی است؛ عدد بزرگ فقط موجودی‌ات را قفل می‌کند.
  • contextWindowSize را روی context واقعی مدل یا کمتر بگذار.
  • wireApi را ننویس؛ نبودنش یعنی Chat Completions. اگر wireApi: "responses" بگذاری، درخواست به مسیری می‌رود که یوتاپن ندارد و 404 می‌گیری.

بعد از این، با /model داخل خود ابزار بین مدل‌ها جابه‌جا می‌شوی.

هزینه را کنترل کن

عیب‌یابی

خطاعلت در Qwen Codeراه‌حل
401 invalid_api_keyمتغیری که در envKey نوشته‌ای خالی استهمان متغیر را export کن یا در .env بگذار
404 model_not_foundid با شناسهٔ واقعی فرق دارداز /models کپی کن (پیام 404 در uttapen.suggestions نزدیک‌ترین شناسه‌های محتمل را هم پیشنهاد می‌دهد)
404 not_foundwireApi روی responses استآن را بردار
مدل در فهرست نیستid provider غیر از openai است و بدون providerProtocol ماندهورودی را زیر modelProviders.openai بگذار
402 insufficient_balanceموجودی کمتر از رزرو لازمشارژ کن یا max_tokens را کم کن
429سقف نرخ یا سقف ماهانهٔ کلید (محدودیت نرخ)صبر یا افزایش سقف

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

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

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

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