Контроль расходов: подсчёт токенов и бюджеты
Считайте токены с помощью tiktoken, оценивайте стоимость до отправки запроса и устанавливайте бюджеты на каждый запрос и день.
«Контроль расходов: подсчёт токенов и бюджеты» — бесплатный урок AI Agents на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Почему важно считать токены
Оплата взимается за каждый токен. Неконтролируемый цикл агента без бюджета токенов может потратить сотни долларов за несколько минут.
Подсчёт токенов — самая важная привычка для контроля расходов.
Что такое токен?
Токен — это фрагмент текста, который обрабатывает модель. Приблизительные правила для английского языка:
- 1 токен ≈ 4 символа
- 1 токен ≈ 0,75 слова
- 100 токенов ≈ 75 слов
Код, эмодзи и неанглоязычный текст используют больше токенов на один символ.
Подсчёт токенов с помощью tiktoken (OpenAI)
OpenAI предоставляет точный токенизатор:
# pip install tiktoken
import tiktoken
enc = tiktoken.encoding_for_model('gpt-4o-mini')
tokens = enc.encode('Hello, world!')
print(len(tokens)) # 4
print(tokens) # [9906, 11, 1917, 0]Подсчёт токенов в сообщениях
Полный подсчёт включает служебные данные структуры сообщений:
def count_message_tokens(messages, model='gpt-4o-mini'):
enc = tiktoken.encoding_for_model(model)
total = 0
for m in messages:
total += 4 # role + structural
total += len(enc.encode(m['content']))
return total + 2 # primingПодсчёт токенов с помощью Anthropic
Anthropic предоставляет серверную конечную точку для подсчёта:
count = client.messages.count_tokens(
model='claude-sonnet-4-5',
system='You are helpful.',
messages=[{'role': 'user', 'content': 'Hello'}],
)
print(count.input_tokens)Оценка стоимости до отправки
Умножьте количество токенов на цену одного токена, указанную на странице с тарифами провайдера:
INPUT_PRICE = 0.150 / 1_000_000 # gpt-4o-mini: $0.15 / 1M input tokens
OUTPUT_PRICE = 0.600 / 1_000_000
input_tokens = count_message_tokens(messages)
est_input_cost = input_tokens * INPUT_PRICE
print(f'Estimated input cost: ${est_input_cost:.6f}')Отслеживание фактической стоимости
После каждого вызова суммируйте данные об использовании:
total_cost = 0
response = client.chat.completions.create(...)
cost = (
response.usage.prompt_tokens * INPUT_PRICE +
response.usage.completion_tokens * OUTPUT_PRICE
)
total_cost += costБюджеты на один запуск
Установите жёсткий лимит для каждого запуска агента:
MAX_COST_PER_RUN = 0.50 # USD
if total_cost > MAX_COST_PER_RUN:
raise BudgetExceeded(f'Cost {total_cost} exceeds limit')Дневные бюджеты для пользователей
Отслеживайте стоимость для каждого пользователя в Redis и сбрасывайте её ежедневно:
key = f'cost:{user_id}:{today_date}'
current = float(redis.get(key) or 0)
if current + cost > 5.0:
raise QuotaExceeded()
redis.incrbyfloat(key, cost)
redis.expireat(key, midnight_tomorrow_ts)Ограничение max_tokens для каждого вызова
Самый значительный источник непредвиденных расходов — генерация ответа длиной 50 000 токенов. Ограничьте его:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
max_tokens=2048, # never more than 2k output
)Ограничение числа шагов агента
Сочетайте ограничения токенов с ограничением числа шагов (максимальным числом итераций):
MAX_STEPS = 20
for step in range(MAX_STEPS):
response = run_step(...)
if response.is_final():
break
else:
raise StepLimitExceeded()Ограничение выходных токенов
Зачем явно задавать max_tokens?
Итоги
Подсчёт токенов, максимальное значение max_tokens для каждого вызова, бюджеты на один запуск, квоты для пользователей и ограничения числа шагов. Для безопасной эксплуатации объединяйте все пять механизмов.
Часто задаваемые вопросы
Урок «Контроль расходов: подсчёт токенов и бюджеты» бесплатный?
Да — полный текст урока «Контроль расходов: подсчёт токенов и бюджеты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Контроль расходов: подсчёт токенов и бюджеты»?
Считайте токены с помощью tiktoken, оценивайте стоимость до отправки запроса и устанавливайте бюджеты на каждый запрос и день. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Контроль расходов: подсчёт токенов и бюджеты»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Вызов OpenAI API: chat.completions
- Вызов Anthropic API: messages
- Потоковая передача ответов (SSE)
- Контроль расходов: подсчёт токенов и бюджеты