Felo API PlatformFelo API Platform

دروازهٔ LLM

دروازه‌ای برای LLM با لایهٔ داده درونش

سه نشانی پایه، یک کلید، یک موجودی. چت، تصویر، ویدیو و مدل‌های تصمیم با همان SDK که امروز استفاده می‌کنید؛ جست‌وجو، سند و اسلاید از همان اعتبار — از یک‌دهم قیمت رسمی ارائه‌دهنده.

  • ⁦10⁩%

    نرخ شروع در برابر قیمت رسمی API ارائه‌دهنده

  • ⁦5,000+⁩

    API در همان کاتالوگ

دروازه معمولاً یک سطح دارد. این یکی سه تا.

هر سه حساب، کلید و موجودی شما را شریک‌اند، اما به پرسش‌های متفاوتی پاسخ می‌دهند و روی نشانی‌های پایهٔ متفاوتی هستند. دانستن اینکه کدام را صدا می‌زنید تمام ماجراست.

سطحنشانی پایهبرای چه
API مدلopenapi.felo.ai/api/v1 · openapi.felo.ai/apiفراخوانی مستقیم مدل زبان، تصویر، ویدیو یا تصمیم
API دادهopenapi.felo.ai/v1/betaفراخوانی یک ارائه‌دهندهٔ داده یا جست‌وجوی شخص ثالث با نام
Felo APIsopenapi.felo.ai/v2گردش‌کارهای خود فلو: جست‌وجو، اداری، استخراج، دانش

یک کلید هر سه را پوشش می‌دهد. شارژ، اعتبار سرویس به دلار می‌خرد و فراخوانی مدل، فراخوانی API داده و گردش‌کار فلو از همان موجودی کسر می‌شوند — حساب جداگانه برای هر ارائه‌دهنده وجود ندارد.

خواندن مستندات

شش نقطهٔ پایانی، نه یکی

هر چیزی زیر /api/v1 فراخوانی مدل است، اما نوع مدل تعیین می‌کند کدام نقطهٔ پایانی می‌تواند پاسخ دهد — و هرکدام قالب خودش را برمی‌گرداند.

نقطهٔ پایانیپروتکلبرمی‌گرداند
POST /api/v1/chat/completionsOpenAI Chat Completionsجریان یا یک پاسخ
POST /api/v1/responsesOpenAI Responsesجریان یا یک پاسخ
POST /api/v1/messagesAnthropic Messagesجریان یا یک پاسخ
POST /api/v1/images/generationsپوشش تصویر OpenAItask_id برای بررسی
POST /api/v1/videos/generationsپوشش ویدیو OpenAItask_id برای بررسی
POST /api/v1/decisionsطرح تصمیم فلوپاسخ‌های نوع‌دار، بدون جریان

سه سطح چت پیاده‌سازی بومی‌اند نه لایهٔ ترجمه: هرکدام رویدادهایش را در پروتکل خودش می‌فرستد، پس جریان را دقیقاً مثل امروز تجزیه می‌کنید.

نقطهٔ پایانی را بر پایهٔ نوع مدل انتخاب کنید، نه حدس

هر مدل در کاتالوگ یک model_kind دارد و همین نوع تعیین می‌کند کدام نقطهٔ پایانی می‌تواند آن را صدا بزند. کشفش رایگان است: کاتالوگ محلی را می‌خواند.

# discover before you call — free, reads the catalog
GET /api/v1/models   # every kind, with channels and rates
GET /api/v1/models/{model_id}  # one model, in detail
GET /api/v1/videos/models     # video_generation only
GET /api/v1/decisions/models  # decisions only
model_kindنقطهٔ پایانی
chatResponses، Chat Completions یا Messages بسته به پشتیبانی مدل
image_generationPOST /api/v1/images/generations
video_generationPOST /api/v1/videos/generations
decisionsPOST /api/v1/decisions

با ?provider= فقط یک ارائه‌دهنده را ببینید، یا با ?exclude_video_and_decisions=true همه‌چیز جز چت و تصویر را پنهان کنید. بودن در کاتالوگ وعده نیست: مدل ویدیو به درخواست چت پاسخ نمی‌دهد و API خطای model_kind_mismatch برمی‌گرداند.

مسیر پیش‌فرض، یا یک سرآیند برای انتخاب ارائه‌دهنده

یک مدل می‌تواند از چند کانال بالادست سرو شود، هرکدام با ارائه‌دهنده و نرخ اعلام‌شدهٔ خودش. بدون سرآیند، پلتفرم یکی را انتخاب می‌کند؛ با X-Felo-Channel انتخاب با شماست.

# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic  # ordered selection, not a retry list
  • مقدار، فهرستی مرتب از کدهای عمومی کانال از channels[].code مدل است که به همان ترتیبی که می‌نویسید بررسی می‌شود.
  • فقط گروه ارائه‌دهندهٔ کانال اول فراخوانی می‌شود و نرخ همان کانال را می‌پردازید.
  • جابه‌جایی خودکار وجود ندارد. فهرست کانال یک انتخاب است، نه سیاست تلاش مجدد — اگر ارائه‌دهنده‌ای از کار افتاد، از برنامهٔ خودتان با کانال دیگری دوباره بفرستید.

