Prediction

Каждый запрос к API модели создаёт новый объект Prediction

Определение

Каждый запуск модели создает прогноз (prediction) - объект, содержащий входные параметры, полученные результаты и метаданные (версия модели, пользователь, статус и временные метки). Каждый прогноз имеет структуру:

  • ID прогноза
  • Входные данные
  • Параметры инференса
  • Результаты инференса
  • Временные метки
  • Статус выполнения
  • Метрики выполнения
  • Использованные ресурсы

Пример прогноза:

  
{
  "id":"d5a46834-c430-4342-9779-4ea5e76d057d",
  "input":{
    "audio":"https://you-app.ru/audio.mp3",
    "model":"large-v3-turbo",
    "diarize":false,
    "language":"auto",
    "speakers":1,
    "word_timestamp":false
  },
  "status":"starting",
  "output":null,
  "source":"api",
  "runtime":null,
  "created_at":"2024-06-26T05:26:31.974000Z"
}
  

Приведенный пример иллюстрирует как создан новый объект prediction с текущим статусом "starting" для модели openai/whisper, которая выполняет транскрибацию аудиофайлов. Как только прогноз будет закончен prediction получит статус succeeded, свойство output будет заполнено выходными данными модели, а runtime вернет общее время выполнения.

Создание прогноза

Чтобы создать прогноз необходимо отправить POST запрос в соответствующую конечную точку, например https://connecte.ai/api/v1/openai/whisper, посетите страницу со всеми эндпоинтами.

Пример API запроса:

    curl https://connecte.ai/api/v1/openai/whisper \
--request POST \
--header "Authorization: Bearer $CONNECTE_TOKEN" \
--header "Content-Type: application/json" \
--data '{
            "audio" : "https://site.ru/audio.mp3"
        }'
    
Режимы обработки прогнозы

Существуют два режима создания прогнозов по API - ASYNC, SYNC

Асинхронный режим (по умолчанию)

  • Для более длительных и ресурсоемких вычислений
  • После создания prediction переходит в статус "processing" и возвращает ID
  • Когда статус поменяется на succeeded или failed отправит webhook
  • ID позволяет проверять статус обработки и получать результаты в любой момент

Синхронный режим (SYNC)

  • Оптимизирован для легковесных моделей
  • Предполагает мгновенные (или близкие к нему) вычисления
  • Результат обработки непосредственно в ответе запроса
Синхронный режим

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

Чтобы создать синхронный запрос добавьте HTTP заголовок Prefer со значением sync:

    curl https://connecte.ai/api/v1/openai/whisper \
--request POST \
--header "Prefer: sync" \
--header "Request-Timeout: 10" \
--header "Authorization: Bearer $CONNECTE_TOKEN" \
--header "Content-Type: application/json" \
--data '{
            "audio" : "https://site.ru/audio.mp3"
        }'
    

Ответ будет содержать только выходные данные модели:

    {
    "segments":{...},
    "transcription":{...},
    "translation":{...},
    "detected_language":{...}
}
    
Жизненный цикл прогноза

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

  • Pending - ваш запрос прошел валидацию -> создан прогноз -> обрабатывается
  • Queued - ограничений нет, попадает в очередь
  • Starting - инициализация модели, если модель в состоянии "теплая" стадия проходит мгновенно
  • Processing - модель запущена, происходят вычисления
  • Succeeded - прогноз завершен, выходные данные готовы
  • Failed - на одном из этапов произошла ошибка
  • Canceled - отменен пользователем
Получение результатов

Есть несколько способов получать результаты прогнозов. Если вы не используете API, а делаете запросы к моделям только через веб-форму то вы легко можете посмотреть результаты ваших прогнозов в личном кабинете.

Когда вы работаете с ресурсоемкими задачами требующие длительных вычислений вы можете опрашивать API отправляя запросы через каждые n секунд для проверки статуса прогноза.

Если вы хотите более оперативно получать информацию о готовности прогноза, используйте инструмент webhook'ов. Просто добавьте url в заголовок X-Webhook-URL, как только прогноз перейдет в состояние Succeeded или Failed на ваш URL придет webhook уведомление.

Использование вебхука:

    curl https://connecte.ai/api/v1/openai/whisper \
--request POST \
--header "X-Webhook-URL: https://your-app.ru/connecte-url" \
--header "Authorization: Bearer $CONNECTE_TOKEN" \
--header "Content-Type: application/json" \
--data '{
            "audio" : "https://site.ru/audio.mp3"
        }'
    
Загрузка...

Предыдущая
Модели
Следующая
Вебхуки
Была ли статья полезна?
Содержание: