Chatwoot Captain را روی یک endpoint سفارشی سازگار با OpenAI اجرا کنید.

Updated 2026-07-30

Chatwoot خودمیزبان مقادیر Captain را از طریق app config های Super Admin پیکربندی می‌کند: CAPTAIN_OPEN_AI_ENDPOINT، CAPTAIN_OPEN_AI_API_KEY، و CAPTAIN_OPEN_AI_MODEL. endpoint را به https://api.apisrouter.com اشاره دهید (Chatwoot خودش /v1 را اضافه می‌کند) و AI پشتیبانی شما روی هر مدل کاتالوگ از طریق یک کلید پاسخ می‌دهد.

پاسخ سریع: سه config برای Captain در Super Admin.

در Chatwoot خودمیزبان فعلی، تنظیمات LLM Captain installation config هستند، نه متغیرهای .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 با تراشیدن یک اسلش انتهایی و اضافه‌کردن /v1، API base را خودش می‌سازد، و توضیح خود config پیش‌فرض را به‌عنوان https://api.openai.com/ دقیقاً در آن شکل نشان می‌دهد. برای APIsRouter، https://api.apisrouter.com را وارد کنید و بگذارید Chatwoot https://api.apisrouter.com/v1 را استخراج کند. این config ها هنگام boot اپ خوانده می‌شوند، پس بعد از تغییر آن‌ها Chatwoot را restart کنید.

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 (حدود ۳۴ هزار ستاره در GitHub) پیشرو پلتفرم پشتیبانی مشتری متن‌باز است، و Captain لایه AI آن است: یک agent AI که مکالمات مشتری را از مقالات و FAQ های help-center شما پاسخ می‌دهد، یک copilot که پاسخ‌ها را پیش‌نویس و رشته‌ها را برای agent های انسانی خلاصه می‌کند، و ویژگی‌های دانش مبتنی‌بر-سند پشت هر دو. روی نصب‌های خودمیزبان جایی که Captain در دسترس است، همه آن از طریق مدل پیکربندی‌شده بالا اجرا می‌شود. زیر کاپوت، Chatwoot SDK agent های خود را یک‌بار در boot پیکربندی می‌کند: کلید، API base استخراج‌شده، و مدل پیش‌فرض. سپس هر ویژگی Captain به آن base URL chat completions استاندارد صحبت می‌کند، و id مدل به‌عنوان رشته ساده سفر می‌کند. Chatwoot یک نگاشت از پیشوندهای نام-مدل (claude-، gemini-، deepseek-) نگه می‌دارد اما آن را برای برچسب‌گذاری telemetry استفاده می‌کند، نه مسیردهی، پس یک id از Claude یا DeepSeek تنظیم‌شده به‌عنوان CAPTAIN_OPEN_AI_MODEL همچنان مثل هر رشته دیگری به endpoint پیکربندی‌شده شما می‌رود. ترافیک پشتیبانی یک پروفایل هزینه متمایز دارد: مکالمات زیاد، نوبت‌های کوتاه، و پاسخ‌های grounded مونتاژشده از مقالات بازیابی‌شده. این هزینه هر-مکالمه را عددی می‌کند که اهمیت دارد، و آن با token های input از context بازیابی‌شده غالب می‌شود. یک id سریع سطح دستیار را خوب مدیریت می‌کند، با escalation به یک id قوی‌تر که یک تغییر تک-config است وقتی می‌خواهید copilot پیش‌نویس‌های بهتری بنویسد.

راه‌اندازی کامل و جزئیات زمان-boot.

