قیمت API هوش مصنوعی چگونه محاسبه می‌شود؟ راهنمای Token، مدل‌ها و کاهش هزینه

راهنمای محاسبه قیمت API هوش مصنوعی؛ از Token ورودی و خروجی تا هزینه مدل‌های متن، تصویر، صوت، ویدئو و Agentها و روش‌های عملی کاهش مصرف.

Share
Darvareh API Token
Darvareh API Token

مقدمه

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

در مدل‌های متنی معمولاً تعداد Tokenهای ورودی و خروجی مهم است. در مدل‌های تصویر، تعداد تصویر، کیفیت و Resolution اثر دارد. هزینه مدل‌های صوتی ممکن است بر اساس مدت فایل یا تعداد کاراکتر محاسبه شود و قیمت مدل‌های ویدئویی معمولاً به مدت، ابعاد، Frame Rate و نوع مدل وابسته است.

در سیستم‌های پیشرفته‌تر مانند RAG و AI Agent، یک درخواست کاربر ممکن است چند فراخوانی مدل، جست‌وجوی برداری، Tool Calling، Retry و Fallback ایجاد کند. بنابراین هزینه واقعی این سیستم‌ها فقط قیمت یک پاسخ نیست.

برای محاسبه درست قیمت API هوش مصنوعی باید این موارد را در نظر بگیرید:

  • مدل انتخاب‌شده
  • Token ورودی
  • Token خروجی
  • Cached Token
  • Reasoning Token
  • حجم Context
  • تعداد تصویر
  • کیفیت و ابعاد تصویر
  • مدت صوت
  • مدت و Resolution ویدئو
  • تعداد مراحل Agent
  • Tool Calling
  • RAG
  • Retry
  • Fallback
  • نرخ ارز
  • هزینه زیرساخت و Provider

در این مقاله، روش محاسبه هزینه مدل‌های مختلف را بررسی می‌کنیم و یاد می‌گیریم چگونه مصرف API را در محیط واقعی اندازه‌گیری و کنترل کنیم.

پاسخ کوتاه: قیمت API هوش مصنوعی چگونه محاسبه می‌شود؟

قیمت API هوش مصنوعی براساس مدل و نوع ورودی و خروجی محاسبه می‌شود. در مدل‌های متنی، هزینه معمولاً از مجموع Tokenهای ورودی و خروجی به دست می‌آید. در مدل‌های تصویر، صوت و ویدئو، عواملی مانند تعداد، کیفیت، Resolution و مدت نیز مؤثرند.

فرمول کلی مدل‌های متنی:

هزینه ورودی =
تعداد Token ورودی
÷ ۱٬۰۰۰٬۰۰۰
× قیمت یک میلیون Token ورودی

هزینه خروجی =
تعداد Token خروجی
÷ ۱٬۰۰۰٬۰۰۰
× قیمت یک میلیون Token خروجی

هزینه کل =
هزینه ورودی
+ هزینه خروجی
+ سایر هزینه‌های قابل اعمال

اگر Agent، RAG، ابزار یا Retry داشته باشید، هزینه تمام فراخوانی‌های ایجادشده باید با یکدیگر جمع شوند.

تفاوت قیمت اشتراک با قیمت API هوش مصنوعی

اشتراک یک اپلیکیشن چت با حساب API یکسان نیست.

در اشتراک اپلیکیشن، کاربر معمولاً مبلغ ثابتی برای استفاده از رابط آماده پرداخت می‌کند. محدودیت‌های مصرف نیز توسط همان اپلیکیشن تعیین می‌شوند.

در API، هزینه براساس مصرف واقعی نرم‌افزار محاسبه می‌شود.

ویژگیاشتراک اپلیکیشنAPI هوش مصنوعی
پرداخت ثابت ماهانهمعمولاً بلهمعمولاً خیر
محاسبه بر اساس Tokenبرای کاربر قابل مشاهده نیستمعمولاً بله
استفاده در نرم‌افزارمحدودبله
API Keyمعمولاً نداردبله
کنترل Model IDمحدودبله
اتصال به Backendمستقیم نیستبله
Tool Calling و RAGمحدود به محصولقابل پیاده‌سازی
مدیریت بودجهمحدودقابل برنامه‌ریزی

داشتن اشتراک یک سرویس چت معمولاً به معنی داشتن اعتبار API نیست. برای استفاده برنامه‌نویسی باید حساب API و Billing مربوط به آن را جداگانه بررسی کنید.

Token چیست؟

مدل‌های زبانی متن را مستقیماً به شکل کلمه کامل پردازش نمی‌کنند. متن به واحدهای کوچک‌تری به نام Token تقسیم می‌شود.

Token ممکن است:

  • یک کلمه
  • بخشی از کلمه
  • علامت نگارشی
  • عدد
  • فاصله
  • بخشی از کد

باشد.

تعداد Token دقیقاً با تعداد کلمات برابر نیست. زبان، Tokenizer و مدل بر تعداد Token اثر دارند.

برای مثال، این جمله:

API هوش مصنوعی برای اتصال نرم‌افزارها به مدل‌ها استفاده می‌شود.

ممکن است بسته به Tokenizer به تعداد متفاوتی Token تبدیل شود.

برای تخمین هزینه دقیق، بهتر است از اطلاعات Usage پاسخ API یا Tokenizer سازگار با همان مدل استفاده کنید.

Input Token چیست؟

Input Token تمام Tokenهایی است که به مدل ارسال می‌شوند.

ورودی فقط پیام جدید کاربر نیست و ممکن است شامل این موارد باشد:

  • System Prompt
  • پیام کاربر
  • تاریخچه گفتگو
  • اسناد RAG
  • توضیحات ابزارها
  • JSON Schema
  • نتیجه Toolهای قبلی
  • دستورهای امنیتی
  • نمونه‌های Few-shot
  • Memory
  • Metadata
  • پیام Agentهای دیگر

بنابراین ممکن است پیام کاربر فقط ۲۰ Token باشد، اما درخواست نهایی هزاران Token ورودی داشته باشد.

