Цены
Цена указывается за токен, отдельно для входных и выходных токенов, по каждой модели. Нет отдельной платы за потоковую передачу, вызов инструментов или ввод изображений сверх токенов, которые они расходуют.
Цены по моделям
| Модель | Вход ($ / 1 млн токенов) | Выход ($ / 1 млн токенов) |
|---|---|---|
| tai-4.0.6P | $0.20 | $1.00 |
| tai-4.0.6B | $0.35 | $1.75 |
| tai-4.0.7 | $0.75 | $2.00 |
| tai-4.1 | $0.90 | $2.00 |
| tai-4.2 | $1.00 | $2.50 |
Входные токены — это всё, что отправляется модели в рамках данного запроса: системный промпт, каждое сообщение в истории диалога и любые включённые определения инструментов. Выходные токены — это то, что модель генерирует в ответ. Цена на них указывается отдельно, потому что по стоимости они не взаимозаменяемы: генерация токенов — это существенно другая (и, как правило, более дорогая) операция, чем обработка уже имеющихся токенов.
Пример расчёта
Запрос к tai-4.1 с 1300 входными и 230 выходными токенами:
Вход: 1300 / 1 000 000 × $0.90 = $0.00117
Выход: 230 / 1 000 000 × $2.00 = $0.00046
Итого ≈ $0.00163
Отдельные запросы почти всегда стоят доли цента. Стоимость накапливается с объёмом, и именно для этого существует объект usage в каждом ответе — он позволяет отслеживать расходы по каждому запросу, а не узнавать общую сумму только постфактум.
Отслеживание использования
Каждый ответ, потоковый или нет, включает объект usage с prompt_tokens и completion_tokens для конкретного запроса (о том, где именно он появляется в каждом режиме, см. Chat Completions и Потоковая передача). Умножив эти значения на цифры из таблицы выше, вы получите точную стоимость этого запроса. Использование также автоматически агрегируется по каждому ключу и видно на странице использования консоли, в рамках того рабочего пространства, которому принадлежит ключ, так что для повседневного отслеживания расходов не нужно вычислять их самостоятельно по сырым данным о токенах на каждый запрос.
Что влияет на стоимость, а что нет
Стоимость масштабируется в зависимости от количества фактически обработанных и сгенерированных токенов, и ничего больше. Потоковая передача ответа не стоит дороже, чем получение его одним блокирующим вызовом; это одна и та же генерация, просто доставленная иначе. Определения инструментов, переданные в поле tools, учитываются как входные токены точно так же, как любая другая часть запроса, поэтому запрос с большим числом подробно описанных инструментов стоит несколько дороже по входным токенам, чем тот же запрос без них, — пропорционально объёму текста, который эти определения инструментов действительно добавляют. Изображение, прикреплённое к запросу, преобразуется самой моделью в определённое количество входных токенов в процессе его обработки; отдельной фиксированной платы за изображение сверх этого нет.
История диалога и повторная оплата
Поскольку API не хранит состояние (см. Chat Completions), каждый запрос в многоходовом диалоге заново отправляет полную историю как входные данные, и эта история снова тарифицируется как входные токены на каждом отдельном ходу, а не только один раз. Стоимость входных данных на ход в долго идущем диалоге растёт по мере роста истории, поскольку каждый новый запрос включает всё, что было до него. Для диалога, который ожидаемо будет очень длинным, разумный способ удержать это в разумных пределах — обрезать или суммировать более старые ходы перед включением их в запрос, ценой того, что модель больше не будет иметь дословного доступа к тому, что было обрезано.