Перейти к содержимому
ChatGPT API
Документация

Документация

Как снизить расходы на ChatGPT API

Обновлено:

Расходы на ChatGPT API складываются из числа запросов, объёма входных и выходных токенов, выбранной модели и повторных вызовов. Ниже - как стартапу или продуктовой команде снизить их в разы, не теряя качества. Самый быстрый шаг - те же модели на 50% дешевле.

Посчитайте свою нагрузку

Калькулятор нагрузки

Выберите похожий сценарий или укажите свои значения.

Готовые примеры

Можно изменить любые цифры ниже

Считайте и повторные запросы10010,000,000
Prompt, история и документы100200,000
Фактически созданный ответ5050,000

Через ChatGPT API: $11.25 в месяц. Экономия в месяц: $11.25.

Примерный бюджет

По официальным тарифам

в месяц

$22.50

50%

Через ChatGPT API

в месяц

$11.25

Экономия в месяц

$11.25

Экономия за год

$135.00

Зарегистрироваться

Расчёт использует текущие цены выбранной модели без prompt caching. Он показывает порядок расходов, а не будущий счёт с точностью до цента.

Как считать стоимость ChatGPT API

Сначала соберите данные за семь дней

Общий счёт мало что объясняет. Записывайте расход рядом с функцией продукта: ответ поддержки, обработка документа, шаг агента или генерация отчёта. Через неделю станет видно, какая функция съедает бюджет и почему.

TypeScript · стоимость по функциям продукта
const startedAt = performance.now();
const res = await client.chat.completions.create({
  model,
  max_completion_tokens: maxCompletionTokens,
  messages,
});

analytics.track("llm_request", {
  feature: "support_reply",
  model: res.model,
  input_tokens: res.usage.prompt_tokens,
  output_tokens: res.usage.completion_tokens,
  latency_ms: Math.round(performance.now() - startedAt),
});

Найдите главный источник расходов

Не переписывайте все prompts сразу. Отсортируйте функции продукта по расходам и начните с верхних строк. Таблица ниже помогает выбрать первый эксперимент.

Что видно в данныхГде растёт счётЧто проверить первым
Большие prompts в RAG или чатеinput_tokensRetrieval, история, prompt caching
Ответ длиннее, чем нужен интерфейсуoutput_tokensmax_completion_tokens и формат ответа
Много вызовов на одно действиеretries или agent loopBackoff, stop conditions, дубликаты
Одна модель обслуживает все задачицена каждого токенаRouting на более дешёвую модель

Приоритеты оптимизации

Начните с подключения к ChatGPT API: это самый простой способ сразу снизить цену тех же токенов на 50%. Затем переходите к изменениям моделей, контекста, кеширования и логики повторных запросов.

ПриоритетЧто сделатьСложность
1Подключиться к ChatGPT APIНизкая
2Подбирать модель под сложность задачиСредняя
3Сокращать повторяющийся контекстСредняя
4Настроить prompt cachingТяжёлая
5Ограничивать длину ответаСредняя
6Настроить retries и stop conditionsТяжёлая

Что оптимизировать

1. Подключитесь к ChatGPT API

Вместо официального OpenAI API подключите ChatGPT API. Вы продолжите использовать те же модели, промпты и объём токенов, но будете платить на 50% меньше. Для перехода достаточно получить наш API-ключ и заменить endpoint.

Подключиться к ChatGPT API

2. Подбирайте модель под сложность задачи

Не отправляйте классификацию, извлечение полей и простые преобразования в самую дорогую модель. Проверяйте качество на собственном наборе примеров и используйте более мощную модель только для задач, где она действительно улучшает результат.

TypeScript · routing моделей
const model = task.requiresDeepReasoning
  ? "gpt-5.6-sol"
  : "gpt-5.4-mini";

const res = await client.chat.completions.create({
  model,
  max_completion_tokens: task.requiresLongAnswer ? 1200 : 300,
  messages,
});

3. Сокращайте повторяющийся контекст

Не отправляйте всю историю диалога и все документы при каждом запросе. Оставляйте релевантные фрагменты, сводку предыдущих сообщений и инструкции, необходимые для текущего шага.

Без оптимизации

  • Вся история
  • Все документы
  • Повторные инструкции

≈ 12 400 входных токенов

После оптимизации

  • Краткая сводка
  • 3 релевантных фрагмента
  • Закешированные инструкции

