اعتبار، مصرف و پرداخت
همان کیف پول ساروی؛ با تفکیک رزرو موقت، تسویه و سقف مصرف.
موجودی مشترک
GET /v1/balance موجودی قابل استفادهٔ حساب را با واحد sarovi_credits برمیگرداند. این موجودی با Chat، Studio و Work در برنامهٔ ساروی مشترک است. ساخت پروژه یا کلید، اعتبار تازه ایجاد نمیکند. خرید و مشاهدهٔ پرداختها از صفحهٔ «اعتبار و پرداخت» انجام میشود.
چرخهٔ یک درخواست پولی
۱. ورودی و مجوز بررسی میشود. ۲. سقف پروژه و کلید بررسی و اعتبار موقت رزرو میشود. ۳. مدل یا worker اجرا میشود. ۴. مصرف واقعی تسویه و اختلاف رزرو اصلاح میشود.
کم شدن موجودی در زمان اجرا همیشه هزینهٔ نهایی نیست. گزارش pending یعنی یک رزرو هنوز بسته نشده است. اگر قبل از مصرف خطا رخ دهد، مسیر مربوط رزرو را آزاد میکند. در گفتگو، مصرف واقعی پیش از قطع یا خطا ممکن است قابل محاسبه باشد.
محاسبهٔ مصرف
گفتگو از همان سیاست مصرف ساروی استفاده میکند: هزینهٔ ارائهدهنده به اعتبار تبدیل میشود، حداقل توکنی و هزینهٔ پایهٔ حالت هم اعمال میشود. Studio و ویدیو از سیاست همان بخش استفاده میکنند. اعداد قیمت ارائهدهنده در صفحهٔ مدل، قیمت نهایی خرید اعتبار به تومان نیستند.
سقف پروژه و کلید
سقف ماهانه با ماه تقویمی UTC محاسبه میشود. برای پذیرش کار تازه، مجموع هزینهٔ تسویهشده و رزروهای باز بهعلاوهٔ رزرو جدید باید در سقف جا شود. تسویهٔ کار پذیرفتهشده میتواند بیشتر از برآورد اولیه باشد؛ سقف پذیرش تضمین قطع اجرای جاری در یک رقم دقیق نیست.
پرداخت
قیمت بسته و نتیجهٔ پرداخت از مسیر فعلی حساب میآید. API تولید نمیتواند بهصورت خودکار از کارت شما شارژ بخرد. موجودی فقط بعد از تأیید واقعی پرداخت اضافه میشود؛ برگشتن از درگاه یا وجود پارامتر موفقیت در URL کافی نیست.
خطاهای مالی
INSUFFICIENT_CREDITS: موجودی کافی برای رزرو نیست. PROJECT_BUDGET_EXCEEDED: سقف پروژه اجازهٔ شروع نمیدهد. KEY_BUDGET_EXCEEDED: سقف کلید تکمیل شده است. افزایش موجودی و افزایش سقف دو کار مستقلاند.
برآورد هزینه و رزرو
محاسبهگر هزینه هزینهٔ مدلهای پشتیبانیشدهٔ متن، تصویر، ویدیو، گفتار، تبدیل صدا، پاسخ صوتی، موسیقی و تماس زنده را با تعرفهٔ فعلی و قیمت خرید مشترک به اعتبار و تومان برآورد میکند. برای Work سناریوی مصرف و سقف رزرو جدا هستند. نوع استفاده، مدل و واحد مصرف را انتخاب کنید؛ تصویر از قیمتهای هر مسیر و ویدیو از همان پیشنهاد قیمت ساروی استفاده میکند. قیمت ناموجود بهصورت رایگان نمایش داده نمیشود. قیمت جداگانهای برای API وجود ندارد. عدد تومان ارزش خرید تازه است، نه بازسازی مبلغ پرداخت تاریخی.
رزرو اولیهٔ گفتگو، تصویر و صدا یک برآورد متناسب با مدل، ورودی، کیفیت، تعداد تصویر یا مدت صدای بررسیشده است؛ کل ظرفیت مدل یا همهٔ دورهای احتمالی ابزار از ابتدا رزرو نمیشود. reservation_credits در فهرست مدلها برآورد یک درخواست نمونه است. هزینهٔ واقعی میتواند کمتر یا بیشتر از این برآورد باشد و در تسویه با رعایت موجودی و سقفهای مصرف محاسبه میشود. محدودیت خروجی انتخابشده کوچک نمیشود. ویدیو از پیشنهاد قیمت همان درخواست استفاده میکند. پس از مصرف تأییدشده، باقیمانده آزاد میشود؛ اگر گزارش ارائهدهنده نرسیده باشد، رزرو تا بررسی مصرف باز میماند.
در کنسول مصرف، هزینهٔ نهایی، رزروهای باز، سقف ماهانهٔ کلید و پروژه و موجودی کیف پول جدا هستند. خرید اعتبار سقف کلید را افزایش نمیدهد؛ تغییر سقف را در صفحهٔ کلیدها انجام دهید.
import json, os, urllib.request, urllib.error
request = urllib.request.Request(
"https://api.sarovi.site/v1/balance",
headers={
"Authorization": "Bearer " + os.environ["SAROVI_API_KEY"],
"Content-Type": "application/json"
},
method="GET"
)
try:
with urllib.request.urlopen(request, timeout=300) as response:
result = json.load(response)
print(result)
except urllib.error.HTTPError as error:
detail = json.load(error)
raise RuntimeError(f"{error.code}: {detail['error'].get('code', detail['error'].get('type', 'HTTP_ERROR'))}") from errorکلید را در متغیر محیطی SAROVI_API_KEY قرار بده. بدون نصب کتابخانه؛ با Python استاندارد.
قرارداد API 1.6.0 · تاریخچهٔ تغییرات