Данное решение позволяет получать изображения и PDF-документы из бакета Object Storage, отправлять их на распознавание в сервис Vision, а результаты распознавания сохранять обратно в бакет Object Storage.
Скрипт написан на Python поэтому может быть легко разобран, доработан и оптимизирован под ваш сценарий.
-
Пользователь загружает изображения или документы в поддерживаемых форматах в бакет Object Storage, в директорию (префикс)
input
, которую нужно создать. -
Скрипт получает файлы, созданные в директории
input
в бакете при помощи триггера и отправляет на распознавание. -
Файлы отправляются на распознавание, их
operation_id
сохраняется в директорииprocess
. -
Скрипт запускается по таймеру, проверяет статус операций в директории
process
. В случае успешного завершения операции, результаты сохраняются вresult
в формате JSON и в формате TXT, а операция вprocess
удаляется.
Можно воспользоваться готовым Terraform модулем, который создает все необходимые ресурсы для начала обработки изображений и документов, а именно:
- Создает контейнер
- Создает триггеры
- Создает бакет
- Создает необходимые учетные записи и права
Будет создан бакет вида ocr-recognition-xxx
, в котором нужно создать директорию input
и загрузить туда PDF-документы или изображения.
Результат распознавания будет сохранен в тот же бакет, в директорию result
.
Скрипт может быть запущен локально:
python src/async_ocr_client.py --api-key xxx --image-path file.png
В результате будет возвращен operation_id
, который можно использовать для получения результата:
python src/async_ocr_client.py --operation-id xxx --api-key yyy --output file.txt
Для того, чтобы создать API-ключ:
- Необходимо создать сервисную учетную запись
- Назначить роль
ai.vision.user
- Создать API-ключ