AnythingLLM را روی هر مدلی از طریق Generic OpenAI اجرا کنید.

Updated 2026-07-29

provider Generic OpenAI در AnythingLLM کل اپ را به هر endpoint سازگار با OpenAI وصل می‌کند: Base URL برابر https://api.apisrouter.com/v1، یک کلید، یک id مدل چت، و محدودیت‌های token صادقانه. id های Claude، GPT، Gemini، و DeepSeek همگی واجد شرایط‌اند، هم برای اسناد، هم agent ها، هم چت.

پاسخ سریع: پنج فیلد در LLM Preference.

تنظیمات AnythingLLM را باز کنید، به بخش LLM زیر AI Providers بروید (صفحه‌ای که تاریخاً LLM Preference نام داشت)، و در فهرست provider ها دنبال Generic OpenAI بگردید. انتخاب آن پنج فیلد را نمایان می‌کند: Base URL، API Key، Chat Model Name، Token Context Window، و Max Tokens. آن‌ها را این‌طور پر کنید: Base URL برابر https://api.apisrouter.com/v1 (که /v1 متعلق به همین فیلد است)، کلید خود، و id دقیق کاتالوگ در Chat Model Name، مثلاً claude-sonnet-4-6. سپس دو عدد: Token Context Window پنجره کل مدل است و Max Tokens یک پاسخ تکی را سقف می‌زند، پس هر دو را از مستندات مدل بردارید نه حدس. ذخیره کنید، و هر workspace ای که از پیش‌فرض سیستم پیروی می‌کند اکنون از طریق gateway چت می‌کند. مستندات این provider را عمداً developer-focused برچسب می‌زنند، چون به ورودی‌های شما اعتماد می‌کند؛ این هشداری علیه استفاده از آن نیست، فقط بیانی است که این پنج فیلد یک قرارداد هستند.

Base URL:              https://api.apisrouter.com/v1
API Key:               sk-YOUR-APISROUTER-KEY
Chat Model Name:       claude-sonnet-4-6
Token Context Window:  200000
Max Tokens:            8192

provider Generic OpenAI واقعاً چه چیزی را هدایت می‌کند.

AnythingLLM (Mintplex Labs در GitHub، حدود ۶۳ هزار ستاره) دستیار سند خصوصی همه‌کاره است: workspace هایی که فایل‌های شما را embed می‌کنند، چت مبتنی بر context بازیابی‌شده، agent هایی با tool use، به‌صورت اپ desktop و سرور self-hosted در دسترس. LLM preference که بالا پیکربندی کردید مغز پیش‌فرض همه این‌هاست. درخواست‌ها به‌عنوان chat completions استاندارد در برابر Base URL شما با Chat Model Name به‌عنوان رشته model خارج می‌شوند، پس vendor اهمیتی ندارد: یک id Claude به‌اندازه یک id GPT معتبر است، و سوییچ یعنی ویرایش یک فیلد. workspace ها هم می‌توانند پیش‌فرض سیستم را با تنظیمات provider و مدل خودشان override کنند، که همین‌طور یک deployment claude-sonnet-4-6 را برای workspace حقوقی و gpt-5.5 را برای مهندسی اجرا می‌کند بدون اینکه هیچ‌کدام از دیگری خبردار باشد. دو فیلد token احترام می‌طلبند چون AnythingLLM از آن‌ها برای بودجه‌بندی context استفاده می‌کند. مقدار context window تصمیم می‌گیرد چقدر متن سند بازیابی‌شده و تاریخچه چت در هر درخواست جا می‌شود؛ کمتر گفتنش اسناد به‌دقت embed-شده شما را از پاسخ‌های خودشان می‌تراشد، بیشتر گفتن هر دو درخواست‌هایی تولید می‌کند که از محدودیت واقعی مدل برمی‌گردند. این همان جفت فیلدی است که پشت بیشتر گزارش‌های «RAG احمق به نظر می‌رسد» روی endpoint های عمومی است.

embedding یک تصمیم جداست.

