Бонусы за приглашения

Как работают бонусы за приглашения

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

GPT Image 2: первый запрос к Image API

Как отправить первый запрос к GPT Image 2 через BetterToken, сохранить изображение из b64_json и быстро разобрать ошибки ключа, модели и баланса.

Содержание

Первое изображение через BetterToken можно получить одним синхронным HTTP-запросом. Нужен собственный API Key и POST на https://www.bettertoken.ai/v1/images/generations. Для проверяемого старта укажите gpt-image-2, n=1, размер, response_format=b64_json и output_format=png. Ответ содержит изображение в data[0].b64_json: его нужно декодировать и сохранить как файл.

BetterToken предоставляет OpenAI-compatible Image API, но является независимым сервисом: ключ, баланс и история запросов находятся в аккаунте BetterToken, а не в OpenAI. Перед запуском откройте текущую Image API Docs и страницу моделей и цен. Статья объясняет первый цикл и сохранение файла; полную изменяемую спецификацию параметров не дублирует.

Что понадобится

  • curl для отправки запроса;
  • собственный BetterToken API Key;
  • точный Base URL https://www.bettertoken.ai/v1;
  • модель gpt-image-2 для этого Image API;
  • утилита для декодирования Base64 или короткий скрипт на Python.

Не вставляйте настоящий ключ в исходный код, скриншоты или команду, которая попадёт в историю shell. Сохраните его в переменной окружения:

export BETTERTOKEN_API_KEY="your_api_key_here"

Значение выше — только заполнитель. Используйте свой ключ и не публикуйте его.

Первый запрос к GPT Image 2

Готовы выполнить запрос своим ключом? Создайте аккаунт BetterToken, получите API Key и сохраните его вне исходного кода. Создать аккаунт BetterToken

Отправьте запрос на endpoint генерации изображений:

curl https://www.bettertoken.ai/v1/images/generations \
  -H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A clean editorial illustration of a coding desk at night, green and graphite palette",
    "n": 1,
    "size": "1024x1024",
    "response_format": "b64_json",
    "output_format": "png"
  }' \
  -o image-response.json

Если запрос выполнен успешно, файл image-response.json будет содержать объект data. Изображение находится в поле data[0].b64_json. Это синхронный контракт: для показанного первого запроса не нужен отдельный task ID, polling или callback. Строку можно сохранить в объектное хранилище, передать следующему шагу обработки или сразу декодировать в локальный файл.

Как сохранить изображение

Следующий пример читает JSON, декодирует Base64 и создаёт bettertoken-image.png. Он использует только стандартную библиотеку Python:

import base64
import json

with open("image-response.json", "r", encoding="utf-8") as source:
    payload = json.load(source)

image_base64 = payload["data"][0]["b64_json"]

with open("bettertoken-image.png", "wb") as target:
    target.write(base64.b64decode(image_base64))

print("Saved: bettertoken-image.png")

Откройте файл и убедитесь, что он соответствует prompt. Сам факт HTTP 200 подтверждает работу запроса, но не заменяет визуальную проверку результата.

Как улучшить второй запрос

Для первой проверки лучше использовать короткий prompt с четырьмя понятными частями:

  1. объект или сцена;
  2. визуальный стиль;
  3. композиция;
  4. палитра или освещение.

Например:

Editorial illustration of a developer reviewing an API response,
clean geometric style, centered composition, dark graphite background
with restrained green accents, no text, no logos

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

Размеры, качество и форматы относятся к изменяемой спецификации. Перед вторым запросом выберите поддерживаемое значение в текущей Image API Docs, а не переносите параметр из чужого provider или старого примера. Текущий BetterToken контракт не подтверждает асинхронные task/callback, пакетную обработку, шаблоны для продавцов или гарантированное качество результата.

Типичные ошибки

401: ключ не принят

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

402 или ошибка баланса

Откройте кабинет BetterToken и проверьте доступный баланс. Оплаченный баланс BetterToken не обнуляется автоматически в конце месяца, но каждый запрос требует достаточного остатка.

404: неверный путь

Для генерации используется полный путь:

https://www.bettertoken.ai/v1/images/generations

Не заменяйте его на Chat Completions endpoint и не используйте адрес api.openai.com: ключ BetterToken работает с endpoint BetterToken.

400: неверная модель или параметры

Вернитесь к минимальному примеру выше и проверьте типы значений. Для этой инструкции используется точный Model ID gpt-image-2. Если API сообщает, что модель или параметр недоступны, сверяйте их с документацией Image API.

429 или 5xx

Не запускайте бесконечный цикл повторов. Сохраните HTTP-код, время запроса и безопасную часть ответа, затем повторите с задержкой. В BetterToken Dashboard можно сопоставить запрос по времени и увидеть модель, статус и фактическое списание — без публикации полного prompt.

Проверка перед интеграцией в приложение

Перед тем как переносить запрос в backend или автоматизацию, убедитесь, что:

  • ключ хранится в переменной окружения или менеджере секретов;
  • запрос уходит на BetterToken, а не на endpoint другого провайдера;
  • модель и параметры взяты из актуальной документации;
  • Base64 декодируется без ошибок;
  • приложение ограничивает повторы и обрабатывает не-2xx ответы;
  • стоимость проверена на текущей странице цен, а не по старому обзору.

После этого можно перенести тот же контракт в SDK или HTTP-клиент вашего приложения. Начните с минимального запроса, сохраните один результат и только затем добавляйте поддерживаемые текущей Docs параметры, собственное хранение и ограниченную retry-логику.

Короткий вывод

Первый рабочий цикл состоит из трёх шагов: отправить POST на BetterToken Image API, взять синхронный data[0].b64_json и декодировать его в PNG. Перед запуском проверьте актуальные параметры и цену выбранной модели.

Готовы оптимизировать LLM workflow?

Подключите единый API, управляйте ключами и контролируйте расходы на AI-модели в BetterToken.

Начать бесплатно