≈ 3 100 входных токенов

−75% входных токенов в этом примере

4. Используйте prompt caching

Держите стабильные инструкции в начале, а переменные данные — в конце. Для GPT-5.6 задайте prompt_cache_key и явную точку кеширования после повторяемого префикса длиной не менее 1 024 токенов. Учитывайте не только дешёвые cache reads, но и cache writes по ставке 1,25× от обычного ввода: кеш выгоден, когда префикс действительно переиспользуется.

TypeScript · стабильный префикс для кеша
const res = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  max_completion_tokens: 500,
  prompt_cache_key: "support-policy-v1",
  prompt_cache_options: { mode: "explicit" },
  messages: [
    {
      role: "system",
      content: [{
        type: "text",
        text: policyAndInstructions,
        prompt_cache_breakpoint: { mode: "explicit" },
      }],
    },
    { role: "user", content: relevantChunks.join("\n\n") },
  ],
});

Официальная документация OpenAI по prompt caching ↗

5. Ограничивайте длину ответа

Задавайте реалистичный max_completion_tokens и просите модель отвечать в нужном формате. Этот лимит включает видимые и reasoning-токены. Потоковая выдача улучшает время до первого токена, но сама по себе не уменьшает число оплачиваемых токенов.

TypeScript · лимит и streaming
const stream = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  max_completion_tokens: 300, // cap, including reasoning tokens
  stream: true,
  stream_options: { include_usage: true },
  messages: [
    { role: "system", content: "Return only compact JSON with fields summary and risk_level. No Markdown." },
    ...messages,
  ],
});

for await (const chunk of stream) {
  if (chunk.usage) console.log(chunk.usage.completion_tokens); // billed output tokens
}

6. Держите повторные запросы под контролем

Повторяйте только временные ошибки и используйте exponential backoff. Не перезапускайте успешный запрос из-за ошибки в интерфейсе или таймаута собственного сервиса.

Проверьте, что экономия не ухудшила качество

Меняйте по одному параметру и сравнивайте на одном и том же наборе запросов - иначе непонятно, что именно дало эффект. Хватит 30-100 типичных запросов одной дорогой функции.

  1. 1Соберите набор: 30-100 реальных запросов одной функции, без персональных данных.
  2. 2Замерьте на нём базовые значения метрик из таблицы ниже - это точка отсчёта.
  3. 3Измените ровно один параметр: endpoint, модель, объём контекста, caching или лимит ответа.
  4. 4Прогоните тот же набор и сравните метрики с базой.
МетрикаКак измеритьИзменение принимается, если
Стоимость действияСтоимость токенов ÷ число успешных действийСнизилась заметно, а не на пару процентов
КачествоДоля ответов, прошедших вашу проверку или ревьюОсталась на уровне базы
Задержкаp95 времени ответаНе выросла в пользовательских сценариях
ОшибкиДоля 4xx/5xx и повторных вызововНе выросла после изменения

Частые вопросы о снижении расходов

Как быстро снизить расходы на ChatGPT API?

Первым делом подключитесь к ChatGPT API: это сразу снижает цену тех же токенов на 50% и требует только замены API-ключа и endpoint. Затем измерьте расход по функциям продукта, сократите контекст и ответы, настройте кеширование и направьте простые задачи на более дешёвую модель.

Уменьшает ли streaming стоимость запроса?

Нет. Streaming ускоряет появление первых токенов в интерфейсе, но тарификация зависит от фактически обработанных входных и созданных выходных токенов. Для экономии ограничивайте max_completion_tokens и формат ответа.

Когда prompt caching действительно экономит деньги?

Когда запросы многократно используют один и тот же длинный префикс. Для GPT-5.6 кешируемый префикс должен содержать не менее 1 024 токенов. Сравнивайте cached_tokens и cache_write_tokens: запись кеша стоит дороже обычного ввода, поэтому одноразовые или постоянно меняющиеся префиксы могут не дать экономии.

Как проверить, что оптимизация не ухудшила качество?

Сохраните 30–100 типичных запросов без персональных данных, измените только один параметр и сравните стоимость, качество, задержку и ошибки на одном наборе. Оставляйте изменение только при приемлемом качестве результата.

Следующий шаг

Начните с самого дешёвого шага: те же модели на 50% дешевле, без переписывания кода. Дальше сверьте цены и подберите модель под каждую задачу.