Перейти к содержимому
GetAPI
Русский
Меню

GetAPI.ONE

Генерация изображений с GetAPI.ONE

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

Подготовьте поддерживаемый запрос

  • Откройте текущий каталог и выберите модель, заявленная конечная точка которой предназначена для генерации изображений.
  • Перед оплачиваемым вызовом проверьте актуальные цены; это руководство не фиксирует цену.
  • Начните с одного результата и только тех полей, которые указаны в контракте модели.
text
POST https://www.getapi.one/v1/images/generations

Отправьте минимальный запрос генерации

  1. Задайте GETAPI_ONE_API_KEY в доверенной среде процесса.
  2. Скопируйте точный идентификатор модели изображений из текущего каталога.
  3. Опишите в подсказке объект, композицию и ограничения.
  4. Сначала запросите один результат, затем расширяйте необязательные поля только после подтверждения поддержки моделью.
  5. Локально декодируйте ограниченный вывод base64. Если ответ содержит URL, запишите его для одобренного загрузчика с явными правилами исходящих соединений и хостов и повторной проверкой перенаправлений, а не открывайте его в процессе API.
shell
curl --fail-with-body https://www.getapi.one/v1/images/generations \
  -H "Authorization: Bearer $GETAPI_ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<IMAGE_MODEL_ID_FROM_CURRENT_CATALOG>",
    "prompt": "A clean product diagram of a secure server-side API flow",
    "n": 1
  }' > image-response.json
Проверьте data[0] и сохраните возвращённые байты
import base64
import json
from pathlib import Path
from urllib.parse import urlsplit

payload = json.loads(Path("image-response.json").read_text(encoding="utf-8"))
item = payload["data"][0]

if item.get("b64_json"):
    image_bytes = base64.b64decode(item["b64_json"], validate=True)
    if len(image_bytes) > 25 * 1024 * 1024:
        raise ValueError("Image exceeds the local 25 MB safety limit")
    Path("generated-image.bin").write_bytes(image_bytes)
elif item.get("url"):
    url = item["url"]
    parsed = urlsplit(url)
    if parsed.scheme != "https" or not parsed.hostname:
        raise ValueError("Refusing an invalid or non-HTTPS image URL")
    # Do not dereference provider-controlled URLs from a generic server example.
    # Give this record to an approved downloader that enforces your egress and
    # host policy, rejects private/link-local/loopback destinations, revalidates
    # every redirect, sends no ONE credential, and bounds the response bytes.
    Path("generated-image-url.txt").write_text(url, encoding="utf-8")
    print("URL recorded for an egress-controlled downloader")
else:
    raise ValueError("Expected data[0].url or data[0].b64_json")

Оцените результат

ПроверкаУсловие прохождения
Соответствие подсказкеНеобходимые объект и композиция присутствуют.
Безопасность и праваРезультат подходит предполагаемой аудитории, и у вас есть права на предоставленные материалы.
Контракт ответаПроверьте data[0].url или data[0].b64_json, подтвердите корректность и сохраните возвращённые байты.
Эксплуатационная записьИдентификатор модели, версия подсказки, идентификатор запроса при наличии и результат записаны без ключа.

Проверьте ожидаемый результат

  • HTTP-запрос выполнен успешно, а тело содержит структуру результата изображения, которую возвращает выбранная модель.
  • Декодированный файл base64 открывается как ожидаемый тип изображения, либо результат URL записан и затем получен только одобренным загрузчиком с контролем исходящих соединений, явными правилами хостов и повторной проверкой перенаправлений.
  • Консоль ONE регистрирует запрос или соответствующее использование.

Исправление ошибок запроса изображений

СимптомДействие
Неподдерживаемый параметрУдаляйте необязательные поля размера, качества, формата или количества, пока их поддержка конкретной моделью не подтверждена.
Пустой или непригодный результатПроверьте полное тело JSON и обработайте фактическое поле URL или кодированных данных; не предполагайте единый формат поставщика.
Отклонение по политике или входным даннымИзмените входные данные вместо многократной отправки одного запроса.

Безопасно храните входные и выходные данные

  • Храните ключи на сервере и проверяйте длину подсказки, число результатов и необязательные поля перед пересылкой.
  • Не отправляйте конфиденциальные исходные изображения или персональные данные, если это не разрешено утверждёнными правилами обработки данных.
  • Считайте возвращённые URL временными, если контракт поставщика явно не говорит обратное; копируйте одобренный результат в контролируемое хранилище.
  • Никогда не передавайте заголовок Authorization GetAPI.ONE по возвращённому URL изображения.
  • Считайте возвращённые URL недоверенными входными данными: применяйте явную политику исходящих соединений и хостов, блокируйте частные, локальные для канала и loopback-адреса и повторно проверяйте каждое перенаправление в отдельном загрузчике.

Дальнейшие действия