Caicaini
Начать

Справочник

Цены и кредиты

Расходы по API считаются в кредитах Caicaini и списываются из выделенного пула apiCredits. Та же единица, что и в чат-продукте, но другая цена за кредит и строгое разделение пулов.

Как работают кредиты

  • Каждый вызов модели стоит кредитов. Точную сумму считаем из входных и выходных токенов плюс множитель модели.
  • Кредиты — никогда не плавающая запятая. Везде целочисленная арифметика; ничего не округляется в ущерб тебе.
  • Поле usage.credits_consumed в каждом ответе — авторитетное списание. Сколько там написано, столько мы и списали.
  • Пул apiCredits полностью изолирован от твоих чат-кредитов. Подписочные кредиты и пополнения чата никогда не утекают в API-расходы и наоборот.

Пакеты пополнения

Самый дешёвый способ купить кредиты — четыре предустановленных пакета. Слайдер произвольной суммы на той же странице интерполирует между этими тарифами.

ПакетЦенаКредитыКредитов за $vs starter
api_starter$1070,0007,000
api_builder$50380,0007,600+8%
api_scale$2001,600,0008,000+14%
api_enterprise$1,0008,500,0008,500+21%

Произвольная сумма

Если ни один пакет не подходит, введи в дашборде любую сумму от $10 до $10 000 — мы посчитаем кредиты по ставке соответствующего тарифа. Слайдер на /developers/billing показывает арифметику в реальном времени; источник истины — сервер.

Диапазон суммКредитов за $Эквивалент пакета
$10.00 – $49.997,000ставка api_starter
$50.00 – $199.997,600ставка api_builder
$200.00 – $999.998,000ставка api_scale
$1,000.00+8,500ставка api_enterprise

Предварительный расчёт

Дашборд бьётся в эндпойнт-предпросмотр на той же серверной логике, по которой проходит реальное пополнение, — что видишь, то и получаешь.

# Preview what $50 buys without creating a payment.
curl https://caicaini.com/api/developers/billing/preview \
  -H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
  -H "Content-Type: application/json" \
  -d '{"usdCents": 5000}'

# {
#   "credits": 380000,
#   "creditsPerDollar": 7600,
#   "markupX": 1.32,
#   "tier": "builder"
# }

Стоимость по моделям

У разных моделей разные ставки кредитов за 1K токенов. Более быстрые и маленькие модели стоят меньше за токен; модели с большими возможностями — больше. Когда нет сильного предпочтения, используй caicaini/auto — роутер выбирает самую дешёвую модель, которая правдоподобно справится с задачей.

  • caicaini/auto — тарифицируется по той модели, которую выбрал роутер. Auto редко берёт самую дорогую опцию.
  • caicaini/opus — самая дорогая за токен. Лучшие возможности. Стоит примерно в 5× дороже caicaini/sonnet.
  • caicaini/sonnet — средний тариф. Дефолт для продакшен-трафика.
  • caicaini/haiku — дёшево и быстро. Примерно 1/3 от стоимости sonnet.
  • caicaini/kimi — самая дешёвая за токен на длинных контекстах. Большое преимущество для retrieval-нагрузок.

Резервирование до вызова

Перед каждым вызовом мы оцениваем стоимость по худшему сценарию (вход плюс полный max_tokens по выходной ставке модели) и резервируем столько кредитов из твоего apiCredits. После завершения вызова резерв снимается, а списывается фактическая стоимость. Если доступного баланса не хватит на худший сценарий, вызов вернёт 402 с типом insufficient_quota до любой работы провайдера.

Оценка до отправки

// Quick budgeting: if you know average input/output tokens per turn,
// estimate credit cost before sending. Replace the rates with the values
// you read from the model row in GET /v1/models if you want exact numbers.
type Rates = { in_per_1k_credits: number; out_per_1k_credits: number };

function estimateCredits(inputTokens: number, outputTokens: number, r: Rates): number {
  return Math.ceil((inputTokens / 1000) * r.in_per_1k_credits)
       + Math.ceil((outputTokens / 1000) * r.out_per_1k_credits);
}

// Then keep usage.credits_consumed from each response as the source of truth.

Возвраты

Возвраты инициируются админом и редки. Самый частый случай — стрим оборвался до того, как пришёл хоть какой-то вывод, такие возвращаем автоматически. Для всего остального обращайся в поддержку и приложи id сообщения из соответствующего ответа. Что возвращается по умолчанию — на странице Ошибки.