X-Felo-Channel روی شش نقطهٔ پایانی تولید بالا کار می‌کند. روی API داده و Felo APIs اعمال نمی‌شود: آن فراخوانی‌ها به ارائه‌دهنده‌ای می‌روند که در درخواست نام می‌برید.

خواندن مستندات

یک فراخوانی واقعاً چقدر هزینه دارد

فراخوانی مدل بر پایهٔ توکن محاسبه می‌شود — ورودی، خروجی و کش — با ضریب تخفیف کانال. نرخ‌ها برای خوانایی به‌ازای هر میلیون توکن نمایش داده می‌شوند، اما صورت‌حساب از دقت توکنی تصویر قیمت جاری استفاده می‌کند: درخواست کوتاه هرگز به میلیون گرد نمی‌شود.

  • نرخ کش فقط وقتی اعمال می‌شود که پاسخ پروتکل استفاده از کش را گزارش کند؛ مدلی که گزارش نمی‌کند همه را با نرخ ورودی حساب می‌کند.
  • جست‌وجوی وب که سرویس مدل خودش اجرا و گزارش می‌کند $0.01 برای هر جست‌وجو هزینه دارد.
  • برخی مدل‌ها بر پایهٔ اندازهٔ پرامپت پله‌ای حساب می‌کنند: Claude Haiku 5.5 تا پرامپت 100K توکنی، $0.10 ورودی و $0.50 خروجی به‌ازای هر میلیون توکن است و بالاتر از آن $0.50 و $2.50 برای کل درخواست.
  • اولین شارژ $1 است. بدون اشتراک، بدون هزینهٔ هر کاربر، بدون تعهد حداقلی — کلیدی که استفاده نشود هزینه‌ای ندارد.

فراخوانی‌های API داده و گردش‌کارهای فلو هم از همان موجودی کسر می‌شوند، هرکدام بر پایهٔ اعلام‌شدهٔ خود: برای هر درخواست موفق، برای هر مورد برگشتی یا بر پایهٔ مصرف واقعی.

نرخ‌ها و اعتبار

دو محدودیت که شبیه هم‌اند و نیستند

موجودی خالی 402 INSUFFICIENT_CREDITS برمی‌گرداند. فراخوانی بیش از حد سریع 429 RATE_LIMITED. انتظار دومی را حل می‌کند و هرگز اولی را.

وضعیتکدچه کنیم
401UNAUTHORIZEDکلید را اصلاح یا از نو بسازید
402INSUFFICIENT_CREDITSدر صورت‌حساب کنسول شارژ کنید و دوباره بفرستید
404بسته به نقطهٔ پایانیشناسهٔ مدل، شناسهٔ کار یا مسیر را بررسی کنید
429RATE_LIMITEDتا Retry-After صبر کنید و دوباره تلاش کنید
5xxCHAT_FAILED, SERVICE_UNAVAILABLEبا backoff نمایی و jitter دوباره تلاش کنید

امروز فقط /v2/chat محدودیت‌های سخت را مستند می‌کند. فراخوانی مدل ممکن است از بالادست هم محدود شود و این به‌صورت 429 دیده می‌شود — به‌جای هاردکد کردن اعداد، X-RateLimit-* و Retry-After را بخوانید. هر پاسخ یک request_id دارد و سرآیند X-Request-Id که می‌فرستید همان‌طور بازگردانده می‌شود، تا لاگ‌های شما و ما به هم بخورند.

خواندن مستندات

تصویر و ویدیو در پس‌زمینه تمام می‌شوند

هر دو نقطهٔ پایانی تولید، به‌جای نتیجه task_id برمی‌گردانند. بفرستید، بررسی کنید، بردارید — و توجه کنید: پس از ساخته‌شدن کار، بیشتر خطاها به‌جای خطای HTTP، با 200 و وضعیت پایانی می‌آیند.

# submit, then poll the task
POST /api/v1/images/generations       → task_id
GET  /api/v1/images/generations/{id}  → status, result
POST /api/v1/videos/generations       → task_id
GET  /api/v1/videos/generations/{id}  → status, result

پیش از نتیجه، وضعیت را بخوانید: failed و interrupted هم پاسخ‌اند و error.message دلیل را می‌گوید. 402 هنگام ارسال یعنی کار هرگز ساخته نشده. SuperAgent متفاوت است: stream_key برمی‌گرداند و رویدادها را با SSE می‌فرستد، پس چیزی برای بررسی نیست.

خواندن مستندات

نشانی پایه را عوض کنید، کلاینت را نگه دارید

هر دو SDK به‌محض اینکه نشانی پایه به اینجا اشاره کند، بدون تغییر کار می‌کنند. npx feloapi-cli setup همان پیکربندی را برای Claude Code و Codex می‌نویسد.