نمونه:

System Prompt: ۵۰۰ Token
تاریخچه گفتگو: ۳۰۰۰ Token
اسناد RAG: ۶۰۰۰ Token
پیام جدید کاربر: ۵۰ Token
Tool Schema: ۱۲۰۰ Token

مجموع ورودی:
۱۰٬۷۵۰ Token

اگر فقط متن پیام کاربر را برای محاسبه هزینه در نظر بگیرید، تخمین شما بسیار کمتر از مصرف واقعی خواهد بود.

Output Token چیست؟

Output Token مقدار محتوایی است که مدل تولید می‌کند.

خروجی می‌تواند شامل:

  • پاسخ متنی
  • کد
  • JSON
  • Tool Call
  • Structured Output
  • بعضی Tokenهای استدلالی، بسته به مدل و API

باشد.

قیمت Output Token در بسیاری از مدل‌ها بیشتر از Input Token است؛ زیرا تولید خروجی معمولاً منابع محاسباتی بیشتری مصرف می‌کند.

برای کاهش هزینه خروجی:

  • پاسخ را کوتاه درخواست کنید
  • قالب خروجی تعیین کنید
  • max_tokens یا سقف خروجی مناسب قرار دهید
  • از مدل نخواهید اطلاعات تکراری تولید کند
  • Structured Output محدود بسازید
  • توضیح طولانی را فقط هنگام نیاز فعال کنید

Cached Token چیست؟

بعضی مدل‌ها و Providerها از Prompt Caching پشتیبانی می‌کنند. اگر بخش بزرگی از Prompt در درخواست‌های بعدی تکرار شود، ممکن است Tokenهای کش‌شده با قیمت متفاوتی محاسبه شوند.

بخش‌های مناسب Cache:

  • System Prompt ثابت
  • دستورهای سازمانی
  • Tool Schema
  • مستندات ثابت
  • Context پایه
  • نمونه‌های Few-shot

Prompt Caching می‌تواند هزینه و Latency را کاهش دهد، اما چند شرط دارد:

  • مدل باید از Cache پشتیبانی کند
  • ساختار Prompt باید پایدار باشد
  • بخش ثابت معمولاً باید قبل از بخش متغیر قرار گیرد
  • حداقل طول برای Cache ممکن است وجود داشته باشد
  • Cache ممکن است TTL داشته باشد
  • Cache Hit تضمین‌شده نیست

اطلاعات Usage ممکن است Tokenهای Cached را جدا نشان دهد:

{
  "usage": {
    "prompt_tokens": 12000,
    "completion_tokens": 500,
    "prompt_tokens_details": {
      "cached_tokens": 8000
    }
  }
}

ساختار دقیق Usage به مدل و Provider بستگی دارد.

Reasoning Token چیست؟

مدل‌های استدلالی ممکن است پیش از تولید پاسخ نهایی، پردازش بیشتری انجام دهند. این بخش می‌تواند با عنوان‌هایی مانند Reasoning Token یا Thinking Token گزارش شود.

Reasoning بیشتر ممکن است کیفیت را برای مسائل پیچیده افزایش دهد، اما:

  • هزینه بیشتر می‌شود
  • Latency افزایش می‌یابد
  • برای وظایف ساده ارزش اقتصادی ندارد

مدل استدلالی برای این موارد مناسب‌تر است:

  • Debug پیچیده
  • تحلیل معماری
  • حل مسئله چندمرحله‌ای
  • برنامه‌ریزی Agent
  • تحلیل امنیتی
  • استدلال ریاضی
  • تصمیم‌سازی پیچیده

برای طبقه‌بندی ساده، استخراج فیلد، ترجمه کوتاه یا پاسخ FAQ معمولاً مدل سریع و اقتصادی مناسب‌تر است.

فرمول محاسبه قیمت مدل متنی

فرض کنید قیمت یک مدل به‌صورت زیر است:

ورودی:
A دلار برای یک میلیون Token

خروجی:
B دلار برای یک میلیون Token

اگر درخواست دارای:

۲۰٬۰۰۰ Token ورودی
۲٬۰۰۰ Token خروجی

باشد:

هزینه ورودی =
۲۰٬۰۰۰ ÷ ۱٬۰۰۰٬۰۰۰ × A

هزینه خروجی =
۲٬۰۰۰ ÷ ۱٬۰۰۰٬۰۰۰ × B

هزینه کل =
هزینه ورودی + هزینه خروجی

مثال فرضی:

قیمت ورودی:
۱ دلار برای یک میلیون Token

قیمت خروجی:
۴ دلار برای یک میلیون Token

محاسبه:

هزینه ورودی =
۲۰٬۰۰۰ ÷ ۱٬۰۰۰٬۰۰۰ × ۱
= ۰٫۰۲ دلار

هزینه خروجی =
۲٬۰۰۰ ÷ ۱٬۰۰۰٬۰۰۰ × ۴
= ۰٫۰۰۸ دلار

هزینه کل =
۰٫۰۲۸ دلار

این اعداد فقط مثال آموزشی هستند و قیمت واقعی مدل‌ها ممکن است تغییر کند.

تبدیل هزینه دلاری به ریالی

اگر قیمت پایه مدل دلاری باشد، هزینه ریالی به نرخ تبدیل ارز وابسته است.

فرمول ساده:

هزینه ریالی خام =
هزینه دلاری
× نرخ تبدیل دلار به ریال

هزینه نهایی ممکن است شامل این موارد نیز باشد:

  • هزینه Provider
  • هزینه انتقال و پرداخت
  • هزینه زیرساخت
  • هزینه Routing
  • هزینه Monitoring
  • هزینه پشتیبانی
  • حاشیه سرویس
  • مالیات یا هزینه‌های قانونی، در صورت اعمال

بنابراین مقایسه مبلغ کسرشده فقط با قیمت خام Provider ممکن است کامل نباشد. پلتفرم باید روش قیمت‌گذاری، نرخ تبدیل و هزینه نهایی را تا حد امکان شفاف نمایش دهد.

حداقل هزینه هر درخواست

بعضی زیرساخت‌ها ممکن است حداقل هزینه‌ای برای هر درخواست داشته باشند.

اگر هزینه محاسبه‌شده از حداقل کمتر باشد:

هزینه نهایی =
حداقل هزینه درخواست

این سیاست برای پوشش هزینه‌های ثابت پردازش، Routing، Logging و Billing استفاده می‌شود.

وجود حداقل هزینه باید در مستندات قیمت‌گذاری اعلام شود، زیرا روی درخواست‌های بسیار کوچک اثر بیشتری دارد.

چرا هزینه یک درخواست با شمارش Token پیام کاربر برابر نیست؟

هزینه براساس کل Payload پردازش‌شده محاسبه می‌شود، نه فقط سؤال جدید.

مواردی که ممکن است فراموش شوند:

  • System Prompt
  • تاریخچه کامل گفتگو
  • اسناد RAG
  • Tool Schema
  • خروجی ابزار
  • پیام‌های Agent
  • Retry
  • Fallback
  • Reasoning
  • تصویر ورودی
  • حداقل هزینه درخواست
  • نرخ تبدیل
  • هزینه‌های غیرTokenی مدل

اگر درخواست چند بار به دلیل Retry اجرا شود، هر تلاش می‌تواند مصرف جداگانه داشته باشد.

هزینه Context Window

Context Window ظرفیت مدل است، اما استفاده از Context بزرگ رایگان نیست. هر Token واردشده می‌تواند هزینه ایجاد کند.

برای مثال، اگر در هر درخواست ۵۰ هزار Token تاریخچه ارسال شود، حتی پاسخ کوتاه ممکن است هزینه قابل‌توجهی داشته باشد.

روش‌های کاهش هزینه Context:

  • محدود کردن تاریخچه
  • خلاصه‌سازی مکالمه
  • حذف پیام‌های نامرتبط
  • بازیابی هدفمند اسناد
  • کاهش تعداد Chunkهای RAG
  • استفاده از Metadata Filter
  • فشرده کردن Tool Result
  • شروع Session جدید هنگام تغییر موضوع
  • استفاده از حافظه ساختاریافته
  • نگهداری تصمیم‌ها به‌جای کل گفتگو

Context Window بزرگ‌تر به این معنی نیست که باید همیشه از تمام ظرفیت آن استفاده کنید.

هزینه Streaming

Streaming پاسخ را به‌تدریج ارسال می‌کند. در اغلب موارد، Streaming قیمت Token را کاهش نمی‌دهد.

مزیت Streaming:

  • نمایش سریع‌تر پاسخ
  • تجربه کاربری بهتر
  • کاهش زمان انتظار ادراکی
  • امکان توقف زودهنگام توسط کاربر

اگر کاربر پاسخ را زود متوقف کند و Provider تولید را لغو کند، ممکن است Output Token کمتری مصرف شود. اما این رفتار باید در همان API آزمایش شود.

در Streaming، اطلاعات Usage ممکن است:

  • در Chunk نهایی ارسال شود
  • نیازمند گزینه خاص باشد
  • در بعضی مدل‌ها ارائه نشود
  • با تأخیر در Log ثبت شود

برای Billing نباید فقط به متن دریافت‌شده در UI متکی باشید.

هزینه Structured Outputs

Structured Output معمولاً هزینه مستقلی جدا از Token ندارد، اما می‌تواند بر تعداد Tokenها و Retry اثر بگذارد.

مزایای اقتصادی:

  • خروجی کوتاه‌تر
  • Parsing ساده‌تر
  • کاهش پاسخ نامعتبر
  • کاهش Retry
  • اتصال مستقیم به Workflow

نمونه:

{
  "category": "billing",
  "priority": "high",
  "requires_human": true
}

در مقابل، اگر از مدل بخواهید توضیحی چندصفحه‌ای تولید کند و سپس آن را Parse کنید، Token خروجی و احتمال خطا افزایش می‌یابد.

هزینه Tool Calling

Tool Calling می‌تواند چند مرحله ایجاد کند:

کاربر
→ مدل
→ Tool Call
→ اجرای ابزار
→ نتیجه ابزار
→ مدل
→ پاسخ نهایی

در این جریان حداقل دو فراخوانی مدل ممکن است انجام شود:

  1. انتخاب ابزار
  2. تولید پاسخ نهایی پس از مشاهده نتیجه

اگر ابزار دیگری لازم باشد، مراحل بیشتر می‌شوند.

هزینه Tool Calling شامل:

  • Tokenهای مدل در هر Turn
  • Tool Schema
  • نتیجه ابزار
  • زیرساخت اجرای ابزار
  • API خارجی
  • Retry
  • Log و Monitoring

است.

هزینه RAG

یک سیستم RAG معمولاً این مراحل را دارد:

  1. دریافت سؤال
  2. ساخت Embedding سؤال
  3. جست‌وجوی Vector Database
  4. بازیابی Chunkها
  5. افزودن Chunkها به Prompt
  6. فراخوانی مدل زبانی
  7. تولید پاسخ

هزینه RAG می‌تواند شامل این موارد باشد:

  • Embedding اسناد
  • Embedding سؤال
  • Vector Database
  • Storage
  • Search
  • Reranking
  • Token اسناد بازیابی‌شده
  • مدل تولید پاسخ
  • Citation و پردازش خروجی

هزینه یک‌باره Indexing

برای ساخت اولیه پایگاه دانش، تمام اسناد Chunk و Embedding می‌شوند.

هزینه Indexing =
مجموع Token اسناد
× قیمت Embedding

هزینه هر Query

هزینه Query =
Embedding سؤال
+ جست‌وجوی برداری
+ Reranking
+ Token Context بازیابی‌شده
+ Token خروجی مدل

بزرگ کردن تعداد Chunkهای بازیابی‌شده همیشه کیفیت را بهتر نمی‌کند و هزینه ورودی را افزایش می‌دهد.

هزینه AI Agent

در Agent، یک درخواست کاربر ممکن است چند Turn ایجاد کند.

