NextChat را به یک endpoint سفارشی سازگار با OpenAI اشاره دهید.

Updated 2026-07-29

NextChat host API خود را با یک متغیر محیطی BASE_URL روی deployment های سرور override می‌کند، یا یک endpoint سفارشی داخل-اپ در Settings روی کلاینت‌ها. id های کاتالوگ را از طریق CUSTOM_MODELS با پسوند @OpenAI اضافه کنید و Claude، Gemini، و DeepSeek در همان انتخاب‌گر مدل زیر یک کلید ظاهر می‌شوند.

پاسخ سریع: BASE_URL، یک کلید، و یک فهرست مدل.

روی یک deployment سرور (Vercel، Docker، یا Node خام)، سه متغیر محیطی کل کار را انجام می‌دهند. BASE_URL جایی که درخواست‌های API می‌روند را override می‌کند؛ README آن را «override openai api request base url» با پیش‌فرض https://api.openai.com توصیف می‌کند، و مقدار بدون /v1 وارد می‌شود چون NextChat خودش مسیر درخواست را اضافه می‌کند. OPENAI_API_KEY کلید gateway را حمل می‌کند. CUSTOM_MODELS انتخاب‌گر مدل را کنترل می‌کند: به‌علاوه یک مدل اضافه می‌کند، منها یکی را پنهان می‌کند، -all فهرست پیش‌فرض را پاک می‌کند، و name=displayName یک entry را تغییرنام می‌دهد. جزئیاتی که id های چند-vendor را کاری می‌کند پسوند provider است. NextChat مسیرهای کد client جدا برای چند vendor عرضه می‌کند، پس یک id بدون‌پیشوند claude که به CUSTOM_MODELS اضافه شده می‌تواند زیر مسیر Anthropic ظاهر شود، که کلید و فرمت درخواست متفاوتی می‌خواهد. چسباندن @OpenAI به id، مثل +claude-sonnet-4-6@OpenAI، مدل را به مسیر سازگار با OpenAI pin می‌کند پس درخواست به BASE_URL شما در فرمت استاندارد chat-completions می‌رود صرف‌نظر از اینکه کدام vendor مدل را train کرده.

BASE_URL=https://api.apisrouter.com        # no /v1
OPENAI_API_KEY=sk-APIsRouter-...
CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI,+deepseek-v4-pro@OpenAI
DEFAULT_MODEL=claude-sonnet-4-6

NextChat چطور endpoint خود را resolve می‌کند.

NextChat (ChatGPTNextWeb در GitHub، حدود ۸۸ هزار ستاره) یکی از پرمصرف‌ترین فرانت‌اندهای چت موجود است: یک اپ وب سبک با deployment یک‌کلیکی Vercel به‌علاوه کلاینت‌های بسته‌بندی‌شده برای iOS، macOS، Android، Windows، و Linux. محبوبیت آن دقیقاً از همان مکانیزمی می‌آید که این صفحه استفاده می‌کند، همه‌چیز یک سطح پیکربندی است، و endpoint فقط یک تنظیم دیگر است. دو تا از آن سطوح وجود دارد. deployment های سرور متغیرهای محیطی را در build و boot می‌خوانند: BASE_URL host را تصمیم می‌گیرد، OPENAI_API_KEY احراز هویت می‌کند، و CUSTOM_MODELS انتخاب‌گر را برای هر کاربر آن deployment شکل می‌دهد. کلاینت‌ها و UI وب به‌علاوه یک مسیر داخل-اپ افشا می‌کنند: Settings، Model Provider، OpenAI را انتخاب کنید، سپس فیلدهای endpoint و کلید را پر کنید و id های اضافه را در فیلد نام‌های مدل سفارشی فهرست کنید. مسیر داخل-اپ مقادیر را محلی به ازای هر دستگاه ذخیره می‌کند، که آن را سطح درست برای یک کلاینت شخصی می‌کند، در حالی که env var ها سطح درست برای یک deployment هستند که افراد دیگر استفاده می‌کنند. در هر صورت، درخواستی که از NextChat خارج می‌شود یک chat completion استاندارد در برابر endpoint شما با id مدل به‌عنوان رشته ساده است. با یک gateway چند-vendor پشت BASE_URL، همان deployment Claude را برای پاسخ‌های بلند، یک id سریع Gemini را برای سؤالات سریع، و DeepSeek یا GLM را برای ترافیک دوزبانه سرویس می‌دهد، همه از طریق یک کلید.