کنسول Super Admin را روی نصب خود باز کنید، به App Configs بروید و Captain را انتخاب کنید، سپس سه مقدار را پر کنید. اگر Chatwoot شما قبل از config endpoint است (که در دوران v4.4 در اواسط ۲۰۲۵ آمد)، اول ارتقا دهید؛ روی نسخه‌های قدیمی‌تر فقط کلید و مدل وجود داشتند و endpoint هاردکد شده بود. چون initializer این config ها را در طول boot اپلیکیشن می‌خواند، تغییرات بعد از یک restart از فرآیندهای web و worker اثر می‌کنند. این همچنین یعنی یک مقدار اشتباه در زمان ذخیره شکست نمی‌خورد؛ روی اولین درخواست Captain بعد از restart شکست می‌خورد، که ارزش دانستن قبل از دیباگ در جای اشتباه را دارد. Captain یک سمت embedding هم دارد: CAPTAIN_EMBEDDING_MODEL (پیش‌فرض text-embedding-3-small) جست‌وجوی سند روی محتوای help-center شما را قدرت می‌دهد، و در برابر همان endpoint پیکربندی‌شده resolve می‌شود. اگر 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 سریع اجرا کنید، اعداد usage را export کنید، سپس تیم‌های copilot-سنگین را روی یک id قوی‌تر اجرا کنید و پذیرش پیش‌نویس را به‌جای حس درونی مقایسه کنید. هر دو کاندید از طریق همان کلید صورت‌حساب می‌شوند، پس مقایسه قیمت‌گذاری‌شده می‌رسد.

  • سطح agent AI کار حجمی است: پاسخ‌های grounded روی مقالات بازیابی‌شده، هزاران مکالمه در ماه. claude-haiku-4-5-20251001، gpt-5.4-mini، و gemini-3.5-flash هزینه هر-مکالمه را ثابت نگه می‌دارند بدون از دست‌دادن انضباط grounding.
  • سطح copilot رشته‌های کامل را می‌خواند و پاسخ‌ها را برای انسان‌ها پیش‌نویس می‌کند، جایی که لحن و قضاوت نشان داده می‌شود. claude-sonnet-4-6 گام طبیعی بالاتر است وقتی کیفیت پیش‌نویس بهره‌وری agent را هدایت می‌کند.
  • میزهای پشتیبانی چندزبانه باید deepseek-v4-pro و gemini-3.5-flash را روی ترکیب زبان واقعی خود تست کنند؛ کیفیت پاسخ‌دهی grounded در سرتاسر زبان‌ها بیشتر از آنچه benchmark های انگلیسی پیشنهاد می‌کنند تغییر می‌کند.
  • هزینه هر-مکالمه قابل‌اندازه‌گیری است، نه نظری: token به ازای هر مکالمه ضرب در مکالمات به ازای هر ماه، مستقیم از usage log.
  • یک مدل همه ویژگی‌های Captain را به ازای هر نصب سرویس می‌دهد، پس برای workload غالب خود انتخاب کنید و بعد از خواندن یک هفته usage واقعی بازبینی کنید.

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

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 تولید می‌کند، که در gateway ۴۰۴ می‌شوند. host را بدون /v1 وارد کنید. تغییرات config که نادیده‌گرفته‌شده به‌نظر می‌رسند قانون restart هستند. SDK agent ها یک‌بار در boot از installation config ها پیکربندی می‌شود؛ ویرایش آن‌ها در Super Admin بدون restart مقادیر قدیمی را زنده در هر فرآیند در حال اجرا رها می‌کند. راهنماهای قدیمی به سطح اشتباه اشاره می‌کنند. tutorial های نسخه‌های قدیمی‌تر Chatwoot مقدار OPENAI_API_KEY را از طریق متغیرهای محیطی یا integration قدیمی OpenAI پیکربندی می‌کنند؛ روی نسخه‌های فعلی، config های Captain در Super Admin همان سطح هستند، و .env.example دقیقاً همین را می‌گوید. Model-not-found روی اولین پاسخ Captain بعد از یک سوییچ یک غلط‌تایپی id در CAPTAIN_OPEN_AI_MODEL است؛ فهرست /v1/models gateway نگارش معتبر است. خطاهای احراز هویت یعنی config های کلید و endpoint به هم تعلق ندارند. و اگر جست‌وجوی مقاله یا grounding سند تنزل می‌کند در حالی که چت خوب پاسخ می‌دهد، به config embedding نگاه کنید، که یک مدل جدا است که در برابر همان endpoint resolve می‌شود.

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

  • تیم‌های پشتیبانی خودمیزبان که پیش‌نویسی با کیفیت Claude را در copilot بدون یک حساب vendor جدا و رابطه صورت‌حساب می‌خواهند.
  • میزهای حجم-بالا جایی که agent AI بیشتر مکالمات را پاسخ می‌دهد، و هزینه هر-مکالمه تصمیم می‌گیرد آیا اتوماسیون می‌صرفد؛ id های کاتالوگ سریع آن عدد را صادق نگه می‌دارند.
  • تیم‌هایی که یک Chatwoot به ازای هر برند یا منطقه اجرا می‌کنند، هر نصب را با کلید خودش متر می‌کنند تا هزینه AI پشتیبانی خودش را به ازای هر برند گزارش دهد.
  • اپراتورهایی که مدل‌های پشتیبانی را روی ترافیک واقعی مقایسه می‌کنند: هر کاندید یک مقدار config و یک restart است، نه یک migration.
  • توسعه‌دهندگان بدون دسترسی به صورت‌حساب یک vendor خاص. دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی ثبت‌نام هر-provider را حذف می‌کند.

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

