Я работаю над приложением OCR. Я использую докер для своего приложения. Приложение состоит из 4 контейнеров.
- Конвертор (преобразует PDF в изображение)
- Очиститель (Очищает изображение)
- Транскрибер (Преобразует изображение в текст)
- Все вОдин
Контейнер AllinOne объединяет все остальные контейнеры через вызовы API. API реализованы с использованием Flask. Контейнер AllinOne доступен для сервера. Рабочий процесс выглядит следующим образом: Почтальон (Запрос пользователя) -> AllinOne -> Конвертор -> AllinOne -> Очиститель -> Allinone -> Транскрибер -> Allinone -> Почтальон (ответ)
Теперь я пытаюсьдобавить функцию в мое приложение под названием Массовая загрузка, где пользователи смогут загружать ZIP-файл. Поскольку массовая загрузка файлов занимает больше времени, мне нужны промежуточные результаты о состоянии процесса. У меня есть file_id, выделенный для каждого загружаемого файла. Мне нужно вернуть file_id пользователю, чтобы он мог проверить состояние обработки своего файла. Но обработка должна происходить в фоновом режиме.
Если я верну file_id, обработка остановится, иначе file_id будет возвращен только после обработки файла, что бесполезно. Должен ли я реализовать два вызова API? Один для загрузки файла и возврата file_id, а другой для обработки файла и возврата результата. Есть ли способ отправлять частые обновления в ответ от API? Можно ли сделать это лучше? Не стесняйтесь предлагать любые изменения в архитектуре.
Заранее спасибо, Кришна Прасад AS