# OpenAI SDK
base_url = "https://openapi.felo.ai/api/v1"

# Anthropic SDK — one level up; the SDK appends /v1/messages
base_url = "https://openapi.felo.ai/api"

# pin a provider (optional)
default_headers = {"X-Felo-Channel": "claude-cc"}

شناسه‌های مدل بین ارائه‌دهنده‌ها یکسان نیستند. پیش از عوض‌کردن نشانی پایه از کاتالوگ انتخاب کنید، وگرنه اولین فراخوانی 404 برمی‌گرداند.

نیمی که دروازه معمولاً به شما واگذار می‌کند

دروازهٔ LLM فراخوانی مدل‌ها را مسیریابی می‌کند. اینجا همان کلید به کاتالوگی با ⁦5,000+⁩ API هم می‌رسد — پس مرحلهٔ جست‌وجوی عامل شما، اسلایدهایی که می‌سازد و سندی که دوباره می‌خواند از همان اعتبار محاسبه می‌شوند، نه از سه ارائه‌دهندهٔ دیگر.

  • Search
  • PPT Task
  • SuperAgent
  • Web Fetch
  • X Search
  • Mindmap
  • Landing Page Task
  • LiveDoc
  • YouTube Subtitling

فراخوانی‌های API داده به ارائه‌دهنده‌های نام‌دار زیر /v1/beta می‌روند — Tavily، Exa، Apollo و بقیهٔ کاتالوگ — هرکدام بر پایهٔ اعلام‌شدهٔ خود.

همهٔ APIها

دروازه کجا تمام می‌شود

  • جابه‌جایی خودکار بین کانال‌ها وجود ندارد — منطق تلاش مجدد آگاهانه در برنامهٔ شما می‌ماند.
  • بودن در کاتالوگ سازگاری را تضمین نمی‌کند؛ هر نوع مدل یک سطح فراخوانی دارد.
  • هیچ محدودیت نرخی در سطح پلتفرم برای فراخوانی مدل مستند نشده، اما محدودیت ارائه‌دهندهٔ بالادست همیشه اعمال می‌شود.
  • اعتبار پیش‌پرداخت است، بازگشت‌پذیر نیست و برداشت نمی‌شود — به همان اندازه که قصد خرج دارید شارژ کنید.

شش پرسش دربارهٔ دروازهٔ LLM

دروازهٔ LLM چیست؟

یک نقطهٔ ورود پیش از بسیاری از ارائه‌دهنده‌های مدل، تا کد شما به‌جای یک دوجین SDK با یک نشانی پایه، یک کلید و یک موجودی حرف بزند. دروازهٔ AI هم همین کار را می‌کند؛ این یکی در کنارش APIهای داده‌ای را هم می‌فروشد که یک عامل لازم دارد.

می‌توانم SDK فعلی OpenAI یا Anthropic را نگه دارم؟

بله. Chat Completions و Responses شکل OpenAI را دارند و Messages بومی است. نشانی‌های پایه https://openapi.felo.ai/api/v1 و https://openapi.felo.ai/api هستند — یک سطح بالاتر، چون همان SDK خودش /v1/messages را اضافه می‌کند.

چطور بدانم کدام مدل را صدا بزنم؟

GET /api/v1/models همهٔ نوع‌ها را با کانال‌ها و نرخ‌هایشان فهرست می‌کند؛ مدل‌های ویدیو و تصمیم فهرست جداگانه دارند. model_kind را بخوانید و نقطهٔ پایانی متناظر را صدا بزنید. بودن در فهرست تضمین نمی‌کند هر نقطهٔ پایانی آن مدل را بپذیرد.

اگر ارائه‌دهنده‌ای از کار بیفتد جابه‌جایی هست؟

نه، و این آگاهانه است. فهرست کانال یک انتخاب است نه سیاست تلاش مجدد: فقط اولی فراخوانی می‌شود. جابه‌جایی کار برنامهٔ شماست، چون خطا، بودجه و جایگزینی که واقعاً می‌خواهید همان‌جا دیده می‌شود.

هزینه چقدر است؟

هر مدل یک نرخ فلو دارد که از یک‌دهم قیمت رسمی ارائه‌دهنده شروع می‌شود و کانالی که تعیین می‌کنید نرخ پرداختی را مشخص می‌کند. پیش‌پرداخت، صورت‌حساب به‌ازای هر فراخوانی، اولین شارژ $1، بدون اشتراک.

تصویر، ویدیو و API داده را هم می‌توانم صدا بزنم؟

بله. یک کلید به مدل‌های چت، تصویر، ویدیو و تصمیم و کاتالوگ ⁦5,000+⁩ API پشت /v1/beta می‌رسد — همه از همان اعتبار محاسبه می‌شوند.

با یک فراخوانی امتحان کنید

کلیدی بسازید، شارژ کنید و همان SDKی را که استفاده می‌کنید به یک نشانی پایه اشاره دهید.