اول بیرون از Chatwoot تأیید کنید: مدل‌ها را با کلید خود فهرست کنید و یک chat completion را در برابر id دقیقی که در CAPTAIN_OPEN_AI_MODEL تنظیم کرده‌اید اجرا کنید. اگر آن‌ها موفق شوند، نیمه gateway اثبات شده و همه‌چیز دیگر سمت-Chatwoot است. سپس restart کنید و اولین تعامل Captain را تماشا کنید. شکست‌های احراز هویت به config کلید اشاره دارند؛ model-not-found به config مدل اشاره دارد؛ خطاهای به‌شکل ۴۰۴ به یک /v1 چسبانده‌شده در config endpoint اشاره دارند. اگر ویژگی‌های Captain به‌سادگی ظاهر نمی‌شوند، این در دسترس‌بودن و مجوز روی سطح نصب شماست، نه پیکربندی endpoint. وقتی مکالمات جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. AI پشتیبانی یک خط بودجه است که ماهانه انباشته می‌شود، و یک کلید به ازای هر نصب usage log را به گزارش هزینه هر-میز تبدیل می‌کند که تیم مالی شما مرتب می‌خواهد.

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

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

کدام config Chatwoot، Captain را به یک endpoint سفارشی سازگار با OpenAI اشاره می‌دهد؟

CAPTAIN_OPEN_AI_ENDPOINT، تنظیم‌شده در کنسول Super Admin زیر App Configs، Captain، در کنار CAPTAIN_OPEN_AI_API_KEY و CAPTAIN_OPEN_AI_MODEL. روی نسخه‌های فعلی این‌ها installation config هستند، نه متغیرهای .env.

آیا endpoint باید /v1 را شامل شود؟

خیر. Chatwoot یک اسلش انتهایی را می‌تراشد و خودش /v1 را هنگام ساخت API base اضافه می‌کند. https://api.apisrouter.com را وارد کنید و Chatwoot https://api.apisrouter.com/v1 را استخراج می‌کند؛ چسباندن /v1 توسط خودتان یک مسیر دوتایی تولید می‌کند که ۴۰۴ می‌شود.

آیا Captain می‌تواند روی مدل‌های Claude یا DeepSeek اجرا شود؟

بله. CAPTAIN_OPEN_AI_MODEL به‌عنوان رشته ساده به endpoint پیکربندی‌شده سفر می‌کند؛ نگاشت پیشوند-provider Chatwoot فقط telemetry را برچسب می‌زند. هر id ای که gateway سرویس دهد کار می‌کند، شامل claude-haiku-4-5-20251001 و deepseek-v4-pro.

چرا تغییر config من اثر نکرد؟

تنظیمات LLM Captain در boot اپلیکیشن خوانده می‌شوند. بعد از ویرایش config ها در Super Admin، فرآیندهای web و worker Chatwoot را restart کنید؛ فرآیندهای در حال اجرا تا آن زمان مقادیر قدیمی را نگه می‌دارند.

آیا config endpoint روی جست‌وجوی سند Captain اثر می‌گذارد؟

مدل embedding (CAPTAIN_EMBEDDING_MODEL، پیش‌فرض text-embedding-3-small) در برابر همان endpoint resolve می‌شود. تأیید کنید endpoint id embedding ای که پیکربندی می‌کنید را سرویس می‌دهد، یا ویژگی‌های سند را جداگانه بعد از سوییچ اعتبارسنجی کنید.

به کدام نسخه Chatwoot نیاز دارم؟

config endpoint در دوران v4.4 در اواسط ۲۰۲۵ آمد. نسخه‌های قبلی فقط کلید و مدل را با یک endpoint هاردکدشده OpenAI افشا می‌کنند، پس قبل از اشاره‌دادن Captain به یک gateway ارتقا دهید.