AnythingLLM LLM preference را از embedding preference جدا می‌کند، و این جدایی load-bearing است. مدل چت به سؤال‌ها پاسخ می‌دهد؛ embedder اسناد شما را در زمان آپلود به vector تبدیل می‌کند، و آن vector ها ماندگارند. تغییر مدل‌های چت رایگان است، هر روز، به ازای هر workspace. تغییر embedder ها هندسه هر چیزی که قبلاً embed شده را باطل می‌کند و یعنی باید اسناد خود را دوباره embed کنید. راه‌اندازی عملی: AnythingLLM یک embedder محلی داخلی عرضه می‌کند که آفلاین کار می‌کند و هزینه‌ای ندارد، و بسیاری از deployment ها ساده آن را نگه می‌دارند. اگر به‌جای آن embedding preference را به یک endpoint راه‌دور اشاره دهید، قبل از آپلود پایگاه سند خود تأیید کنید آن id embedding خاص آنجا سرویس‌دهی می‌شود، و آن انتخاب را ازدواج‌کرده با vector store در نظر بگیرید. آزادی‌ای که این در سمت چت می‌خرد نکته اصلی معماری است: با تسویه embedding ها، مدل چت Generic OpenAI یک قرص کم‌ریسک است. یک ماه deepseek-v4-pro را برای خلاصه‌سازی سنگین اجرا کنید، فیلد را برای یک فصل کار مشتری به claude-sonnet-4-6 سوییچ کنید، و هیچ‌چیز درباره اسناد شما نیاز به جابه‌جایی ندارد.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# Chat Model Name must match one of these ids exactly

انتخاب مدل‌ها برای کار روی اسناد.

چون هر id از طریق همان کلید صورت‌حساب می‌شود، حلقه مقایسه یک ویرایش تنظیمات است: همان workspace، همان اسناد، دو هفته روی هر کاندید، و هزینه هر-مدل در کنسول APIsRouter کنار قضاوت خودتان از پاسخ‌ها.

  • QA مبتنی بر context بازیابی‌شده کار ورودی-سنگین است: claude-haiku-4-5-20251001 و gemini-3.5-flash به سؤال‌های citation-following با قیمت‌های حجمی خوب پاسخ می‌دهند.
  • claude-sonnet-4-6 پیش‌فرض را جایی می‌طلبد که پاسخ‌ها بدون ویرایش به انسان‌ها می‌رسند: بازبینی قرارداد، پیش‌نویس گزارش، هر چیزی با عواقب.
  • deepseek-v4-pro اسب کاری long-context برای workspace هایی است که روی اسناد بزرگ ساخته شده‌اند، جایی که پنجره و قیمت ورودی بر تجربه غالب‌اند.
  • workspace های agent به tool calling قابل‌اعتماد نیاز دارند؛ agent ها را روی claude-sonnet-4-6 شروع کنید، سپس تست کنید آیا یک id سبک‌تر روی flow های واقعی شما دوام می‌آورد.
  • از override های هر-workspace به‌عنوان policy استفاده کنید: پیش‌فرض سریع می‌ماند، و id گران فقط در workspace هایی زندگی می‌کند که کارشان آن را توجیه می‌کند.

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

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
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M

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

فیلدهای token باعث شکست‌های ظریف می‌شوند. یک context window خیلی کم‌تنظیم‌شده context بازیابی‌شده را بی‌صدا می‌تراشد، که مثل مدلی به‌نظر می‌رسد که اسناد شما را نادیده می‌گیرد؛ پنجره مستند برای id در Chat Model Name را تنظیم کنید. Max Tokens خیلی بالا برای مدل خطاهای سخت روی پاسخ‌های بلند تولید می‌کند؛ آن را روی چیزی تنظیم کنید که مدل واقعاً برای خروجی مجاز می‌داند. خطاهای سخت صادقانه‌ترند. شکست‌های authentication فیلد API Key هستند. model-not-found یعنی Chat Model Name از املای کاتالوگ منحرف شده؛ فیلد متن آزاد است و فهرست /v1/models منبع حقیقت است. خطاهای اتصال روی اپ desktop معمولاً یعنی یک proxy یا firewall بین اپ و endpoint؛ روی deployment های Docker، به‌خاطر بسپارید این کانتینر است که باید به Base URL برسد، نه مرورگر شما. اگر چت کار می‌کند اما یک workspace متفاوت از انتظار رفتار می‌کند، تنظیمات override آن را چک کنید؛ تنظیمات provider سطح-workspace بر پیش‌فرض سیستم غالب‌اند، و یک override فراموش‌شده معمای کلاسیک «همان سؤال، مدل متفاوت» است. برچسب developer-focused مستندات همه بالا را خلاصه می‌کند: provider دقیقاً همان کاری را می‌کند که پنج فیلدش می‌گویند، نه بیشتر نه کمتر.

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

  • تیم‌هایی که دستیار سند خصوصی اجرا می‌کنند و کیفیت پاسخ frontier می‌خواهند بدون یک حساب vendor به ازای هر خانواده مدل.
  • کاربران desktop که پایگاه سند شخصی خود را روی یک موجودی پیش‌پرداخت به id های Claude یا GPT اشاره می‌دهند، بدون نیاز به کارت برای شروع.
  • self-hoster هایی که embedder محلی داخلی را نگه می‌دارند و چت راه‌دور را تنها لِین اندازه‌گیری‌شده در نظر می‌گیرند، خوانده‌شده به ازای هر مدل روی یک usage log.
  • deployment های تقسیم‌شده به ازای workspace، جایی که override های هر-workspace به‌علاوه اندازه‌گیری هر-کلید به هر تیم مدل خودش و صورت‌حساب خودش را می‌دهد.
  • سازندگانی که مدل‌های پاسخ را روی یک پایگاه سند ثابت مقایسه می‌کنند، جایی که هر کاندید یک ویرایش تنظیمات است نه یک migration.

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

