شروع کار

اعتبار و صورتحساب

هزینه‌ی API چگونه از اعتبار کم می‌شود: رزرو پیش از اجرا، تسویه بعد از آن، خطای 402 و جای دیدن قیمت‌ها.

مصرف API از اعتبار کم می‌شود. اعتبار را در پنل، در بخش توسعه‌دهندگان (/app/developer/credits) با پرداخت ریالی می‌خرید. اشتراک چت، اعتبار API نمی‌دهد و اعتبار API هم برای پیام‌های چت پنل خرج نمی‌شود.

واحد

اعتبار در API به‌صورت عدد اعشاری گفته می‌شود، مثلاً 0.0042. قیمت هر واحد در GET /v1/models، فیلد pricing است. واحد هر قیمت در نام آن دیده می‌شود: input_1k یعنی اعتبار برای هر هزار توکن ورودی، output_1k برای هر هزار توکن خروجی. مدل‌های دیگر واحد خودشان را دارند، مثل image برای هر تصویر.

رزرو و تسویه

هر درخواست در دو مرحله حساب می‌شود:

  1. رزرو. پیش از اجرا، بیشترین هزینه‌ی ممکن رزرو می‌شود. در چت این برابر ورودی به‌علاوه‌ی max_tokens است، و اگر max_tokens نباشد، سقف خروجی مدل.
  2. تسویه. بعد از پایان، هزینه‌ی واقعی کم می‌شود و باقی رزرو آزاد می‌شود.

اگر اعتبار برای کل خروجی کافی نباشد ولی برای یک پاسخ کوتاه کافی باشد، max_tokens کمتر می‌شود تا درخواست اجرا شود. در این حالت ممکن است پاسخ با finish_reason: "length" زودتر تمام شود. اگر حتی برای پاسخ حداقلی کافی نباشد، خطای 402 می‌آید.

چه چیزی هزینه دارد:

  • درخواست موفق به اندازه‌ی مصرف واقعی هزینه دارد.
  • درخواستی که پیش از اجرا رد شد (کلید، 400، محدودیت نرخ) یا سرویس بالادستی برایش خطا داد، هزینه ندارد.
  • استریمی که میانه‌ی راه خطا بخورد یا کلاینت آن را ببندد، برای توکن‌های تولیدشده تا آن لحظه هزینه دارد.
  • پاسخ مسدودشده توسط قاعده‌ی نگهبانِ خروجی هم هزینه دارد، چون مدل آن را تولید کرده بود. مسدود شدن ورودی (446) هزینه ندارد.
  • count_tokens و countTokens رایگان هستند و از سقف نرخ هم مصرف نمی‌کنند.

دیدن هزینه‌ی هر درخواست

  • پاسخ‌های غیر استریم: سرآیند x-1ai-credits.
  • استریم: فیلد usage.credits در قطعه‌ی آخر (استریم).

خطای 402

json
{
  "error": {
    "message": "You do not have enough credits for this request.",
    "type": "insufficient_quota",
    "code": "insufficient_credits",
    "param": null,
    "details": { "required": 0.8, "available": 0.1 },
    "request_id": "6f1d3c52-8a0e-4b1e-9d7a-2f6f1c3b9a10"
  }
}

details.required مقدار رزروی و details.available موجودی قابل استفاده است. مقدارها این‌جا نمونه‌اند. دو کد 402 دیگر هم هست:

  • key_cap_reached: سقف ماهانه‌ی خود کلید پر شده. ماه به وقت تهران و جلالی حساب می‌شود.
  • member_cap_reached: سقف ماهانه‌ی شما در فضای کاری تیمی پر شده.

قیمت‌ها

قیمت مدل‌ها به‌صورت زنده در GET /v1/models (فیلد pricing) و در صفحه‌ی /models است. مدلی که قیمتش تعیین نشده در فهرست نمی‌آید و اگر نامش را بفرستید model_not_found می‌گیرید.

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

صفحه‌های مرتبط