Почему сравнение прайс-листов вводит в заблуждение
Две страницы с ценами показывают вам четыре числа: тариф на ввод и вывод для каждого поставщика. Разместите их рядом, и вы получите рейтинг, который верен ровно для одной нагрузки, которой нет ни у кого конкретного. Реальное использование отличается тремя способами.
- Один и тот же промпт превращается в разное количество токенов у каждого поставщика, так как у каждого свой токенизатор.
- Модели отвечают разной длины. Более болтливая модель может стоить дороже на выходе даже при более низком тарифе.
- Ваше соотношение ввода и вывода определяет, какой тариф имеет значение. Суммаризатор в основном платит по тарифам ввода, а генератор историй — по тарифам вывода.
Поэтому метод заключается в том, чтобы зафиксировать нагрузку, измерить токены в каждом API и оценить эти измеренные токены по текущим тарифам каждого поставщика. Мы не приводим цифры Anthropic или OpenAI, потому что они меняются, и к моменту прочтения мы можем ошибиться. Страницы цен обоих поставщиков общедоступны. Что мы можем сделать, так это показать математику с нашими собственными тарифами в качестве примера.
Сравнение в четыре шага
- Выберите репрезентативную нагрузку. Тридцать реальных запросов из вашего продукта, включая длинные.
- Запустите его в каждом API. Запишите токены промпта и токены завершения для каждого вызова из блока использования.
- Оцените стоимость. Стоимость = входные токены x тариф ввода / 1M + выходные токены x тариф вывода / 1M.
- Скорректируйте качество. Разделите стоимость на долю ответов, которые можно использовать как есть. Модель, которая работает в 90 % случаев, стоит примерно в 1,11 раза больше своей базовой цены за один пригодный ответ.
Заполните эту таблицу для вашей собственной нагрузки. Столбцы справа — это то, что имеет значение.
| Пункт | Поставщик A | Поставщик B | Этот API |
|---|---|---|---|
| Тариф ввода за 1M | проверьте их актуальные цены | проверьте их актуальные цены | $0,25 |
| Тариф вывода за 1M | проверьте их актуальные цены | проверьте их актуальные цены | $0,50 |
| Измеренные входные токены, 30 запросов | ваше количество | ваше количество | ваше количество |
| Измеренные выходные токены, 30 запросов | ваше количество | ваше количество | ваше количество |
| Пригодные ответы | ваша оценка | ваша оценка | ваша оценка |
Пример на 1M токенов
Предположим, что за месяц объём чат-трафика составил 1 млн входных токенов и 1 млн выходных токенов. При цене $0,15 за 1 млн входных и $0,50 за 1 млн выходных токенов стоимость составит $0,15 + $0,50 = $0,65. Если другой вендор взимает вдвое больше по обоим показателям, тот же трафик обойдётся в $1,30. Если в десять раз — $6,50. Поскольку мы не можем указать их точные тарифы, используйте множитель, который вы найдёте на их странице.
Теперь посмотрите, насколько важно соотношение. Сохраните общее количество в 1M токенов и измените распределение.
| Соотношение 1M общих токенов | Стоимость входных токенов | Стоимость выходных токенов | Итого |
|---|---|---|---|
| 900 000 входных / 100 000 выходных (резюме, классификация) | $0,135 | $0,05 | $0,185 |
| 500 000 входных / 500 000 выходных (чат) | $0,075 | $0,25 | $0,325 |
| 200 000 входных / 800 000 выходных (длинная генерация) | $0,03 | $0,40 | $0,43 |
Один и тот же миллион токенов стоит $0,185 или $0,43 в зависимости от направления, соотношение 0,43 / 0,185, около 2,3. Если тариф вывода поставщика значительно выше тарифа ввода, продукт, ориентированный на генерацию, платит гораздо больше, чем суммаризатор. Сравнивайте поставщиков, используя свою собственную смесь, а не среднее.
Измерьте оба API одним скриптом
Этот скрипт запускает список промптов и выводит измеренные токены и стоимость для нашего эндпоинта. Для другого поставщика используйте их SDK и базовый URL тем же образом, соберите те же два счетчика и примените их тарифы.
from openai import OpenAI
client = OpenAI(
base_url="https://api.claudeapicosts.com/v1",
api_key="YOUR_KEY",
)
prompts = [
"Summarise in two sentences: The quarterly report shows revenue up and costs flat.",
"Draft a polite reply declining a meeting invitation.",
"Write a 150-word product description for a steel water bottle.",
]
tin = tout = 0
for p in prompts:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": p}],
)
tin += r.usage.prompt_tokens
tout += r.usage.completion_tokens
print("input tokens:", tin, "output tokens:", tout)
print("cost at 0.15 / 0.50 per 1M: $%.6f" % (tin * 0.15 / 1e6 + tout * 0.50 / 1e6))
Блок usage приходит с каждым не потоковым ответом, а при потоковой передаче он появляется в конце потока. Используйте эти данные вместо офлайн-оценки количества токенов при сравнении.
Стоимости, которые не показывает прайс-лист
- Повторные попытки и отказы. В этом сервисе неудачные или отклоненные запросы не оплачиваются. Проверьте, как каждый поставщик с ними обращается.
- Кэширование и скидки на пакетную обработку. Некоторые поставщики дают скидки за повторяющиеся префиксы промптов или пакетные офлайн-задачи. Если ваша нагрузка подходит под эти условия, эффективная ставка может быть ниже, чем в прайс-листе. Ознакомьтесь с их текущими ценами, чтобы узнать правила.
- Минимальные суммы и срок действия. Здесь пополнения — от $20 до $500, и предоплаченный баланс никогда не сгорает. Другие планы могут отличаться.
- Лимиты запросов. Полный ключ позволяет выполнять 8 параллельных запросов и 300 в минуту. Если ваш пиковый трафик превышает эти значения, более низкая ставка может оказаться недоступной.
- Способ оплаты. Пополнение здесь только криптовалютой: USDT в сети TRC20 или USDC в сети Base. Если это не подходит, экономия не имеет значения.
Ошибки, искажающие сравнение поставщиков
- Сравнение моделей разного размера. Быстрая маленькая модель и большая модель для рассуждений — это разные продукты. Сравнивайте модели, между которыми вы действительно выбирали бы.
- Смешивание ставок за 1 000 и за 1 млн токенов. Ставка $0,00015 за 1 000 токенов равна $0,15 за 1 млн. Сначала выполните конвертацию.
- Игнорирование предела контекстного окна. Здесь контекстное окно составляет 100 000 токенов. Если задача требует больше, вопрос уже не в стоимости.
- Использование одного запуска. Длина вывода варьируется. Запустите каждый промпт несколько раз и усредните результат.
Где этот API вписывается в сравнение
Это ни API Anthropic, ни OpenAI. Это независимый сервис, совместимый с OpenAI, с одной моделью с открытыми весами, модель ID uncensored, настроенной на ответы без отказов по контенту для законного использования взрослыми. Это только текст с контекстным окном на 100 000 токенов. Его ценность — низкая цена за токен, отсутствие подписки и стандартный интерфейс.
Будьте объективны в вопросах, где он проигрывает. Если вам нужна модель конкретного поставщика, ввод изображений или аудио, эмбеддинги или самые сильные возможности рассуждений, сначала сравнивайте по этим параметрам, а стоимость — во вторую очередь. Если ваша нагрузка связана с художественной литературой, ролевыми играми, приложениями-компаньонами или контентом, который другие провайдеры блокируют, цена и отсутствие отказов могут стать решающими факторами. Контент с участием несовершеннолетних запрещён.
Изменение кода минимально. Замените базовый URL на https://api.claudeapicosts.com/v1, ключ и модель на uncensored. Документация описывает эндпоинты и параметры, а страница тарифов содержит ставки и бонусы: +5 % от $50, +10 % от $100 и +15 % от $200. Для более подробного обзора затрат см. наш анализ стоимости LLM без цензуры. Чтобы запустить приведённый выше скрипт бесплатно, получите $0,50 пробного кредита на странице API-ключа.
