Чат в браузере или API: что выбрать для своей задачи

Чат в браузере удобен для ручной работы, API — для автоматизации. Цены за токены одинаковые, а разница — в контроле, истории и в том, как растёт стоимость диалога.

5 мин · · API-ключи · разработка · оплата

Чат в браузере или API — выбор, который встаёт перед каждым, кто начинает работать с моделями. В Zukko оба варианта списывают с одного долларового баланса по одним и тем же ценам за токены, но подходят для разных сценариев. Разбираем, когда хватает чата, когда нужен API и как в обоих случаях считается стоимость.

Что такое чат Zukko

Чат открывается в кабинете по адресу zukko.pro/app/chat. Это привычный интерфейс диалога с моделью, подключённый к вашему аккаунту:

  • модели — те же, что доступны через API; выбираются в чате из списка;
  • оплата — каждый ответ списывается с общего баланса в долларах;
  • прозрачность — у ответа видно число токенов и стоимость;
  • история — диалоги сохраняются в аккаунте, их можно продолжить или удалить.

Ключ API для чата не нужен: достаточно войти в кабинет с подтверждённой почтой и иметь положительный баланс.

Когда хватает чата

  1. Вы работаете руками. Задаёте вопрос, читаете ответ, уточняете. Интеграция не нужна.
  2. Задача разовая или редкая. Разобрать один файл, набросать текст, разобраться в ошибке.
  3. Вы подбираете промпт. В чате удобно перебирать формулировки и сравнивать ответы разных моделей, прежде чем переносить их в код.

Пример расхода: вопрос с контекстом на 3000 входных токенов и ответ на 1000 выходных на claude-sonnet-5: (3000 × 0.3 + 1000 × 0.3) / 1 000 000 = $0.0012. На $10 таких запросов поместится 10 / 0.0012 ≈ 8300.

Как растёт стоимость длинного диалога

Модель не «помнит» разговор сама: при каждом новом сообщении в неё заново отправляется вся предыдущая переписка. Поэтому каждое следующее сообщение в длинном диалоге дороже предыдущего.

Пример: 20 сообщений, в каждом вопрос на 200 токенов и ответ на 500, модель claude-sonnet-5.

  • Вход на n-м сообщении: 700 × (n − 1) + 200 токенов.
  • Сумма входа за 20 сообщений: 700 × 190 + 20 × 200 = 137 000 токенов; выход: 20 × 500 = 10 000.
  • Стоимость: (137 000 + 10 000) × 0.3 / 1 000 000 ≈ $0.044.

Те же 20 вопросов в 20 новых диалогах: (4000 + 10 000) × 0.3 / 1 000 000 ≈ $0.0042. Вывод простой: если тема сменилась — начните новый диалог. Это работает и в чате, и в API.

Когда нужен API

  1. Запросы частые и однотипные. Обработка каждого нового письма, классификация обращений, генерация описаний товаров.
  2. Модель должна работать без человека. Бот, бэкенд, скрипт по расписанию, CI.
  3. Нужен контроль. Свой системный промпт, параметры запроса (max_tokens, формат ответа), обработка ошибок, логирование, повторные попытки.
  4. Нужна обработка пачками. Тысяча документов — это цикл в коде, а не тысяча копипастов.

Стоимость того же запроса через API такая же — $0.0012. API экономит не деньги за токены, а время и ручные ошибки.

Сравнение по удобству

АспектЧат в браузереAPI
Начало работыВойти в кабинетСоздать ключ, написать код
ЗапросВручнуюПрограммный вызов
ИсторияСохраняется в аккаунтеЛогируете сами
Контекст диалогаЧат передаёт историю самПередаёте messages сами
Контроль расходовОбщий балансЛимиты на каждый ключ
РезультатЧитаете и копируетеСразу в вашей программе

Минимальный пример API

Python с официальным OpenAI SDK:

bash
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",
    api_key=os.environ["OPENAI_API_KEY"],  # ключ fetch_...
)

response = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Предложи три названия для сервиса заметок"}],
)

print(response.choices[0].message.content)
usage = response.usage
cost = (usage.prompt_tokens + usage.completion_tokens) * 0.3 / 1_000_000  # цена claude-sonnet-5
print(f"Токены: {usage.prompt_tokens} + {usage.completion_tokens}, стоимость ≈ ${cost:.6f}")

То же через curl:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer fetch_ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Подробнее — в быстром старте и справке по Chat Completions.

Контроль расходов

В чате расход ограничен только балансом. Для API у каждого ключа можно задать дневной и месячный лимит в долларах и список разрешённых моделей. Когда лимит исчерпан, запросы с ключом получают HTTP 429 с кодом key_daily_limit_reached или key_monthly_limit_reached. Если на балансе меньше $0.01, любые запросы получают 402 insufficient_balance. Подробнее — в разделе о лимитах ключей.

Практичный порядок: сначала чат, потом API

  1. Подберите промпт в чате. Попробуйте несколько формулировок и моделей, посмотрите на стоимость ответов.
  2. Перенесите финальный вариант в код. Системную инструкцию — в role: system, примеры — в сообщения.
  3. Создайте отдельный ключ под приложение с лимитами.
  4. Следите за расходом в разделе «Использование» кабинета.

Модели в чате и в API одни и те же: Claude, GPT и GLM. Актуальный список — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете.

Создание ключа для API

  1. Откройте страницу ключей и нажмите «Создать ключ».
  2. Задайте имя (например, python-script), при желании — дневной и месячный лимит и разрешённые модели.
  3. Скопируйте ключ fetch_... сразу: полностью он показывается один раз, при создании.
  4. Сохраните его в переменной окружения, а не в коде.

Частые вопросы

Нужен ли ключ, чтобы пользоваться чатом?

Нет. Чат работает от вашего аккаунта и списывает с общего баланса. Ключ нужен только для запросов к API из программ и инструментов.

Действуют ли лимиты ключа на чат?

Лимиты задаются для ключей и относятся к запросам по API с этим ключом. Чат ограничен балансом аккаунта. Если хотите разделить расходы, используйте отдельные ключи для разных приложений и смотрите расход по ним в кабинете.

Что делать, если ключ утёк?

Отзовите его на странице ключей кнопкой «Отозвать ключ» — он сразу перестанет работать. Затем создайте новый и обновите его в приложении.

Можно ли вести одну и ту же переписку в чате и в API?

Нет, это разные места: история чата хранится в кабинете, а в API историю диалога вы передаёте сами в поле messages. Удачный промпт из чата просто скопируйте в код.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.