Урок 12 из 12

API, вебхуки и автоматизация

Всё то же доступно по REST — интерфейс не обязателен. Асинхронное задание с вебхуком:

curl -X POST http://127.0.0.1:8653/api/jobs \
  -H "X-TT-Token: $TT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":{"custom":"HuggingFaceTB/SmolLM2-135M-Instruct"},
       "dataset_id":"<dataset-id>",
       "lora":{"r":16,"alpha":32},
       "params":{"lr":2e-4,"epochs":3,"bs":2,"gacc":1},
       "webhook":"https://example.com/hook"}'
  • POST /api/jobs создаёт асинхронное задание и возвращает URL мониторинга; GET /api/jobs/<id> даёт live-статус.
  • по завершении сервер отправляет POST на ваш вебхук с подписью X-TT-Signature: sha256=HMAC(body) — проверьте целостность на приёмнике тем же ключом.
  • пользовательские заголовки вебхука очищаются, приватные/внутренние адреса (SSRF) блокируются — кроме случая TT_WEBHOOK_ALLOW_PRIVATE=1 для чисто локальной автоматизации.
  • модалка очереди показывает колонку вебхука каждой задачи: доставлено ✓ или ошибка ✗.
Очередь с колонкой вебхуков
Совет: полная карта API — в INSTALL.md, поставляемом рядом с этим файлом.
Оглавление курса · Урок 12 из 12
TheTensorTune workbench