Cursor با یوتاپن — Override OpenAI Base URL و محدودیت‌هایش

کلید یوتاپن را در Cursor بگذار و Base URL را override کن؛ چه چیزی کار می‌کند، چرا Tab و subagent کار نمی‌کنند و چه وقت حالت Agent خطا می‌دهد.

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

Cursor اجازه می‌دهد کلید OpenAI خودت را بدهی و آدرس پایه را عوض کنی، و با همین مسیر به یوتاپن می‌رسی. ولی از میان ابزارهای این بخش، Cursor کم‌ثبات‌ترین پشتیبانی را از سرویس سفارشی دارد: مستندات رسمی دیگر مراحل override را توضیح نمی‌دهند و بیشتر جزئیات از پاسخ‌های تیم Cursor در انجمن رسمی‌شان می‌آید. قبل از این‌که وقت بگذاری، بخش محدودیت‌ها را بخوان.

تنظیم

۱. Cursor Settings ← Models. ۲. کلید sk-up-… خودت را در فیلد کلید OpenAI بگذار (داشبورد ← کلیدها). ۳. گزینهٔ Override OpenAI Base URL را روشن کن و https://api.uttapen.ir/v1 بگذار. ۴. در بخش مدل‌های سفارشی (Custom Models) شناسهٔ کامل مدل را اضافه کن، مثلاً anthropic/claude-sonnet-5 یا openai/gpt-5. شناسه‌های دارای / پذیرفته می‌شوند. ۵. مدل‌های داخلی Cursor را در همان صفحه خاموش کن تا درخواستی اشتباهی به آن‌ها نرود.

نام دقیق این گزینه‌ها بین نسخه‌های Cursor عوض شده؛ اگر عنوانی که نوشتیم را ندیدی، در همان صفحهٔ Models دنبال فیلد base URL زیر کلید OpenAI بگرد.

محدودیت‌هایی که باید بدانی

این‌ها محدودیت خود Cursor است، نه یوتاپن:

  • Tab (تکمیل خودکار) با کلید تو کار نمی‌کند و همیشه از مدل‌های خود Cursor استفاده می‌کند. کلید سفارشی فقط برای چت و Agent است.
  • همهٔ درخواست‌ها از سرورهای Cursor عبور می‌کنند، نه مستقیم از لپ‌تاپ تو. یعنی کلید یوتاپن از سرویس آن‌ها رد می‌شود؛ اگر با این موضوع راحت نیستی، ابزارهای دیگر این فهرست همگی مستقیم به ما وصل می‌شوند.
  • وقتی override روشن است، درخواست‌های مدل‌های داخلی خانوادهٔ OpenAI هم به آدرس تو می‌روند. اگر رفتار عجیبی دیدی، یک بار خاموش و روشنش کن.
  • گزارش‌های کاربران و پاسخ‌های تیم Cursor می‌گوید در حالت Agent گاهی بدنهٔ درخواست به شکل Responses API ساخته می‌شود؛ چنین درخواستی با 400 برمی‌گردد چون فیلد messages ندارد. حالت Ask معمولاً سالم است. ما نمی‌توانیم تضمین کنیم این مورد در نسخهٔ تو رفع شده باشد.

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

Cursor جایی برای تعیین سقف توکن خروجی ندارد و مستند نکرده چه max_tokens می‌فرستد، پس مهار هزینه باید از سمت ما باشد:

  • برای Cursor یک کلید جداگانه با سقف ماهانه بساز (کلیدها). اگر ابزار بیش از انتظار خرج کرد، همان‌جا متوقف می‌شود.
  • در همان کلید فهرست مدل‌های مجاز (allowed_models) را محدود کن تا درخواست‌های ناخواسته به مدل گران نروند.
  • مصرف را در داشبورد ← مصرف با تفکیک کلید دنبال کن.

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

عیب‌یابی

خطاعلت محتملراه‌حل
401 invalid_api_keyکلید یوتاپن جای کلید OpenAI ننشسته یا لغو شدهکلید را دوباره در Settings ← Models بگذار
404 model_not_foundشناسهٔ مدل سفارشی اشتباه استشناسه را از /models کپی کن (پیام 404 در uttapen.suggestions نزدیک‌ترین شناسه‌های محتمل را هم پیشنهاد می‌دهد)
400 invalid_request بدون فیلد messagesبدنه به شکل Responses ساخته شده (حالت Agent)از حالت Ask استفاده کن یا ابزار دیگری از این فهرست
402 insufficient_balanceموجودی کمتر از رزرو لازمشارژ کن و سقف ماهانهٔ کلید را بررسی کن
429سقف نرخ کلید (محدودیت نرخ)rate_limit_rpm را بالا ببر

اگر می‌خواهی یک agent کدنویسی با کنترل کامل روی مدل و سقف خروجی داشته باشی، opencode، Cline یا Kilo Code گزینه‌های مطمئن‌تری‌اند. فهرست کامل در یکپارچه‌سازی.

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

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