نمونه:

۱. مدل درخواست را تحلیل می‌کند
۲. ابزار جست‌وجو را فراخوانی می‌کند
۳. مدل نتیجه را بررسی می‌کند
۴. API سفارش را فراخوانی می‌کند
۵. مدل درخواست تأیید می‌کند
۶. کاربر تأیید می‌کند
۷. ابزار ثبت Ticket اجرا می‌شود
۸. مدل پاسخ نهایی می‌سازد

هزینه Agent:

هزینه Agent =
مجموع هزینه تمام Model Callها
+ Tool Callها
+ RAG
+ Retry
+ Fallback
+ حافظه و Storage
+ Monitoring

بنابراین بهتر است به‌جای Cost per Request از این معیار استفاده کنید:

Cost per Successful Task

Cost per Successful Task چیست؟

ممکن است مدل ارزان در اولین تلاش وظیفه را حل نکند و چند Retry نیاز داشته باشد. مدل گران‌تر ممکن است با مراحل کمتر موفق شود.

فرمول:

Cost per Successful Task =
هزینه تمام تلاش‌ها
÷ تعداد Taskهای موفق

مثال:

مدل A:
هزینه هر تلاش ۰٫۰۱ دلار
نرخ موفقیت ۳۰ درصد

مدل B:
هزینه هر تلاش ۰٫۰۳ دلار
نرخ موفقیت ۹۰ درصد

مدل A لزوماً اقتصادی‌تر نیست، زیرا برای رسیدن به موفقیت ممکن است تلاش‌های بیشتری لازم باشد.

در Agentها این موارد را هم اندازه‌گیری کنید:

  • تعداد Turn
  • تعداد Tool Call
  • Retry
  • زمان توسعه‌دهنده
  • نرخ نیاز به مداخله انسانی
  • نرخ شکست
  • Latency
  • Regression

هزینه Multi-Agent

در سیستم Multi-Agent چند Agent تخصصی با یکدیگر کار می‌کنند.

برای مثال:

  • Triage Agent
  • Research Agent
  • Analysis Agent
  • Reviewer Agent
  • Final Response Agent

هر Agent می‌تواند یک یا چند Model Call داشته باشد. اگر Agentها موازی اجرا شوند، Latency کاهش می‌یابد، اما هزینه کل افزایش پیدا می‌کند.

فرمول مفهومی:

هزینه Multi-Agent =
مجموع هزینه تمام Agentها
+ Orchestration
+ Shared Context
+ Review
+ Retry

Multi-Agent را فقط زمانی استفاده کنید که تخصص و جداسازی وظایف ارزش واقعی ایجاد کند.

قیمت API تولید تصویر

مدل‌های تصویر ممکن است به روش‌های مختلف قیمت‌گذاری شوند:

  • قیمت ثابت هر تصویر
  • ابعاد تصویر
  • کیفیت
  • تعداد تصویر
  • Token ورودی
  • Token خروجی تصویری
  • تعداد مراحل
  • نوع مدل
  • ویرایش یا تولید
  • Reference Image
  • Batch

عوامل مؤثر:

Resolution

تصویر بزرگ‌تر معمولاً پردازش بیشتری نیاز دارد.

نمونه ابعاد:

1024×1024
1536×1024
1024×1536

کیفیت

سطوحی مانند:

low
medium
high

می‌توانند قیمت متفاوت داشته باشند.

تعداد خروجی

اگر n=4 باشد، ممکن است هزینه چهار تصویر محاسبه شود.

ورودی تصویر

در Image Editing یا Image-to-Image، پردازش تصویر ورودی نیز ممکن است هزینه داشته باشد.

Tokenهای تصویری

بعضی مدل‌ها هزینه را بر اساس Tokenهای تصویری محاسبه می‌کنند. در این حالت، فقط usage متنی پاسخ برای تخمین کافی نیست.

چرا هزینه تصویر از Token نشان‌داده‌شده بیشتر است؟

دلایل احتمالی:

  • هزینه خروجی تصویر جدا محاسبه شده است
  • Resolution بالاتر انتخاب شده است
  • کیفیت High بوده است
  • چند تصویر تولید شده است
  • Token تصویری جداست
  • هزینه Generation در Usage متنی نمایش داده نشده است
  • حداقل هزینه درخواست اعمال شده است
  • نرخ تبدیل ارز و هزینه سرویس اضافه شده است

برای محاسبه دقیق، باید مدل قیمت‌گذاری همان Endpoint تصویری را بررسی کرد.

قیمت API تحلیل تصویر

در مدل‌های Vision، تصویر ورودی می‌تواند به Token تصویری تبدیل شود.

عوامل مؤثر:

  • ابعاد تصویر
  • Detail Level
  • تعداد تصاویر
  • مدل
  • Prompt متنی
  • پاسخ خروجی
  • Base64 یا URL
  • پیش‌پردازش Provider

اگر چند تصویر ارسال کنید، مصرف هر تصویر می‌تواند به هزینه اضافه شود.

برای کاهش هزینه:

  • تصویر را به اندازه لازم Resize کنید
  • از Detail پایین‌تر برای تحلیل عمومی استفاده کنید
  • تصاویر تکراری را Cache کنید
  • فقط بخش لازم را Crop کنید
  • تعداد تصویر را محدود کنید

قیمت تبدیل گفتار به متن

Speech-to-Text معمولاً براساس مدت صوت قیمت‌گذاری می‌شود.

فرمول کلی:

هزینه =
مدت صوت
× قیمت هر دقیقه یا ساعت

عوامل دیگر:

  • مدل
  • زبان
  • Diarization
  • Timestamp
  • کیفیت صوت
  • Realtime یا Batch
  • تعداد کانال
  • Translation

برای کاهش هزینه:

  • سکوت‌های طولانی را حذف کنید
  • فایل‌ها را فشرده کنید
  • بخش‌های غیرضروری را ارسال نکنید
  • Batch Processing را بررسی کنید
  • مدل مناسب کیفیت صوت را انتخاب کنید

