قیمتگذاری API OpenAI: اشتباهات رایج و چگونه از آنها جلوگیری کنید
قیمتگذاری API OpenAI اغلب توسعهدهندگان را غافلگیر میکند زیرا توکنهای ورودی و خروجی به صورت جداگانه صورتحساب میشوند و پاسخهای استریمینگ میتوانند هزینهها را در صورت پیگیری دقیق افزایش دهند. درک این مکانیسمها به شما کمک میکند از هزینههای غیرمنتظره جلوگیری کنید و پیکربندی مدل مناسب برای بودجه خود را انتخاب کنید.
خلاصه
- توکنهای ورودی به ازای هر میلیون ۰.۱۵ دلار هزینه دارند در حالی که توکنهای خروجی به ازای هر میلیون ۰.۵۰ دلار هزینه دارند با مدل uncensored ما.
- پاسخهای استریمشده همچنان تمام توکنهای تولیدشده را به موجودی پیشپرداخت شما محاسبه میکنند.
- محدودیتهای پنجره زمینه بر محاسبات توکنهای ورودی و خروجی تأثیر میگذارند.
- اعتبارات پیشپرداخت هرگز منقضی نمیشوند و فقط بابت مصرف واقعی، از جمله خطاها، هزینه دریافت میکنند.
درک هزینههای توکن: ورودی در مقابل خروجی
قیمتگذاری API OpenAI برای توکنهای ورودی و خروجی به صورت جداگانه هزینه دریافت میکند. این بدان معناست که هزینه کل شما به هر دو مقدار ارسالی و مقدار تولید شده توسط مدل بستگی دارد. توکنهای ورودی شامل پرامپت شما و همچنین تاریخچه مکالمه میشوند. توکنهای خروجی متن پاسخ مدل را پوشش میدهند.
مدل بدون سانسور ما ۰.۱۵ دلار به ازای میلیون توکن ورودی و ۰.۵۰ دلار به ازای میلیون توکن خروجی هزینه دارد. هزینه بالاتر خروجی بازتابدهنده محاسبات مورد نیاز برای تولید متن است. پاسخهای کوتاهتر هزینه کمتری دارند اما همچنان اعتبار پیشپرداخت شما را مصرف میکنند.
- توکنهای ورودی شامل پرامپت و تاریخچه مکالمه شما هستند
- توکنهای خروجی پاسخ کامل مدل را پوشش میدهند
- هر دو نوع توکن به موجودی پیشپرداخت شما محاسبه میشوند
- خطاها و رد شدن درخواستها صفر توکن مصرف میکنند
curl https://api.mistralopenaicompatibleapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list top 5 linux commands for disk cleanup"}]
}'
محدودیتهای پنجره زمینه و هزینههای غیرمنتظره
محدودیتهای پنجره زمینه مستقیماً بر هزینههای توکن شما تأثیر میگذارند زیرا مکالمات طولانیتر توکنهای ورودی بیشتری مصرف میکنند. مدل بدون سانسور ما از پنجره زمینه ۱۰۰,۰۰۰ توکنی برای مجموع ورودی و خروجی پشتیبانی میکند. میتوانید تا ۱۶,۰۰۰ توکن در هر درخواست تولید کنید. اگر max_tokens را حذف کنید، محدودیت به ۲,۰۴۸ توکن کاهش مییابد.
پنجرههای زمینه طولانیتر به معنای هزینههای بالاتر توکن ورودی اما همچنین امکان استدلال پیچیدهتر است. کوتاه کردن تاریخچه مکالمه هزینههای ورودی را کاهش میدهد اما ممکن است کیفیت پاسخ را کاهش دهد. تعادلی را پیدا کنید که برای مورد استفاده شما کار کند.
- پنجره زمینه ۱۰۰,۰۰۰ تایی برای ورودی به علاوه خروجی
- ۱۶,۰۰۰ توکن خروجی حداکثر در هر درخواست
- ۲,۰۴۸ توکن خروجی پیشفرض اگر max_tokens حذف شود.
- پنجره زمینه هم بر هزینهها و هم بر کیفیت پاسخ تأثیر میگذارد
from openai import OpenAI
client = OpenAI(base_url="https://api.mistralopenaicompatibleapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
محاسبه توکن استریم در مقابل غیر استریم
پاسخهای استریمشده توکنها را دقیقاً به همان روشی که درخواستهای غیراستریمشده پردازش میکنند، محاسبه میکنند. هر توکنی که به کلاینت ارسال شود، صرفنظر از روش تحویل، از موجودی پیشپرداخت شما کسر میشود. استریم فقط توکنها را به صورت تدریجی و نه به صورت یکجا تحویل میدهد.
از پخش زنده زمانی استفاده کنید که به بازخورد زمان واقعی نیاز دارید اما مصرف توکن را بهدقت ردیابی میکنید. قطعه نهایی شامل شمارش کل توکنها برای ورودی و خروجی است. این شمارشها را نظارت کنید تا در بودجه خود باقی بمانید.
- پخش زنده و غیرپخش زنده از شمارش توکن یکسان استفاده میکنند
- هر توکن ارسالی به مشتری اعتبارات را مصرف میکند
- قطعه نهایی شامل تعداد کل توکنهای ورودی و خروجی است
- مصرف توکن را در پیادهسازی استریم خود ردیابی کنید
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
خطاهای رایج پیکربندی SDK
پیکربندیهای نادرست SDK باعث هزینههای غیرمنتظره با ارسال تعداد زیادی token یا درخواستهای تکراری میشوند. توسعهدهندگان اغلب فراموش میکنند max_tokens را تنظیم کنند که منجر به پاسخهای طولانی غیرمنتظره میشود. برخی دیگر پیادهسازی streaming را از دست میدهند که پس از تکمیل پاسخ، tokenها را ارسال میکند.
SDK خود را با پارامترهای صریح پیکربندی کنید. max_tokens را برای کنترل طول خروجی تنظیم کنید. پخش زنده را فقط زمانی که بازخورد بلادرنگ نیاز دارید فعال کنید. استفاده از توکن را در لاگهای برنامه خود مانیتور کنید.
- max_tokens صریح را برای کنترل طول خروجی تنظیم کنید
- فقط زمانی که بازخورد بلادرنگ نیاز است، جریانسازی را فعال کنید.
- تعداد توکنها را در لاگهای برنامه خود پایش کنید
- مقادیر زمان انتظار (timeout) را پیکربندی کنید تا از گیر کردن درخواستها جلوگیری شود
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.mistralopenaicompatibleapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
چرا اعتبارهای پیشپرداخت به شما صرفهجویی در هزینه میدهند
اعتبارهای پیشپرداخت اتلاف اشتراک را با دریافت هزینه فقط برای مصرف واقعی توکن حذف میکنند. سیستم ما ۰.۱۵ دلار برای هر میلیون توکن ورودی و ۰.۵۰ دلار برای هر میلیون توکن خروجی هزینه دریافت میکند. خطاها و رد شدن درخواستها صفر توکن مصرف میکنند، بنابراین شما هرگز برای درخواستهای ناموفق پرداخت نمیکنید.
پرداخت ۲۰ تا ۵۰۰ دلار به صورت ارز دیجیتال برای USDT روی TRC20 یا USDC روی Base. اعتبار هدیه دریافت کنید هنگام شارژ $50 یا بیشتر. اعتبارها هرگز منقضی نمیشوند تا بتوانید هر زمان که نیاز دارید از آنها استفاده کنید. عدم وجود هزینههای ماهانه به این معنی است که شما فقط بابت آنچه واقعاً مصرف میکنید پرداخت میکنید.
- اعتبارهای پیشپرداخت فقط بابت مصرف واقعی توکن هزینه دریافت میکنند
- خطاها و رد شدن درخواستها صفر توکن مصرف میکنند
- بالا بردن اعتبار از $۲۰ تا $۵۰۰ با ارز دیجیتال
- اعتبارها هرگز منقضی نمیشوند و اعتبار پاداش اعمال میشود
پرهیز از جریمههای محدودیت نرخ
محدودیت نرخها از سوءاستفاده جلوگیری میکند اما اگر به درستی پیکربندی نشوند، میتوانند برنامه شما را مختل کنند. API ما اجازه 300 درخواست در دقیقه به ازای هر کلید و 8 درخواست همزمان به ازای هر کلید را میدهد. بدنه درخواست باید کمتر از 8 MB باشد تا از رد شدن آن جلوگیری شود.
منطق تلاش مجدد با بازگشت نمایی را هنگام برخورد با محدودیتهای نرخ پیادهسازی کنید. تعداد درخواستهای خود را در دقیقه پایش کنید تا در محدوده مجاز بمانید. از کلیدهای جداگانه برای اجزای مختلف برنامه استفاده کنید تا بار توزیع شود. یک کلید فعال به ازای هر حساب به این معنی است که باید چرخش کلیدها را به دقت مدیریت کنید.
- ۳۰۰ درخواست در دقیقه برای هر کلید API
- ۸ درخواست همزمان مجاز برای هر کلید
- بدنههای درخواست باید زیر 8 MB باشند
- یک کلید فعال برای هر حساب با قابلیت جایگزینی
مقایسه هزینههای مدلهای بدون سانسور
مدلهای بدون سانسور اغلب به دلیل نیازهای آموزش و استنتاج تخصصی، گرانتر از مدلهای استاندارد هستند. مدل ما ۰.۱۵$ به ازای هر میلیون توکن ورودی و ۰.۵۰$ به ازای هر میلیون توکن خروجی دریافت میکند. این قیمتگذاری بازتابدهنده منابع محاسباتی مورد نیاز برای تولید بدون سانسور است.
مدلهای استاندارد ممکن است ارزانتر باشند اما محدودیتهای محتوایی دارند که بر کیفیت پاسخ تأثیر میگذارد. مدلهای بدون سانسور پاسخهای نامحدود برای محتوای بزرگسالان قانونی، داستانهای تخیلی و تحقیقات ارائه میدهند. بر اساس نیازهای محتوایی خود انتخاب کنید، نه فقط بر اساس قیمت.
- مدلهای بدون سانسور به آموزش و استنتاج تخصصی نیاز دارند
- قیمتگذاری ما بازتابدهنده هزینههای محاسباتی تولید uncensored است
- محدودیتهای محتوا بر کیفیت پاسخ و هزینه تأثیر میگذارند
- بر اساس نیازهای محتوا نه فقط قیمت انتخاب کنید
ردیابی مصرف و هشدارهای صورتحساب
ردیابی مصرف توکن به شما کمک میکند هزینهها را مانیتور کنید و از تجاوز بودجه جلوگیری کنید. API ما تعداد توکنها را در هر پاسخ از جمله پاسخهای استریمشده برمیگرداند. این تعداد را در لاگها و داشبوردهای برنامه خود ردیابی کنید.
هشدارهایی تنظیم کنید وقتی استفاده به آستانههای خاصی میرسد. نسبتهای توکن ورودی به خروجی را مانیتور کنید تا پرامپتهای خود را بهینه کنید. از تعدادهای توکن برای محاسبه هزینههای واقعی و مقایسه با موجودی پیشپرداخت خود استفاده کنید.
- تعداد توکنها در هر پاسخ از جمله در حالت جریانیسازی ظاهر میشود
- نسبت توکنهای ورودی به خروجی را پایش کنید
- هشدارهای مصرف را تنظیم کنید تا از تجاوز از بودجه جلوگیری شود
- Calculate actual costs using token counts
سوالات متداول
چگونه هزینههای APIام را محاسبه کنم؟
تعداد توکنهای ورودی خود را در ۰.۱۵ دلار به ازای هر میلیون ضرب کنید و تعداد توکنهای خروجی خود را در ۰.۵۰ دلار به ازای هر میلیون ضرب کنید. این مقادیر را با هم جمع کنید تا هزینه کل برای یک درخواست تکی به دست آید. تعداد توکنها را در لاگهای برنامه خود ردیابی کنید تا استفاده را در طول زمان نظارت کنید.
آیا پاسخهای استریمشده هزینه بیشتری نسبت به غیر استریمشده دارند؟
خیر. پاسخهای استریمینگ و غیر استریمینگ شمارش توکن یکسانی دارند. هر توکن ارسالی به کلاینت به موجودی پیشپرداخت شما محاسبه میشود، صرفنظر از روش تحویل. قطعه نهایی استریمینگ شامل کل توکنهای ورودی و خروجی است.
اگر به محدودیت نرخ خود برسم چه اتفاقی میافتد؟
درخواستهایی که از محدودیت ۳۰۰ درخواست در دقیقه یا ۸ درخواست همزمان تجاوز کنند، پاسخ خطا دریافت میکنند. این خطاها صفر توکن مصرف میکنند بنابراین شما هزینهای پرداخت نمیکنید. منطق تلاش مجدد با بازگشت نمایی پیادهسازی کنید تا محدودیتهای نرخ را به آرامی مدیریت کنید.
آیا اعتبارات پیشپرداخت منقضی میشوند؟
خیر. اعتبارهای پرمصرف هرگز منقضی نمیشوند تا بتوانید هر زمان که نیاز داشتید از آنها استفاده کنید. شما فقط بابت مصرف واقعی توکن پرداخت میکنید، از جمله خطاها و رد شدن درخواستها که صفر توکن مصرف میکنند. هر زمان که به اعتبار بیشتری نیاز داشتید با ارز دیجیتال شارژ کنید.
کلید API خود را دریافت کنید
ثبتنام کنید، کلید را بردارید و آدرس پایه (base URL) endpoint را بهروز کنید. همین است.