راه‌اندازی کامل: deployment سرور یا تنظیمات داخل-اپ.

برای یک deployment Vercel، متغیرها را در تنظیمات محیطی پروژه تنظیم کنید و redeploy کنید؛ Vercel مقادیر env را در build می‌پزد، پس ویرایش یک متغیر بدون redeploy هیچ‌چیز را تغییر نمی‌دهد. برای Docker، همان متغیرها را با فلگ‌های -e یا یک فایل env پاس دهید. متغیر CODE ارزش تنظیم روی هر deployment عمومی را دارد، دسترسی را با یک رمز گیت می‌زند پس غریبه‌ها نمی‌توانند کلید شما را خرج کنند. مسیر داخل-اپ به هیچ deployment ای نیاز ندارد. در Settings، provider OpenAI را انتخاب کنید، endpoint را با https://api.apisrouter.com جایگزین کنید، کلید را بچسبانید، و id ها را در فیلد نام‌های مدل سفارشی با همان syntax متغیر env اضافه کنید. این روشی است که کلاینت‌های desktop و موبایل با یک gateway کار می‌کنند، و همچنین سریع‌ترین راه برای تست مقادیر قبل از commit به یک deployment سرور است. DEFAULT_MODEL انتخاب می‌کند چت‌های جدید روی چه چیزی شروع می‌شوند، که روی یک deployment مشترک بیشتر از آنچه به‌نظر می‌رسد اهمیت دارد: بیشتر کاربران هرگز مدل را تغییر نمی‌دهند، پس id پیش‌فرض جایی است که بیشتر هزینه فرود می‌آید. آن را عمداً روی مدلی تنظیم کنید که می‌خواهید ترافیک اتفاقی را حمل کند.

docker run -d -p 3000:3000 \
  -e BASE_URL=https://api.apisrouter.com \
  -e OPENAI_API_KEY=$APISROUTER_API_KEY \
  -e CUSTOM_MODELS="-all,+claude-sonnet-4-6@OpenAI,+claude-haiku-4-5-20251001@OpenAI,+gemini-3.5-flash@OpenAI" \
  -e DEFAULT_MODEL=claude-haiku-4-5-20251001 \
  -e CODE=your-access-password \
  yidadaa/chatgpt-next-web

انتخاب مدل‌ها برای انتخاب‌گر.

چون کل انتخاب‌گر از طریق یک کلید صورت‌حساب می‌شود، حلقه تنظیم مشاهده‌ای است: یک هفته اجرا کنید، usage هر-مدل را در کنسول بخوانید، و CUSTOM_MODELS را حول آنچه افراد واقعاً کلیک کردند بازسازی کنید نه آنچه پیش‌بینی کردید.

  • فهرست را با -all شروع کنید. انتخاب‌گر پیش‌فرض یک منوی طولانی فقط-OpenAI است؛ پاک‌کردن آن و اضافه‌کردن چهار یا پنج id عمدی به کاربران انتخاب‌گری می‌دهد که هر انتخاب آن چیزی است که قیمت‌گذاری کرده‌اید.
  • مدل پیش‌فرض deployment را حمل می‌کند. claude-haiku-4-5-20251001 یا gemini-3.5-flash به‌عنوان DEFAULT_MODEL اکثریت اتفاقی نوبت‌ها را سریع و ارزان نگه می‌دارد، با id های قوی‌تر یک کلیک دورتر.
  • کار بلند-فرم یک اسلات frontier کسب می‌کند. claude-sonnet-4-6 و gpt-5.5 انتخاب‌هایی هستند که کاربران وقتی یک پیش‌نویس یا یک تحلیل اهمیت دارد به آن‌ها می‌رسند.
  • deployment های دوزبانه باید deepseek-v4-pro یا glm-5.2 را شامل شوند؛ NextChat یک پایگاه نصب چینی‌زبان عظیم دارد و آن id ها به‌طور بومی با آن ترافیک جور می‌شوند.
  • تغییرنام‌ها مستندسازی رایگان‌اند: entry هایی مثل claude-sonnet-4-6=Sonnet (writing) انتخاب‌گر را برای کاربران غیرفنی خودتوضیح‌دهنده می‌کنند.