قیمت تبدیل متن به گفتار

Text-to-Speech ممکن است براساس موارد زیر قیمت‌گذاری شود:

  • تعداد کاراکتر
  • Token
  • مدت صوت خروجی
  • نوع صدا
  • کیفیت
  • مدل
  • Voice Cloning
  • Realtime

فرمول کلی:

هزینه =
تعداد کاراکتر یا Token ورودی
× نرخ مدل

صدای باکیفیت‌تر یا مدل چندزبانه ممکن است قیمت بیشتری داشته باشد.

قیمت API تولید ویدئو

تولید ویدئو از پرهزینه‌ترین کاربردهای AI API است.

عوامل مهم:

  • مدت ویدئو
  • Resolution
  • Frame Rate
  • نسبت تصویر
  • کیفیت
  • مدل
  • صدا
  • Text-to-Video
  • Image-to-Video
  • Reference Video
  • تعداد Generation

یک فرمول عمومی ثابت برای تمام مدل‌های ویدئویی وجود ندارد.

بعضی مدل‌ها قیمت ثابت برای هر ثانیه دارند. برخی هزینه را بر اساس Tokenهای ویدئویی محاسبه می‌کنند.

فرمول نمونه Token ویدئویی ممکن است شکلی شبیه این داشته باشد:

Video Tokens =
عرض
× ارتفاع
× مدت
× Frame Rate
÷ ضریب مدل

ضریب و فرمول دقیق باید از مستندات همان مدل دریافت شود.

تأثیر Resolution بر قیمت ویدئو

افزایش عرض و ارتفاع باعث رشد تعداد Pixelها می‌شود.

برای مثال، دو برابر کردن عرض و ارتفاع به معنی چهار برابر شدن تعداد Pixel است:

عرض × ۲
ارتفاع × ۲

تعداد Pixel:
× ۴

بنابراین افزایش Resolution می‌تواند هزینه را به‌صورت غیرخطی افزایش دهد.

تأثیر مدت ویدئو

اگر قیمت براساس ثانیه یا Token ویدئویی باشد، افزایش مدت مستقیماً هزینه را افزایش می‌دهد.

برای کنترل هزینه:

  • ابتدا نسخه کوتاه تولید کنید
  • Prompt را قبل از Generation نهایی آزمایش کنید
  • از Resolution پایین برای Preview استفاده کنید
  • خروجی‌های ناموفق را تحلیل کنید
  • تعداد Variation را محدود کنید
  • Seed یا Reference مناسب استفاده کنید

هزینه Retry

اگر درخواست به دلیل Timeout یا خطای موقت دوباره ارسال شود، ممکن است تلاش قبلی نیز مصرف ایجاد کرده باشد.

Retry باید فقط برای خطاهای مناسب انجام شود:

  • Timeout
  • 429
  • خطای شبکه
  • ۵xx

این خطاها معمولاً نباید Retry شوند:

  • 401
  • 403
  • Model not found
  • ورودی نامعتبر
  • موجودی ناکافی

Retry نامحدود می‌تواند هزینه را چند برابر کند.

هزینه Fallback

Fallback یعنی پس از شکست مدل اصلی، مدل دیگری استفاده شود.

مدل اصلی
→ شکست
→ مدل جایگزین

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

بنابراین:

هزینه Fallback =
هزینه تلاش اول
+ هزینه مدل جایگزین

Fallback باید:

  • برای خطاهای مناسب فعال شود
  • سقف تعداد داشته باشد
  • مدل سازگار انتخاب کند
  • در Observability ثبت شود
  • در محاسبه Billing لحاظ شود

هزینه Batch API

Batch Processing برای کارهایی مناسب است که پاسخ فوری لازم ندارند:

  • پردازش هزاران متن
  • Embedding اسناد
  • طبقه‌بندی
  • خلاصه‌سازی انبوه
  • تولید Metadata
  • ارزیابی Dataset

بعضی Providerها برای Batch قیمت کمتر یا Rate Limit متفاوت ارائه می‌کنند.

مزایا:

  • هزینه کمتر در بعضی سرویس‌ها
  • پردازش انبوه
  • مدیریت بهتر Queue
  • مناسب Taskهای آفلاین

محدودیت:

  • پاسخ فوری نیست
  • مدیریت Job لازم است
  • خطای هر Item باید بررسی شود
  • نتیجه ممکن است با تأخیر آماده شود

چگونه هزینه ماهانه را تخمین بزنیم؟

ابتدا این متغیرها را مشخص کنید:

  • کاربران فعال روزانه
  • درخواست هر کاربر
  • Token ورودی متوسط
  • Token خروجی متوسط
  • روزهای فعالیت
  • نرخ Retry
  • درصد Fallback
  • درخواست‌های RAG
  • تعداد Tool Call
  • نوع مدل

فرمول ساده:

درخواست ماهانه =
کاربران فعال روزانه
× درخواست هر کاربر
× روزهای ماه

Token ورودی ماهانه:

درخواست ماهانه
× میانگین Token ورودی

Token خروجی ماهانه:

درخواست ماهانه
× میانگین Token خروجی

سپس قیمت مدل اعمال می‌شود.

مثال تخمین هزینه ماهانه

فرض کنید:

۱۰۰۰ کاربر فعال روزانه
۵ درخواست برای هر کاربر
۳۰ روز
۱۵۰۰ Token ورودی در هر درخواست
۳۰۰ Token خروجی در هر درخواست

تعداد درخواست:

۱۰۰۰ × ۵ × ۳۰
= ۱۵۰٬۰۰۰ درخواست

Token ورودی:

۱۵۰٬۰۰۰ × ۱۵۰۰
= ۲۲۵٬۰۰۰٬۰۰۰ Token

Token خروجی:

۱۵۰٬۰۰۰ × ۳۰۰
= ۴۵٬۰۰۰٬۰۰۰ Token

حالا باید نرخ ورودی و خروجی مدل انتخاب‌شده اعمال شود. سپس هزینه Retry، Fallback، Embedding و زیرساخت اضافه شود.