ابتدا فهرست مدل‌ها و یک chat completion را curl کنید، با استفاده از همان id دقیقی که قصد دارید در Chat Model Name قرار دهید. با موفقیت هر دو، نیمه gateway اثبات شده و هر علامت باقی‌مانده در پنج فیلد زندگی می‌کند. سپس تنظیمات provider را ذخیره کنید و یک سؤال در یک workspace با سندی که خوب می‌شناسید بپرسید. یک پاسخ مبتنی و citation-دار یعنی کل pipeline کار می‌کند. پاسخی که سند را نادیده می‌گیرد به مقدار context window یا به تنظیمات retrieval خود workspace اشاره دارد. خطاهای سخت تمیز نگاشت می‌شوند: کلید، املای id، شکل Base URL. وقتی چت‌ها جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. QA اسناد token های ورودی را از طریق retrieval ضرب می‌کند، و usage log جایی است که یاد می‌گیرید پایگاه سند شما واقعاً چقدر برای query هزینه دارد، به ازای هر مدل، هر روز، و هر کلید workspace اگر آن‌ها را جدا کرده باشید.

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-4-6",
       "messages":[{"role":"user","content":"ping"}]}'

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

چطور یک Base URL سفارشی در AnythingLLM تنظیم کنم؟

در تنظیمات زیر AI Providers، صفحه LLM preference را باز کنید و Generic OpenAI را از فهرست provider انتخاب کنید. Base URL را روی https://api.apisrouter.com/v1 تنظیم کنید، کلید خود را اضافه کنید، id دقیق کاتالوگ را در Chat Model Name بگذارید، و هر دو فیلد token را از مستندات مدل پر کنید.

Token Context Window و Max Tokens چه چیزی را کنترل می‌کنند؟

context window به AnythingLLM می‌گوید چقدر متن بازیابی‌شده و تاریخچه می‌تواند به ازای هر درخواست جا کند؛ Max Tokens یک پاسخ تکی را سقف می‌زند. کم‌تنظیم‌کردن پنجره اسناد شما را از پاسخ‌ها می‌تراشد، و بیش‌تنظیم‌کردن هر دو درخواست‌هایی تولید می‌کند که مدل رد می‌کند.

آیا AnythingLLM می‌تواند Claude یا DeepSeek را از طریق Generic OpenAI اجرا کند؟

بله. provider Chat Model Name را به‌عنوان رشته ساده به Base URL روی chat completions استاندارد می‌فرستد، پس claude-sonnet-4-6، deepseek-v4-pro، gemini-3.5-flash، و id های GPT همه کار می‌کنند، قابل‌سوییچ با ویرایش یک فیلد یا به ازای هر workspace.

آیا سوییچ مدل چت روی اسناد embed-شده من اثر می‌گذارد؟

نه. تنظیمات چت و embedding جدا هستند؛ vector ها می‌مانند و مدل‌های چت آزادانه سوییچ می‌شوند. فقط تغییر embedder vector های موجود را باطل می‌کند و re-embedding را الزامی می‌کند، به همین دلیل بسیاری از deployment ها embedder محلی داخلی را نگه می‌دارند و فقط سمت چت را تنظیم می‌کنند.

چرا صفحه مستندات Generic OpenAI را developer-focused می‌نامد؟

چون به ورودی‌های شما اعتماد می‌کند به‌جای عرضه پیش‌فرض‌های هر-vendor: id، URL، یا مقادیر token اشتباه در زمان اجرا شکست می‌خورند نه اینکه فرم آن‌ها را بگیرد. با id های کپی‌شده از /v1/models و محدودیت‌های مستندات مدل، این یک مسیر پایدار و درجه‌یک است.

آیا workspace های مختلف می‌توانند مدل‌های متفاوت استفاده کنند؟

بله. workspace ها پیش‌فرض سیستم را به ارث می‌برند اما می‌توانند provider و مدل را در تنظیمات چت خودشان override کنند، پس یک deployment می‌تواند به‌طور پیش‌فرض یک id سریع اجرا کند و claude-sonnet-4-6 را فقط در workspace هایی pin کند که کارشان آن را کسب می‌کند.