پرداخت بر اساس مصرف · پایین‌تر از قیمت رسمی

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

مدلقیمت رسمیقیمت ما
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
GLM-5.2$1.14 / $4.00 per M$1.10 / $4.00 per M

حالت‌های شکست مختص NextChat.

اشتباه /v1 برخلاف جهت بیشتر ابزارها اجرا می‌شود. NextChat خودش مسیر درخواست را به BASE_URL اضافه می‌کند، پس مقدار بدون /v1 قرار می‌گیرد؛ چسباندن https://api.apisrouter.com/v1 مسیرهای دوتایی تولید می‌کند که 404 می‌دهند. ابزارهایی مثل LibreChat انتظار دارند /v1 شامل باشد، که دقیقاً به همین دلیل مردم عادت اشتباه را در هر دو جهت حمل می‌کنند. یک id Claude که درباره کلید یا header ها خطا می‌دهد پسوند @OpenAI گمشده است. بدون آن، NextChat می‌تواند id را از طریق مسیر بومی Anthropic مسیردهی کند، که هرگز BASE_URL شما برای gateway را مشورت نمی‌کند و احراز هویت فرمت-vendor می‌خواهد. هر id gateway را با @OpenAI pin کنید و همه درخواست‌ها مسیر سازگار را می‌گیرند. ویرایش‌های env که هیچ‌چیز تغییر نمی‌دهند یک مشکل redeploy هستند. روی Vercel متغیرها در build خوانده می‌شوند؛ روی Docker کانتینر نیاز به بازسازی دارد. تنظیمات داخل-اپ، برخلاف آن، فوراً اعمال می‌شوند اما فقط روی آن دستگاه، که نیمه دیگر همان سردرگمی است. CODE و OPENAI_API_KEY به‌طور شگفت‌آوری اغلب جابه‌جا می‌شوند. CODE رمز دسترسی است که کاربران در UI تایپ می‌کنند؛ کلید همان چیزی است که سرور خرج می‌کند. اگر کاربران قبل از هر چتی صفحه غیرمجاز گزارش می‌کنند، آن CODE است؛ اگر چت‌ها در برابر endpoint شکست می‌خورند، آن کلید است.

چه کسانی NextChat را از طریق یک gateway مسیردهی می‌کنند.

  • افرادی که یک deployment شخصی روی Vercel اجرا می‌کنند و یک کلید اندازه‌گیری‌شده پشتش می‌خواهند به‌جای یک اشتراک به ازای هر vendor.
  • تیم‌های کوچکی که یک instance NextChat را به اشتراک می‌گذارند، از CODE برای کنترل دسترسی و یک کلید gateway استفاده می‌کنند تا usage log دوبرابر گزارش هزینه شود.
  • کاربران کلاینت desktop و موبایل که endpoint داخل-اپ را به یک gateway اشاره می‌دهند تا Claude، Gemini، و DeepSeek را از یک انتخاب‌گر روی هر دستگاه در دسترس داشته باشند.
  • کاربران دوزبانه که id های GLM و DeepSeek را با Claude و GPT در یک deployment ترکیب می‌کنند، که silo های provider بومی آن را دشوار می‌کنند.
  • توسعه‌دهندگان بدون دسترسی به صورت‌حساب یک vendor خاص. دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی ثبت‌نام هر-provider را حذف می‌کند.

