قیمت و توکن
توکن در دانا چطور شمرده میشود، اعتبار کی کسر میشود و مصرف را کجا ببینید
دانا بر اساس توکن ورودی و خروجی هر درخواست اعتبار کسر میکند. واحد پرداخت تومان است.
توکن چیست
توکن کوچکترین واحد متنی است که مدل میبیند. نه حرف است و نه دقیقا کلمه؛ چیزی میان این دو. بهطور تقریبی:
- هر ۷۵ کلمه انگلیسی ≈ ۱۰۰ توکن
- فارسی معمولا توکن بیشتری نسبت به انگلیسی مصرف میکند
پس یک متن فارسی و ترجمه انگلیسیاش، با اینکه یک حرف میزنند، یک اندازه هزینه ندارند.
چه چیزهایی شمرده میشوند
هزینه هر درخواست از دو طرف میآید:
| بخش | شامل چیست |
|---|---|
| ورودی | متن system، همه پیامهای قبلی مکالمه، و پیام تازه کاربر |
| خروجی | متنی که مدل تولید میکند |
سه نکته که معمولا غافلگیر میکنند:
- تاریخچه هر بار از نو شمرده میشود. مدل حافظه ندارد؛ در هر درخواست کل مکالمه را دوباره میفرستید. مکالمهای که طولانی میشود، هر نوبت گرانتر از نوبت قبل تمام میشود. برای مکالمههای بلند، پیامهای قدیمی را خلاصه کنید یا بیندازید دور.
- پیام system هم ورودی است. یک system prompt بلند، هزینهاش را به تکتک درخواستهای آن مکالمه اضافه میکند.
- هر پیام کمی سربار ساختاری دارد. ده پیام کوتاه از یک پیام بلندِ هماندازه، اندکی بیشتر آب میخورد.
برآورد پیش از ارسال
با count_tokens میتوانید ورودی را پیش از خرج کردن بسنجید:
curl https://api.dana.expert/v1/messages/count_tokens \
-H "Authorization: Bearer $DANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dana-1",
"messages": [{"role": "user", "content": "پایتخت ایران کجاست؟"}]
}'پاسخ:
{"input_tokens": 12}این عدد یک برآورد است، نه رسید. فقط ورودی را میشمارد و خروجی هنوز تولید نشده. برای گزارش قطعی، usage پاسخ اصلی را بخوانید.
مصرف واقعی در پاسخ
هر پاسخ موفق فیلد usage دارد. نامش در دو رابط فرق میکند، معنایش یکی است:
رابط OpenAI:
{
"usage": {
"prompt_tokens": 22,
"completion_tokens": 15,
"total_tokens": 37
}
}رابط Anthropic:
{
"usage": {
"input_tokens": 22,
"output_tokens": 15
}
}روی پاسخ streaming هم این آمار میآید، در رویداد پایانی.
چرا موجودی موقتا کم و دوباره زیاد میشود
دانا موقع پذیرش درخواست، بدترین حالت هزینه را کنار میگذارد: توکنهای ورودی بهعلاوه سقفی که در max_tokens خواستهاید. وقتی پاسخ تمام شد، تفاوت این برآورد با مصرف واقعی به موجودی برمیگردد.
دو نتیجه دارد. اول اینکه دیدن یک افت لحظهای در موجودی طبیعی است. دوم اینکه max_tokens بزرگ و بیدلیل، تا پایان همان درخواست بخشی از اعتبارتان را قفل نگه میدارد. عددی بگذارید که واقعا لازم دارید.
اگر اعتبار کافی نباشد، درخواست با 429 و نوع insufficient_quota رد میشود و در خطاها شرح داده شده است.
مشاهده مصرف و شارژ
در کنسول دانا میتوانید:
- مصرف روزانه توکن را ببینید
- درخواستها را بر اساس مدل فیلتر کنید
- گزارش CSV بگیرید
- موجودی فعلی را بررسی کنید
شارژ اعتبار از بخش اعتبار کنسول با درگاه پرداخت ایرانی انجام میشود.
صفحههای مرتبط
- Messages - جزئیات endpoint شمارش توکن
- مدلها - انتخاب مدل
- محدودیتها - سقف نرخ درخواست
- خطاها - خطاهای مربوط به اعتبار