Руководство по CLI и SDK
Обзор
Clore.ai предоставляет REST API который обеспечивает полный программный доступ к GPU-маркетплейсу — просмотр серверов, создание заказов, мониторинг развертываний и отмена аренды.
Примечание: На данный момент официального CLI-исполняемого файла нет. Вся автоматизация выполняется напрямую через REST API с помощью таких инструментов, как
curl, Python или Node.js.
Базовый URL: https://api.clore.ai/v1
Формат ответа: JSON. Каждый ответ включает поле code , указывающее статус.
Аутентификация
Сгенерируйте ваш API-ключ в панели управления Clore.ai:
Войдите в свою учетную запись
Перейдите в API раздел в настройках
Сгенерируйте и скопируйте ваш API-ключ
Формат заголовка:
auth: YOUR_API_KEY⚠️ Важно: Заголовок auth — это
auth, неAuthorization: Bearer. Использование неверного формата вернет код3(Неверный API-токен).
Пример:
curl -H 'auth: YOUR_API_KEY' 'https://api.clore.ai/v1/marketplace'Быстрый старт
Список серверов маркетплейса
Просмотрите все доступные GPU-серверы:
Ответ:
Получить свои заказы
Включая завершенные/истекшие заказы:
Создать заказ (по требованию)
Ответ:
Создать спотовый заказ
Спотовые заказы дешевле, но их могут перебить. Вы задаете свою цену за день:
Проверить статус заказа
Активные заказы включают pub_cluster (имена хостов) и tcp_ports для доступа по SSH:
Подключитесь по SSH к арендованному серверу:
Отменить заказ
При желании сообщите о проблеме с сервером:
Python SDK
Легкая обертка с использованием requests библиотеки. Установите ее с помощью:
Класс CloreClient
Полный рабочий пример
Пример Node.js
Используя нативный fetch API (Node.js 18+):
Типовые рабочие процессы
Найти самый дешёвый RTX 4090 и арендовать его
Мониторинг моих заказов
Автоаренда при снижении цены ниже X
WebSocket
REST API Clore.ai в настоящее время не предоставляет конечную точку WebSocket. Для мониторинга в реальном времени используйте опрос с разумным интервалом (см. ограничения по частоте запросов ниже).
Ограничения по частоте запросов
Большинство эндпоинтов
1 запрос/сек
create_order
1 запрос/5 секунд
set_spot_price (снижение цены)
Один раз каждые 600 секунд
Ответ при превышении лимита запросов (код 5):
Рекомендации:
Добавьте
time.sleep(1)между последовательными вызовами APIДля
create_order, подождите как минимум 5 секунд между запросамиИспользуйте интервалы опроса 60+ секунд для циклов мониторинга
Кэшируйте данные маркетплейса локально, если нужно часто их запрашивать
Вспомогательная функция для Python:
Обработка ошибок
Каждый ответ API включает в себя code поле. Значение 0 означает успех.
Коды ошибок
0
Успех
—
1
Ошибка базы данных
Повторите попытку через некоторое время
2
Неверные входные данные
Проверьте тело запроса/параметры
3
Недействительный API-токен
Проверьте свой API-ключ в панели управления
4
Недействительная конечная точка
Проверьте URL конечной точки
5
Превышен лимит запросов (1 запрос/сек)
Добавляйте задержки между запросами
6
Ошибка приложения (см. ошибка поле)
Читайте ошибка поле для подробностей
Подошибки кода 6
ошибка значение
Значение
exceeded_max_step
Снижение спотовой цены слишком велико; проверьте max_step поле
can_lower_every_600_seconds
Нужно подождать перед повторным снижением спотовой цены; проверьте time_to_lowering
Пример обработки ошибок в Python
Пример обработки ошибок в JavaScript
Доступные Docker-образы
Clore.ai предоставляет готовые образы, оптимизированные для GPU-нагрузок:
cloreai/ubuntu20.04-jupyter
Ubuntu 20.04 + JupyterLab
cloreai/ubuntu22.04-jupyter
Ubuntu 22.04 + JupyterLab
Вы также можете использовать любой публичный образ Docker Hub. Для доступа к GPU используйте образы с поддержкой CUDA, например:
Проброс портов
При создании заказа укажите порты, которые нужно открыть:
"tcp"— прямой проброс TCP-портов (для SSH, пользовательских серверов)"http"— HTTPS-прокси (для Jupyter, веб-интерфейсов). Разрешён только один HTTP-порт наhttp_portполе.
После создания заказа данные подключения появляются в my_orders:
Подключение по SSH:
Откройте Jupyter в браузере: https://n1.c1.clorecloud.net (использует http_port)
Последнее обновление
Это было полезно?