כוונו את NextChat אל endpoint תואם OpenAI מותאם אישית.
Updated 2026-07-29
NextChat דורס את host ה-API שלו עם משתנה סביבה אחד BASE_URL בפריסות שרת, או endpoint מותאם אישית בתוך האפליקציה ב-Settings בצד הלקוחות. הוסיפו ids מהקטלוג דרך CUSTOM_MODELS עם הסיומת @OpenAI ו-Claude, Gemini, ו-DeepSeek מופיעים באותו בורר מודלים תחת מפתח אחד.
תשובה מהירה: BASE_URL, מפתח אחד, ורשימת מודלים.
בפריסת שרת (Vercel, Docker, או Node עירום), שלושה משתני סביבה עושים את כל העבודה. BASE_URL דורס לאן בקשות API הולכות; ה-README מתאר אותו כ-"override openai api request base url" עם ברירת מחדל https://api.openai.com, והערך מוזן בלי /v1 מכיוון ש-NextChat מוסיף את נתיב הבקשה בעצמו. OPENAI_API_KEY נושא את מפתח ה-gateway. CUSTOM_MODELS שולט בבורר המודלים: plus מוסיף מודל, minus מסתיר אחד, -all מנקה את רשימת ברירת המחדל, ו-name=displayName משנה שם רשומה. הפרט שגורם ל-ids רב-ספקים לעבוד הוא סיומת הספק. NextChat מגיע עם נתיבי קוד לקוח נפרדים עבור כמה ספקים, אז id של claude חשוף שנוסף ל-CUSTOM_MODELS יכול לעלות תחת נתיב Anthropic, שמצפה למפתח ופורמט בקשה שונים. הוספת @OpenAI ל-id, כמו ב-+claude-sonnet-4-6@OpenAI, מצמידה את המודל לנתיב התואם-OpenAI כך שהבקשה הולכת ל-BASE_URL שלכם בפורמט chat-completions סטנדרטי ללא קשר לאיזה ספק אימן את המודל.
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 שלו.
NextChat (ChatGPTNextWeb ב-GitHub, כ-88K כוכבים) היא אחת מחזיתות הצ'אט הפרוסות ביותר בקיום: אפליקציית web קלה עם פריסת Vercel בלחיצה אחת בתוספת לקוחות ארוזים ל-iOS, macOS, Android, Windows, ו-Linux. הפופולריות שלה מגיעה בדיוק מהמנגנון שהעמוד הזה משתמש בו, הכל הוא משטח הגדרה, וה-endpoint הוא רק עוד הגדרה. יש שני משטחים כאלה. פריסות שרת קוראות משתני סביבה בזמן build והפעלה: BASE_URL מחליט על ה-host, OPENAI_API_KEY מאמת, ו-CUSTOM_MODELS מעצב את הבורר לכל משתמש בפריסה הזו. הלקוחות וה-web UI חושפים בנוסף נתיב בתוך האפליקציה: Settings, Model Provider, בחרו OpenAI, ואז מלאו את שדות ה-endpoint והמפתח ורשמו ids נוספים בשדה שמות המודלים המותאמים אישית. הנתיב בתוך האפליקציה שומר ערכים מקומית לכל מכשיר, מה שהופך אותו לנתיב הנכון עבור לקוח אישי, בעוד משתני סביבה הם הנתיב הנכון עבור פריסה שאנשים אחרים משתמשים בה. בכל מקרה, הבקשה שיוצאת מ-NextChat היא chat completion סטנדרטי מול ה-endpoint שלכם עם ה-model id כמחרוזת פשוטה. עם gateway רב-ספקים מאחורי BASE_URL, אותה פריסה משרתת את Claude לתשובות ארוכות, id מהיר של Gemini לשאלות מהירות, ו-DeepSeek או GLM לתעבורה דו-לשונית, כל זאת דרך מפתח אחד.
הגדרה מלאה: פריסת שרת או הגדרות בתוך האפליקציה.
לפריסת Vercel, הגדירו את המשתנים בהגדרות הסביבה של הפרויקט ופרסו מחדש; Vercel אופה ערכי סביבה בזמן build, אז עריכת משתנה בלי פריסה מחדש לא משנה כלום. עבור Docker, העבירו את אותם משתנים עם דגלי -e או קובץ env. משתנה ה-CODE שווה הגדרה על כל פריסה ציבורית, הוא חוסם גישה עם סיסמה כך שזרים לא יוכלו להוציא את המפתח שלכם. הנתיב בתוך האפליקציה לא צריך שום פריסה בכלל. ב-Settings, בחרו את ספק OpenAI, החליפו את ה-endpoint ב-https://api.apisrouter.com, הדביקו את המפתח, והוסיפו ids בשדה שמות המודלים המותאמים אישית באותה תחביר כמו משתנה הסביבה. כך הלקוחות ל-desktop ולנייד עובדים עם gateway, וזו גם הדרך המהירה ביותר לבדוק ערכים לפני שמתחייבים אליהם בפריסת שרת. DEFAULT_MODEL בוחר על מה שיחות חדשות מתחילות, וזה משנה יותר ממה שזה נשמע על פריסה משותפת: רוב המשתמשים אף פעם לא משנים את המודל, כך ש-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בחירת מודלים לבורר.
מכיוון שכל הבורר מחויב דרך מפתח אחד, לולאת הכיוונון היא תצפיתית: הריצו שבוע, קראו את השימוש לפי מודל בקונסולה, ועצבו מחדש את CUSTOM_MODELS סביב מה שאנשים באמת לחצו במקום מה שחזיתם.
- התחילו את הרשימה עם -all. הבורר המקורי הוא תפריט ארוך אך ורק של OpenAI; ניקוי אותו והוספת ארבעה או חמישה ids מכוונים נותנים למשתמשים בורר שבו כל בחירה היא אחת שתמחרתם.
- מודל ברירת המחדל נושא את הפריסה. claude-haiku-4-5-20251001 או gemini-3.5-flash כ-DEFAULT_MODEL שומר על רוב התורות המזדמנות מהירות וזולות, עם ids חזקים יותר במרחק קליק אחד.
- עבודה ארוכת-טופס מרוויחה סלוט מתקדם. claude-sonnet-4-6 ו-gpt-5.5 הם הבחירות שמשתמשים פונים אליהן כשטיוטה או ניתוח חשובים.
- פריסות דו-לשוניות צריכות לכלול deepseek-v4-pro או glm-5.2; ל-NextChat יש בסיס התקנה דובר-סינית עצום ו-ids האלה מתאימים לתעבורה הזו באופן טבעי.
- שינויי שם הם תיעוד חינמי: רשומות בסגנון 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 ששוגה בשגיאה על מפתחות או כותרות היא הסיומת @OpenAI החסרה. בלעדיה, NextChat יכול לנתב את ה-id דרך נתיב Anthropic הטבעי שלו, שאף פעם לא מתייעץ עם BASE_URL עבור ה-gateway שלכם ומצפה לאימות בפורמט הספק. הצמידו כל id של gateway עם @OpenAI וכל הבקשות ילכו בנתיב התואם. עריכות env שלא משנות כלום הן בעיית פריסה-מחדש. ב-Vercel המשתנים נקראים בזמן build; ב-Docker ה-container צריך להיווצר מחדש. ההגדרות בתוך האפליקציה, לעומת זאת, חלות מיד אבל רק על המכשיר הזה, שזה החצי השני של אותו בלבול. CODE ו-OPENAI_API_KEY מתחלפים באופן מפתיע לעיתים קרובות. CODE הוא סיסמת הגישה שמשתמשים מקלידים ב-UI; המפתח הוא מה שהשרת מוציא. אם משתמשים מדווחים על עמוד unauthorized לפני כל צ'אט, זה CODE; אם צ'אטים נכשלים מול ה-endpoint, זה המפתח.
מי מנתב את NextChat דרך gateway.
- אנשים שמריצים פריסה אישית ב-Vercel ורוצים מפתח נמדד אחד מאחוריה במקום מנוי לכל ספק.
- צוותים קטנים שחולקים מופע NextChat, משתמשים ב-CODE לבקרת גישה ומפתח gateway אחד כך שלוג השימוש כופל כדוח עלות.
- משתמשי desktop ונייד שמכוונים את ה-endpoint בתוך האפליקציה ל-gateway כדי להגיע ל-Claude, Gemini, ו-DeepSeek מבורר אחד בכל מכשיר.
- משתמשים דו-לשוניים שמערבבים ids של GLM ו-DeepSeek עם Claude ו-GPT בפריסה אחת, מה ששלוליות ספק טבעיות מקשות.
- מפתחים ללא גישה לחיוב של ספק נתון. גישה מבוססת-הטענה בלי דרישת כרטיס מסירה את התלות בהרשמה לכל ספק.
אמתו את ה-endpoint ובצעו דיבוג לצ'אט הראשון.
הוכיחו את ה-endpoint לפני הפריסה: רשמו מודלים עם המפתח ואשרו שכל id שאתם מתכננים לשים ב-CUSTOM_MODELS מופיע, מאוית בדיוק. ה-ids מועברים כמחרוזות, אז פלט ה-/v1/models הוא האיות הסמכותי. לאחר מכן פרסו ושלחו הודעה אחת לכל מודל בבורר. 404 בכל מקום הוא הטעות של /v1 ב-BASE_URL. 401 הוא המפתח, שגוי או לא נוכח בסביבה שה-build באמת השתמש בה. שגיאה רק על ids של Claude היא הסיומת @OpenAI החסרה. בורר שמציג מודלים שמעולם לא הוספתם אומר ש-CUSTOM_MODELS איבד את הקידומת -all שלו או שהמשתנה לא הגיע ל-build. ברגע שהצ'אטים זורמים, קונסולת APIsRouter מציגה מודל לכל בקשה, ספירות טוקן, והוצאה. עבור פריסה עם יותר ממשתמש אחד, התצוגה הזו עונה על השאלה שכל מנהל 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 ל-NextChat דרך endpoint אחד?
הוסיפו אותם ב-CUSTOM_MODELS עם הסיומת @OpenAI, לדוגמה +claude-sonnet-4-6@OpenAI. הסיומת מצמידה את ה-id לנתיב הבקשה התואם-OpenAI כך שהוא הולך ל-BASE_URL שלכם, במקום לנתיבי הלקוח הטבעיים של NextChat ל-Anthropic או Google.
מה ההבדל בין משתני הסביבה להגדרות בתוך האפליקציה?
משתני סביבה מגדירים פריסת שרת לכל משתמש ודורשים פריסה מחדש כדי לשנות. ה-endpoint המותאם אישית בתוך האפליקציה ב-Settings שומר ערכים מקומית לכל מכשיר וחל מיד, מה שמתאים ללקוחות desktop ונייד אישיים.
איך מסירים את רשימת מודלי ה-OpenAI ברירת המחדל מהבורר?
התחילו את CUSTOM_MODELS עם -all, ואז הוסיפו ids במפורש: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. משתמשים אז רואים רק מודלים שרשמתם ותמחרתם במכוון.
מה משתנה ה-CODE עושה?
הוא מגדיר סיסמת גישה אחת או יותר לפריסה. מבקרים חייבים להזין קוד לפני שהם מצ'וטטים, מה ששומר על כתובת Vercel ציבורית מלהוציא את המפתח שלכם. הוא לא קשור למפתח ה-API עצמו.
למה שינוי משתנה סביבה לא השפיע?
NextChat קורא ערכי env בזמן build או הפעלת container. ב-Vercel, ערכו את המשתנה ופרסו מחדש; ב-Docker, צרו מחדש את ה-container. רק ההגדרות בתוך האפליקציה חלות בלי הפעלה מחדש, ואלה חיות לכל מכשיר.