محاسبه هزینه با Python

from dataclasses import dataclass


@dataclass
class ModelPrice:
    input_per_million: float
    output_per_million: float
    cached_input_per_million: (
        float | None
    ) = None


def calculate_text_cost(
    input_tokens: int,
    output_tokens: int,
    price: ModelPrice,
    cached_tokens: int = 0,
) -> dict:
    normal_input_tokens = max(
        input_tokens - cached_tokens,
        0,
    )

    input_cost = (
        normal_input_tokens
        / 1_000_000
        * price.input_per_million
    )

    cached_rate = (
        price.cached_input_per_million
        if price.cached_input_per_million
        is not None
        else price.input_per_million
    )

    cached_cost = (
        cached_tokens
        / 1_000_000
        * cached_rate
    )

    output_cost = (
        output_tokens
        / 1_000_000
        * price.output_per_million
    )

    total_cost = (
        input_cost
        + cached_cost
        + output_cost
    )

    return {
        "input_cost": input_cost,
        "cached_cost": cached_cost,
        "output_cost": output_cost,
        "total_cost": total_cost,
    }

استفاده با قیمت فرضی:

price = ModelPrice(
    input_per_million=1.0,
    output_per_million=4.0,
    cached_input_per_million=0.2,
)

result = calculate_text_cost(
    input_tokens=20_000,
    output_tokens=2_000,
    cached_tokens=8_000,
    price=price,
)

print(result)

قیمت‌ها را Hard-code نکنید. بهتر است از Model Registry یا تنظیمات قابل به‌روزرسانی استفاده کنید.

محاسبه هزینه با JavaScript

function calculateTextCost({
  inputTokens,
  outputTokens,
  cachedTokens = 0,
  inputPricePerMillion,
  outputPricePerMillion,
  cachedPricePerMillion,
}) {
  const normalInputTokens =
    Math.max(
      inputTokens - cachedTokens,
      0
    );

  const inputCost =
    normalInputTokens
    / 1_000_000
    * inputPricePerMillion;

  const cachedRate =
    cachedPricePerMillion
    ?? inputPricePerMillion;

  const cachedCost =
    cachedTokens
    / 1_000_000
    * cachedRate;

  const outputCost =
    outputTokens
    / 1_000_000
    * outputPricePerMillion;

  return {
    inputCost,
    cachedCost,
    outputCost,
    totalCost:
      inputCost
      + cachedCost
      + outputCost,
  };
}

ثبت Usage در Python

اتصال به API درواره:

import os

from openai import OpenAI


client = OpenAI(
    api_key=os.environ[
        "DARVAREH_API_KEY"
    ],
    base_url=(
        "https://api.darvareh.ir/v1"
    ),
)

response = (
    client.chat.completions.create(
        model="YOUR_MODEL_ID",
        messages=[
            {
                "role": "user",
                "content": (
                    "API هوش مصنوعی "
                    "را توضیح بده."
                ),
            }
        ],
    )
)

usage = response.usage

print({
    "input_tokens":
        usage.prompt_tokens,
    "output_tokens":
        usage.completion_tokens,
    "total_tokens":
        usage.total_tokens,
})

ساختار Usage ممکن است بسته به مدل متفاوت باشد.

مدیریت قیمت مدل‌ها

یک جدول Model Registry بسازید:

CREATE TABLE model_pricing (
    model_id TEXT PRIMARY KEY,
    input_price_per_million NUMERIC,
    output_price_per_million NUMERIC,
    cached_input_price_per_million NUMERIC,
    pricing_unit TEXT NOT NULL,
    currency TEXT NOT NULL,
    effective_from TIMESTAMPTZ NOT NULL,
    effective_to TIMESTAMPTZ
);

قیمت باید دارای تاریخ اعتبار باشد. اگر قیمت تغییر کند، مصرف قبلی نباید با قیمت جدید دوباره محاسبه شود.

برای هر درخواست ثبت کنید:

  • Model ID
  • قیمت در زمان درخواست
  • نرخ ارز در زمان درخواست
  • Token
  • هزینه خام
  • هزینه نهایی
  • Request ID

نرخ ارز و تاریخچه قیمت

اگر Billing ریالی و قیمت پایه دلاری است، نرخ ارز باید در زمان درخواست ثبت شود.

ساختار مناسب:

CREATE TABLE exchange_rates (
    id UUID PRIMARY KEY,
    base_currency TEXT NOT NULL,
    quote_currency TEXT NOT NULL,
    rate NUMERIC NOT NULL,
    effective_at TIMESTAMPTZ NOT NULL
);

در Usage Log بهتر است exchange_rate_id یا نرخ Snapshotشده ذخیره شود.

این کار باعث می‌شود:

  • صورتحساب قابل بازسازی باشد
  • تغییر نرخ فقط روی مصرف آینده اعمال شود
  • اختلاف مالی قابل بررسی باشد
  • گزارش تاریخی دقیق بماند

کنترل هزینه برای هر کاربر

در SaaS، مصرف باید به کاربر یا Organization نسبت داده شود.

اطلاعات پیشنهادی:

{
  "user_id": "user-42",
  "organization_id": "org-1",
  "api_key_id": "key-10",
  "model_id": "MODEL_ID",
  "input_tokens": 1200,
  "output_tokens": 300,
  "cost": 0.0024,
  "request_id": "req-123"
}

بودجه می‌تواند در چند سطح باشد:

  • حساب
  • Organization
  • API Key
  • کاربر
  • پروژه
  • مدل
  • روزانه
  • ماهانه

محدود کردن Max Tokens

برای جلوگیری از خروجی بسیار بلند:

response = (
    client.chat.completions.create(
        model="YOUR_MODEL_ID",
        messages=messages,
        max_tokens=500,
    )
)

بعضی مدل‌ها به‌جای max_tokens از پارامتر دیگری مانند max_completion_tokens استفاده می‌کنند. سازگاری Model ID را بررسی کنید.

سقف بیش از حد پایین ممکن است پاسخ را ناقص کند. مقدار باید متناسب با Task باشد.

