הריצו את Chatwoot Captain על endpoint תואם OpenAI מותאם אישית.
Updated 2026-07-30
Chatwoot ה-self-hosted מגדיר את Captain דרך app configs של Super Admin: CAPTAIN_OPEN_AI_ENDPOINT, CAPTAIN_OPEN_AI_API_KEY, ו-CAPTAIN_OPEN_AI_MODEL. הפנו את ה-endpoint אל https://api.apisrouter.com (Chatwoot מוסיף /v1 בעצמו) ובינת התמיכה שלכם עונה על כל מודל קטלוג דרך מפתח אחד.
תשובה מהירה: שלוש הגדרות Captain ב-Super Admin.
ב-Chatwoot ה-self-hosted הנוכחי, הגדרות ה-LLM של Captain הן installation configs, לא משתני .env; ה-.env.example המצורף אומר זאת במפורש ומפנה אתכם אל Super Admin, App Configs, Captain. שלושה ערכים חשובים: CAPTAIN_OPEN_AI_API_KEY לוקח את מפתח ה-gateway, CAPTAIN_OPEN_AI_MODEL לוקח את ה-id של המודל, ו-CAPTAIN_OPEN_AI_ENDPOINT לוקח את host ה-endpoint. לערך ה-endpoint יש קצה חד אחד: תנו אותו בלי הסיומת /v1. ה-initializer של Chatwoot בונה את בסיס ה-API בעצמו על ידי גזירת קו נטוי בסוף והוספת /v1, ותיאור ההגדרה עצמו מציג את ברירת המחדל כ-https://api.openai.com/ בדיוק בצורה הזו. עבור APIsRouter, הזינו https://api.apisrouter.com ותנו ל-Chatwoot לגזור https://api.apisrouter.com/v1. ההגדרות האלה נקראות כשהאפליקציה עולה, אז הפעילו מחדש את Chatwoot אחרי שינוין.
CAPTAIN_OPEN_AI_API_KEY: sk-YOUR-APISROUTER-KEY
CAPTAIN_OPEN_AI_MODEL: claude-haiku-4-5-20251001
CAPTAIN_OPEN_AI_ENDPOINT: https://api.apisrouter.com
(no /v1 -- Chatwoot appends it)
then restart the Chatwoot processesמה Captain עושה עם המודל המוגדר.
Chatwoot (כ-34K כוכבים ב-GitHub) היא פלטפורמת תמיכת הלקוחות המובילה בקוד פתוח, ו-Captain היא שכבת ה-AI שלה: AI agent שעונה על שיחות לקוחות מהמאמרים והשאלות הנפוצות של מרכז העזרה שלכם, copilot שמנסח תשובות ומסכם שרשורים עבור נציגי אנוש, ותכונות ידע מבוססות-מסמכים מאחורי שניהם. בהתקנות self-hosted שבהן Captain זמין, כל זה רץ דרך המודל המוגדר למעלה. מתחת למכסה, Chatwoot מגדיר את ה-agents SDK שלו פעם אחת בעת ההפעלה: המפתח, בסיס ה-API הנגזר, ומודל ברירת המחדל. כל תכונת Captain מדברת אז chat completions סטנדרטי אל אותו base URL, וה-id של המודל נוסע כמחרוזת פשוטה. Chatwoot כן שומר מיפוי של קידומות שם-מודל (claude-, gemini-, deepseek-) אבל משתמש בו לתיוג טלמטריה, לא ניתוב, כך ש-id של Claude או DeepSeek שהוגדר כ-CAPTAIN_OPEN_AI_MODEL עדיין הולך אל ה-endpoint המוגדר שלכם כמו כל מחרוזת אחרת. לתעבורת תמיכה יש פרופיל עלות ייחודי: הרבה שיחות, תורות קצרות, ותשובות מבוססות שמורכבות ממאמרים שאוחזרו. זה הופך עלות-לכל-שיחה למספר שחשוב, והוא נשלט על ידי טוקני קלט מההקשר שאוחזר. id מהיר מטפל היטב בשכבת ה-assistant, כשהעצמה ל-id חזק יותר היא שינוי הגדרה אחד כשאתם רוצים שה-copilot יכתוב טיוטות טובות יותר.
הגדרה מלאה ופרט זמן-ההפעלה.
פתחו את קונסולת Super Admin בהתקנה שלכם, עברו אל App Configs ובחרו Captain, ואז מלאו את שלושת הערכים. אם ה-Chatwoot שלכם קודם להגדרת ה-endpoint (היא נחתה בעידן v4.4 באמצע 2025), שדרגו קודם; בגרסאות ישנות יותר רק המפתח והמודל התקיימו וה-endpoint היה hardcoded. מכיוון שה-initializer קורא את ההגדרות האלה במהלך עליית האפליקציה, שינויים נכנסים לתוקף אחרי הפעלה מחדש של תהליכי ה-web וה-worker. זה גם אומר שערך שגוי לא נכשל בזמן השמירה; הוא נכשל בבקשת Captain הראשונה אחרי ההפעלה מחדש, מה שכדאי לדעת לפני שאתם מבצעים דיבוג במקום הלא נכון. ל-Captain יש גם צד embedding: CAPTAIN_EMBEDDING_MODEL (ברירת מחדל text-embedding-3-small) מפעיל חיפוש מסמכים על תוכן מרכז העזרה שלכם, והוא נפתר מול אותו endpoint מוגדר. אם אתם מפנים מחדש את ה-endpoint אל gateway, אשרו שה-id של embedding שאתם מגדירים שם הוא כזה שה-endpoint באמת משרת; אחרת השאירו את תכונות המסמכים על ההגדרה הקיימת שלהן ואמתו אותן בנפרד אחרי המעבר.
# Chatwoot will call <endpoint>/v1/chat/completions
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-4-5-20251001",
"messages":[{"role":"user","content":"ping"}]}'בחירת מודל לאוטומציית תמיכה.
לולאת ההערכה שעובדת: הריצו שבוע על id מהיר, ייצאו את מספרי השימוש, ואז הריצו את הצוותים הכבדים-ב-copilot על id חזק יותר והשוו קבלת טיוטות במקום תחושות בטן. שני המועמדים מחויבים דרך אותו מפתח, כך שההשוואה מגיעה מתומחרת.
- שכבת ה-AI agent היא עבודת נפח: תשובות מבוססות על מאמרים שאוחזרו, אלפי שיחות בחודש. claude-haiku-4-5-20251001, gpt-5.4-mini, ו-gemini-3.5-flash שומרים על עלות-לכל-שיחה שטוחה בלי לאבד משמעת ביסוס.
- שכבת ה-copilot קוראת שרשורים שלמים ומנסחת תשובות עבור בני אדם, שם טון ושיקול דעת ניכרים. claude-sonnet-4-6 הוא הצעד הטבעי כלפי מעלה כשאיכות הטיוטה מניעה את פרודוקטיביות הנציג.
- דלפקי תמיכה רב-לשוניים צריכים לבדוק את deepseek-v4-pro ו-gemini-3.5-flash על תמהיל השפות האמיתי שלהם; איכות מענה מבוסס משתנה יותר בין שפות ממה ש-benchmarks באנגלית מרמזים.
- עלות-לכל-שיחה ניתנת למדידה, לא תיאורטית: טוקנים לשיחה כפול שיחות בחודש, ישירות מלוג השימוש.
- מודל אחד משרת את כל תכונות Captain לכל התקנה, אז בחרו לפי עומס העבודה הדומיננטי שלכם וחזרו אחרי קריאת שבוע של שימוש אמיתי.
תשלום לפי שימוש · מתחת למחיר הרשמי
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| מודל | מחיר רשמי | המחיר שלנו |
|---|---|---|
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.4 mini | $0.75 / $4.50 per M | $0.60 / $3.60 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
מצבי כשל ספציפיים ל-Chatwoot Captain.
הסיומת הכפולה /v1 היא הקלאסית. מכיוון ש-Chatwoot מוסיף /v1 למה שאתם מזינים, הדבקת https://api.apisrouter.com/v1 מייצרת בקשות מול /v1/v1/chat/completions, שמחזירות 404 אצל ה-gateway. הזינו את ה-host בלי /v1. שינויי הגדרה שנראים כמתעלמים הם כלל ההפעלה-מחדש. ה-agents SDK מוגדר פעם אחת בעת ההפעלה מתוך ה-installation configs; עריכתם ב-Super Admin בלי הפעלה מחדש משאירה את הערכים הישנים חיים בכל תהליך שרץ. מדריכים ישנים מצביעים על השטח הלא נכון. מדריכים מגרסאות Chatwoot מוקדמות יותר מגדירים OPENAI_API_KEY דרך משתני סביבה או אינטגרציית ה-OpenAI הישנה; בגרסאות נוכחיות הגדרות ה-Captain ב-Super Admin הן השטח, וה-.env.example אומר זאת במפורש. model-not-found בתשובה הראשונה של Captain אחרי החלפה היא טעות הקלדה ב-id ב-CAPTAIN_OPEN_AI_MODEL; רשימת ה-/v1/models של ה-gateway היא האיות הסמכותי. שגיאות אימות אומרות שהגדרות המפתח וה-endpoint לא שייכות יחד. ואם חיפוש מאמרים או ביסוס מסמכים מתדרדר בעוד תשובות הצ'אט תקינות, בדקו את הגדרת ה-embedding, שהיא מודל נפרד שנפתר מול אותו endpoint.
מי מנתב את Chatwoot Captain דרך gateway.
- צוותי תמיכה self-hosted שרוצים ניסוח באיכות Claude ב-copilot בלי חשבון ספק נפרד ויחסי חיוב.
- דלפקים בנפח גבוה שם ה-AI agent עונה על רוב השיחות, ועלות-לכל-שיחה מחליטה אם האוטומציה משתלמת; ids מהירים מהקטלוג שומרים על המספר הזה כן.
- צוותים שמריצים Chatwoot אחד לכל מותג או אזור, מודדים כל התקנה עם מפתח משלה כך שעלות ה-AI לתמיכה מדווחת את עצמה לכל מותג.
- מפעילים שמשווים מודלי תמיכה על תעבורה אמיתית: כל מועמד הוא ערך הגדרה אחד והפעלה מחדש, לא מיגרציה.
- מפתחים ללא גישה לחיוב של ספק נתון. גישה מבוססת-הטענה בלי דרישת כרטיס מסירה את התלות בהרשמה לכל ספק.
אמתו את ה-endpoint ובצעו דיבוג לשיחה הראשונה.
אמתו מחוץ ל-Chatwoot קודם: רשמו מודלים עם המפתח שלכם והריצו השלמת צ'אט אחת מול ה-id המדויק שהגדרתם ב-CAPTAIN_OPEN_AI_MODEL. אם אלה עוברים, החצי של ה-gateway מוכח וכל השאר הוא בצד Chatwoot. לאחר מכן הפעילו מחדש וצפו באינטראקציית Captain הראשונה. כשלי אימות מצביעים על הגדרת המפתח; model-not-found מצביע על הגדרת המודל; שגיאות בצורת 404 מצביעות על /v1 שהודבק בהגדרת ה-endpoint. אם תכונות Captain פשוט לא מופיעות, זו זמינות ורישוי בשכבת ההתקנה שלכם, לא הגדרת endpoint. ברגע ששיחות זורמות, קונסולת APIsRouter מציגה מודל לכל בקשה, ספירות טוקן, והוצאה. AI לתמיכה הוא שורת תקציב שמצטברת חודשית, ומפתח אחד לכל התקנה הופך את לוג השימוש לדוח עלות-לכל-דלפק שצוות הכספים שלכם ממשיך לבקש.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50שאלות נפוצות
איזו הגדרת Chatwoot מפנה את Captain אל endpoint תואם OpenAI מותאם אישית?
CAPTAIN_OPEN_AI_ENDPOINT, מוגדר בקונסולת Super Admin תחת App Configs, Captain, לצד CAPTAIN_OPEN_AI_API_KEY ו-CAPTAIN_OPEN_AI_MODEL. בגרסאות נוכחיות אלה installation configs, לא משתני .env.
האם ה-endpoint צריך לכלול /v1?
לא. Chatwoot גוזר קו נטוי בסוף ומוסיף /v1 בעצמו כשהוא בונה את בסיס ה-API. הזינו https://api.apisrouter.com ו-Chatwoot גוזר https://api.apisrouter.com/v1; הדבקת ה-/v1 בעצמכם מייצרת נתיב כפול שמחזיר 404.
האם Captain יכול לרוץ על מודלי Claude או DeepSeek?
כן. CAPTAIN_OPEN_AI_MODEL נוסע אל ה-endpoint המוגדר כמחרוזת פשוטה; מיפוי קידומות-הספק של Chatwoot רק מתייג טלמטריה. כל id שה-gateway משרת עובד, כולל claude-haiku-4-5-20251001 ו-deepseek-v4-pro.
למה שינוי ההגדרה שלי לא נכנס לתוקף?
הגדרות ה-LLM של Captain נקראות בעת עליית האפליקציה. הפעילו מחדש את תהליכי ה-web וה-worker של Chatwoot אחרי עריכת ההגדרות ב-Super Admin; תהליכים שרצים שומרים את הערכים הישנים עד אז.
האם הגדרת ה-endpoint משפיעה על חיפוש המסמכים של Captain?
מודל ה-embedding (CAPTAIN_EMBEDDING_MODEL, ברירת מחדל text-embedding-3-small) נפתר מול אותו endpoint. אשרו שה-endpoint משרת את ה-id של embedding שאתם מגדירים, או אמתו את תכונות המסמכים בנפרד אחרי המעבר.
איזו גרסת Chatwoot אני צריך?
הגדרת ה-endpoint נחתה בעידן v4.4 באמצע 2025. גרסאות מוקדמות יותר חושפות רק את המפתח והמודל עם endpoint OpenAI מקובע (hardcoded), אז שדרגו לפני שאתם מפנים את Captain אל gateway.