endpoint را تأیید کنید و اولین چت را عیب‌یابی کنید.

قبل از deploy، endpoint را اثبات کنید: مدل‌ها را با کلید فهرست کنید و تأیید کنید هر id ای که قصد دارید در CUSTOM_MODELS بگذارید دقیقاً همان‌طور که نوشته شده ظاهر می‌شود. id ها به‌عنوان رشته فوروارد می‌شوند، پس خروجی /v1/models نگارش معتبر است. سپس deploy کنید و یک پیام به ازای هر مدل در انتخاب‌گر بفرستید. یک 404 روی همه چیز اشتباه /v1-در-BASE_URL است. یک 401 کلید است، یا اشتباه یا در محیطی که build واقعاً استفاده کرده حاضر نیست. یک خطا فقط روی id های Claude پسوند گمشده @OpenAI است. انتخاب‌گری که مدل‌هایی نشان می‌دهد که هرگز اضافه نکرده‌اید یعنی CUSTOM_MODELS پیشوند -all خود را گم کرده یا متغیر به build نرسیده. وقتی چت‌ها جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. برای یک deployment با بیش از یک کاربر، آن نما به سؤالی پاسخ می‌دهد که هر ادمین NextChat سرانجام می‌پرسد، کدام مدل بی‌صدا موجودی را می‌خورد، با داده به‌جای حدس.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

پرسش‌های پرتکرار

آیا BASE_URL در NextChat باید شامل /v1 باشد؟

خیر. NextChat خودش مسیر درخواست را اضافه می‌کند، پس BASE_URL=https://api.apisrouter.com را بدون /v1 تنظیم کنید. شامل‌کردن آن مسیرهای دوتایی تولید می‌کند که 404 می‌دهند. این برخلاف قرارداد ابزارهایی مثل LibreChat است، که انتظار /v1 در base URL را دارند.

چطور مدل‌های Claude یا Gemini را از طریق یک endpoint به NextChat اضافه کنم؟

آن‌ها را در CUSTOM_MODELS با پسوند @OpenAI اضافه کنید، مثلاً +claude-sonnet-4-6@OpenAI. پسوند id را به مسیر درخواست سازگار با OpenAI pin می‌کند پس به BASE_URL شما می‌رود، به‌جای مسیرهای کلاینت بومی Anthropic یا Google در NextChat.

تفاوت بین متغیرهای env و تنظیمات داخل-اپ چیست؟

متغیرهای محیطی یک deployment سرور را برای هر کاربر پیکربندی می‌کنند و برای تغییر نیاز به redeploy دارند. endpoint سفارشی داخل-اپ در Settings مقادیر را محلی به ازای هر دستگاه ذخیره می‌کند و فوراً اعمال می‌شود، که برای کلاینت‌های شخصی desktop و موبایل مناسب است.

چطور فهرست پیش‌فرض مدل OpenAI را از انتخاب‌گر حذف کنم؟

CUSTOM_MODELS را با -all شروع کنید، سپس id ها را صریح اضافه کنید: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. کاربران آنگاه فقط مدل‌هایی را می‌بینند که عمداً فهرست و قیمت‌گذاری کرده‌اید.

متغیر CODE چه کاری انجام می‌دهد؟

یک یا چند رمز دسترسی برای deployment تنظیم می‌کند. بازدیدکنندگان باید قبل از چت یک کد وارد کنند، که یک URL عمومی Vercel را از خرج‌کردن کلید شما باز می‌دارد. بی‌ربط به خود کلید API است.

چرا تغییر یک متغیر محیطی هیچ اثری نداشت؟

NextChat مقادیر env را در build یا شروع کانتینر می‌خواند. روی Vercel، متغیر را ویرایش و redeploy کنید؛ روی Docker، کانتینر را بازسازی کنید. فقط تنظیمات داخل-اپ بدون restart اعمال می‌شوند، و آن‌ها به ازای هر دستگاه زندگی می‌کنند.