کاهش هزینه با Model Routing

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

نمونه:

وظیفهمدل پیشنهادی
طبقه‌بندیسریع و اقتصادی
استخراج اطلاعاتمدل کوچک با خروجی ساختاریافته
خلاصه‌سازیمدل استاندارد
استدلال پیچیدهمدل قوی
کدنویسیمدل Coding
تصویرمدل تصویری متناسب با کیفیت
Preview ویدئوResolution پایین
خروجی نهایی ویدئومدل و کیفیت بالاتر

Router می‌تواند نوع Task، ریسک، بودجه و Latency را بررسی کند.

کاهش هزینه RAG

  • Chunk مناسب بسازید
  • تعداد نتایج را محدود کنید
  • Metadata Filter اعمال کنید
  • Hybrid Search استفاده کنید
  • Reranking انجام دهید
  • اسناد تکراری را حذف کنید
  • Context را فشرده کنید
  • پاسخ‌های پرتکرار را Cache کنید
  • Embedding سند را دوباره نسازید
  • فقط اسناد تغییرکرده را Re-index کنید

کاهش هزینه Agent

  • سقف Turn تعیین کنید
  • Tool Call تکراری را تشخیص دهید
  • نتیجه ابزار را خلاصه کنید
  • Agentهای غیرضروری را حذف کنید
  • Task ساده را به Workflow تبدیل کنید
  • مدل سریع برای Triage استفاده کنید
  • Human Approval را فقط برای عملیات حساس قرار دهید
  • Retry را محدود کنید
  • Deadline و Budget تعریف کنید
  • Context Agentها را جدا کنید

Cache پاسخ

برای درخواست‌های قطعی یا پرتکرار می‌توان پاسخ را Cache کرد.

Cache Key باید شامل موارد زیر باشد:

  • Model ID
  • Prompt Version
  • ورودی
  • تنظیمات
  • Tenant
  • زبان
  • نسخه داده

برای داده شخصی، پویا یا حساس، Cache باید Scope و TTL مناسب داشته باشد.

Monitoring هزینه

Metricهای ضروری:

  • هزینه روزانه
  • هزینه ماهانه
  • هزینه هر مدل
  • هزینه هر API Key
  • هزینه هر کاربر
  • هزینه هر Organization
  • Cost per Request
  • Cost per Successful Task
  • Token ورودی
  • Token خروجی
  • Cache Hit Rate
  • Retry Rate
  • Fallback Rate
  • Tool Calls
  • Agent Turns

Alertها:

  • عبور از بودجه روزانه
  • رشد ناگهانی مصرف
  • افزایش Output Token
  • افزایش Retry
  • استفاده از مدل گران غیرمنتظره
  • افزایش مصرف API Key
  • کاهش Cache Hit
  • Loop Agent

خطاهای رایج در محاسبه قیمت

محاسبه فقط پیام آخر

تاریخچه، System Prompt و RAG نادیده گرفته می‌شوند.

استفاده از قیمت یکسان برای ورودی و خروجی

در بسیاری از مدل‌ها قیمت متفاوت است.

نادیده گرفتن Cached Token

ممکن است قیمت متفاوتی داشته باشد.

نادیده گرفتن Tool Loop

یک درخواست کاربر چند Model Call ایجاد می‌کند.

نادیده گرفتن Retry و Fallback

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

محاسبه تصویر از روی Token متن

هزینه Generation یا Token تصویری ممکن است جدا باشد.

استفاده از قیمت فعلی برای Usage تاریخی

قیمت و نرخ ارز باید Snapshot شوند.

Hard-code کردن قیمت‌ها

قیمت مدل‌ها تغییر می‌کند و نیاز به Registry دارد.

نداشتن حداقل هزینه

اگر پلتفرم حداقل هزینه اعمال می‌کند، باید در Calculator لحاظ شود.

انتخاب API هوش مصنوعی ارزان

«ارزان» فقط به قیمت Token مربوط نیست.

معیارهای درست:

  • Cost per Successful Task
  • کیفیت پاسخ
  • Retry
  • Latency
  • پایداری
  • Rate Limit
  • Context
  • Tool Calling
  • هزینه توسعه
  • هزینه Review
  • Fallback
  • دسترسی و روش پرداخت

مدلی با قیمت بالاتر ممکن است با مراحل کمتر، نتیجه اقتصادی‌تری ایجاد کند.

قیمت API هوش مصنوعی درواره

درواره یک API سازگار با OpenAI ارائه می‌کند و توسعه‌دهندگان می‌توانند از طریق آن به مدل‌های مختلف دسترسی داشته باشند.

Base URL:

https://api.darvareh.ir/v1

قیمت هر مدل می‌تواند بر اساس موارد زیر متفاوت باشد:

  • Provider
  • مدل
  • نوع ورودی و خروجی
  • Token
  • تصویر
  • صوت
  • ویدئو
  • نرخ ارز
  • سیاست قیمت‌گذاری

پیش از استفاده:

  1. صفحه مدل را بررسی کنید
  2. واحد قیمت‌گذاری را بخوانید
  3. ورودی و خروجی را جدا ببینید
  4. ویژگی‌های غیرTokenی را بررسی کنید
  5. درخواست آزمایشی ارسال کنید
  6. Usage و مبلغ کسرشده را مقایسه کنید
  7. سپس تخمین Production بسازید

چک‌لیست کنترل هزینه Production

قیمت

  • قیمت مدل ثبت شده است
  • واحد قیمت‌گذاری مشخص است
  • ورودی و خروجی جدا هستند
  • تاریخ اعتبار قیمت وجود دارد
  • نرخ ارز Snapshot می‌شود

Usage

  • Token ثبت می‌شود
  • تصویر و ویدئو جدا ثبت می‌شوند
  • Tool Call ثبت می‌شود
  • Retry و Fallback ثبت می‌شوند
  • Request ID وجود دارد

بودجه

  • سقف روزانه وجود دارد
  • سقف ماهانه وجود دارد
  • بودجه API Key تعریف شده است
  • Alert فعال است
  • رفتار پس از عبور از بودجه مشخص است

