Руководство по Python SDK

Полное руководство по Python SDK — синхронные/асинхронные клиенты, фильтрация маркетплейса, жизненный цикл заказа, спотовый рынок, операции с кошельком и обработка ошибок

circle-check

Для учебного руководства с реальными примерами см. Clore.ai Python SDK — автоматизируйте свои GPU-воркфлоу за 5 минутarrow-up-right

Установка

pip install clore-ai

SDK предоставляет два клиента:

  • CloreAI — синхронный (проще, подходит для скриптов)

  • AsyncCloreAI — асинхронный (быстрее для параллельных операций)

Оба имеют одинаковые методы и возвращают те же Pydantic-модели.


Sync vs Async — когда использовать каждый

Сценарий использования
Клиент
Почему

Простые скрипты, разовые задачи

CloreAI

Проще код, без async/await

Циклы мониторинга

CloreAI

Последовательные проверки подходят

Массовые запросы к маркетплейсу

AsyncCloreAI

Параллельные запросы = быстрее

Создание заказов пакетно

AsyncCloreAI

Создавайте несколько заказов параллельно

Веб-приложения

AsyncCloreAI

Неблокирующий ввод-вывод

Пример синхронного использования

Пример асинхронного использования

Менеджеры контекста (рекомендуется)

Оба клиента поддерживают менеджеры контекста для автоматической очистки:


Конфигурация клиента

SDK включает встроенный контроллер скорости запросов:

  • Общие запросы: 1 запрос/секунду

  • create_order: 5-секундная пауза между вызовами

  • Ошибки ограничения скорости (код 5): Автоматический экспоненциальный бэкофф


Фильтрация маркетплейса

Метод marketplace() запрашивает все доступные серверы и фильтрует на стороне клиента:

Расширенная фильтрация (на стороне клиента)

Для фильтров, не встроенных в метод, отфильтруйте возвращаемые Server объекты самостоятельно:

Поля модели сервера

Каждый MarketplaceServer объект имеет эти атрибуты и удобные свойства:

Поле
Тип
Описание

id

int

ID сервера (используйте это в create_order)

gpu_model

str | None

Описание GPU из спецификаций (свойство)

gpu_count

int

Количество GPU из gpu_array (свойство)

ram_gb

float | None

Системная ОЗУ в ГБ (свойство, из specs.ram)

price_usd

float | None

Цена по запросу в USD (свойство, из price.usd.on_demand_usd)

spot_price_usd

float | None

Спотовая цена в USD (свойство)

available

bool

Является ли сервер не арендованным (свойство)

location

str | None

Код страны из сетевых спецификаций (свойство)

specs

ServerSpecs | None

Аппаратные спецификации (CPU, ОЗУ, диск, GPU, сеть)

price

ServerPrice | None

Полная структура ценообразования

rented

bool | None

Арендован ли сервер в данный момент


Управление заказами

Создание заказов

Полные create_order Параметры

Параметр
Тип
Обязателен
Описание

server_id

int

Сервер для аренды

image

str

Docker-образ

type

str

"on-demand" или "spot"

currency

str

Валюта оплаты (например, "bitcoin")

ssh_password

str

Пароль SSH

ssh_key

str

Публичный SSH-ключ

ports

dict

Проброс портов ({"22": "tcp"})

env

dict

Переменные окружения

jupyter_token

str

Токен Jupyter ноутбука

command

str

Команда запуска

spot_price

float

Спотовая ставка (bid)

required_price

float

Требуемая цена

autossh_entrypoint

str

Точка входа Auto SSH

Просмотр заказов

Поля модели заказа

Поле
Тип
Описание

id

int

ID заказа

server_id

int | None

ID арендованного сервера

type

str

"on-demand" или "spot"

status

str | None

Статус заказа

image

str | None

Docker-образ

currency

str | None

Валюта оплаты

price

float | None

Цена

pub_cluster

str | None

Публичный IP / хостнейм

tcp_ports

dict | None

Проброс портов (например, {"22": 50022})

created_at

str | None

Временная метка создания

Мониторинг заказов

Отмена заказов


Управление серверами (для хостеров)

Если вы хостите GPU на Clore, SDK позволяет управлять вашими серверами:

Список ваших серверов

Получить конфигурацию сервера

Обновление настроек сервера


Спотовый рынок

Спотовые заказы на 30–50% дешевле, но могут быть прерваны, если кто-то перебьёт вашу ставку.

Просмотр спотовых предложений

Создать спотовый заказ

Настроить спотовую цену

Стратегия ставок на споте


Операции с кошельком

Проверка балансов

Оповещение о низком балансе


Рекомендуемые практики обработки ошибок

Иерархия исключений

Базовая обработка ошибок

Шаблон повторных попыток с бэкоффом

SDK имеет встроенные повторы для ограничений по скорости и сетевых ошибок (max_retries=3). Для повторных попыток на уровне приложения:


Советы по производительности

1. Повторно используйте клиент

2. Используйте Async для параллельных операций

3. Асинхронное пакетное создание заказов

circle-exclamation

4. Закрывайте клиентов по завершении


Полный пример: авто-масштабирование GPU-воркеров


Следующие шаги

Последнее обновление

Это было полезно?