بهینه‌سازی

  • Model Routing وجود دارد
  • Context محدود است
  • Max Tokens تعیین شده است
  • Cache بررسی شده است
  • Agent Loop محدود است
  • Batch برای Taskهای آفلاین بررسی شده است

امنیت

  • API Key در Frontend نیست
  • مصرف هر Tenant جداست
  • Rate Limit وجود دارد
  • سوءاستفاده شناسایی می‌شود
  • کلید افشاشده سریع ابطال می‌شود

پرسش‌های متداول

قیمت API هوش مصنوعی چگونه محاسبه می‌شود؟

در مدل متنی معمولاً براساس Token ورودی و خروجی و در مدل‌های تصویر، صوت و ویدئو براساس واحدهایی مانند تعداد، کیفیت، Resolution و مدت محاسبه می‌شود.

Token چیست؟

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

آیا Token ورودی و خروجی قیمت یکسان دارند؟

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

آیا System Prompt هم هزینه دارد؟

بله. تمام محتوای ارسال‌شده به مدل بخشی از Input Token است.

آیا تاریخچه چت هزینه دارد؟

بله. اگر تاریخچه در هر درخواست دوباره ارسال شود، Token ورودی ایجاد می‌کند.

Streaming ارزان‌تر است؟

معمولاً خیر. Streaming روش دریافت پاسخ را تغییر می‌دهد.

آیا RAG هزینه را افزایش می‌دهد؟

RAG هزینه Embedding، جست‌وجو، Context اسناد و تولید پاسخ دارد، اما می‌تواند دقت را افزایش و Hallucination را کاهش دهد.

Agent چقدر هزینه دارد؟

به تعداد Turn، مدل، Tool Call، RAG، Retry و Fallback وابسته است. یک درخواست کاربر ممکن است چند فراخوانی مدل ایجاد کند.

چرا هزینه تصویر با Token متن برابر نیست؟

زیرا تولید تصویر ممکن است هزینه مستقل، Token تصویری، کیفیت، Resolution یا قیمت ثابت هر Generation داشته باشد.

چرا هزینه ویدئو زیاد است؟

ویدئو شامل تعداد زیادی Frame و Pixel است و مدت، Resolution، Frame Rate و مدل بر هزینه اثر دارند.

Cached Token چیست؟

بخشی از Prompt تکراری است که در مدل‌های پشتیبان Cache ممکن است با قیمت متفاوت پردازش شود.

Reasoning Token چیست؟

Token یا ظرفیت محاسباتی مربوط به استدلال داخلی بعضی مدل‌هاست و می‌تواند هزینه و Latency را افزایش دهد.

چگونه هزینه را کاهش دهیم؟

مدل مناسب انتخاب کنید، Context را محدود کنید، Max Tokens تعیین کنید، Cache و Batch را بررسی کنید و Agent Loop و Retry را کنترل کنید.

چگونه هزینه ماهانه را تخمین بزنیم؟

تعداد درخواست، Token متوسط، قیمت مدل، روزهای فعالیت، Retry، Fallback، RAG و Agent Turnها را محاسبه کنید.

API هوش مصنوعی رایگان است؟

بعضی سرویس‌ها اعتبار یا مدل آزمایشی دارند، اما Production معمولاً براساس مصرف هزینه دارد.

Base URL درواره چیست؟

https://api.darvareh.ir/v1

مدل‌های قابل دسترس را چگونه دریافت کنیم؟

GET https://api.darvareh.ir/v1/models

آیا می‌توان برای API Key بودجه تعیین کرد؟

در یک زیرساخت حرفه‌ای بهتر است بودجه روزانه و ماهانه، RPM و TPM برای هر کلید قابل تنظیم باشد.

جمع‌بندی

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

در مدل متنی:

هزینه =
Input Token
+ Output Token
+ Cached Token
+ Reasoning Token

در RAG:

هزینه =
Embedding
+ Vector Search
+ Reranking
+ Context
+ Model Output

در Agent:

هزینه =
مجموع Model Callها
+ Tool Calls
+ RAG
+ Retry
+ Fallback

در مدل‌های تصویر، صوت و ویدئو نیز تعداد، کیفیت، Resolution، مدت و نوع مدل اهمیت دارند.

برای کنترل هزینه:

  1. Usage واقعی را ثبت کنید
  2. قیمت‌ها را Versioning کنید
  3. نرخ ارز را Snapshot کنید
  4. Model Routing بسازید
  5. Context را کاهش دهید
  6. Max Tokens تعیین کنید
  7. Retry و Fallback را محدود کنید
  8. Agent Turnها را کنترل کنید
  9. بودجه و Alert تعریف کنید
  10. Cost per Successful Task را اندازه بگیرید

درواره با ارائه API سازگار با OpenAI، امکان دسترسی به مدل‌های مختلف را از طریق یک Base URL فراهم می‌کند:

https://api.darvareh.ir/v1

پیش از انتخاب مدل، علاوه بر قیمت خام Token، کیفیت، Latency، پایداری، Rate Limit و هزینه واقعی موفقیت را بررسی کنید.

مقالات مرتبط پیشنهادی

برای مشاهده مدل‌های هوش مصنوعی و بررسی قیمت هر مدل، در درواره ثبت‌نام کنید و از صفحه مدل‌ها، واحد قیمت‌گذاری، قابلیت‌ها و کاربرد مدل موردنظر را بررسی کنید.

پس از ساخت API Key، مدل‌های فعال را از Endpoint زیر دریافت کنید:

https://api.darvareh.ir/v1/models

سپس یک درخواست آزمایشی ارسال کنید، Usage واقعی را اندازه بگیرید و براساس الگوی مصرف پروژه، هزینه روزانه و ماهانه را تخمین بزنید.

با استفاده از API سازگار با OpenAI درواره می‌توانید مدل‌های متناسب با کیفیت، سرعت و بودجه پروژه را از طریق یک اتصال واحد به نرم‌افزار خود اضافه کنید.

Read more