Данный скрипт берет изображения и PDF-документы из бакета Object Storage, отправляет их на распознавание в сервис Vision, после чего – сохраняет результат распознавания обратно в бакет Object Storage.
Скрипт написан на Python поэтому может быть легко разобран, доработан и оптимизирован под ваш сценарий.
-
Пользователь загружает изображения или документы в поддерживаемых форматах в бакет Object Storage, в директорию (префикс)
input
. -
Скрипт получает папки
input
в бакете, составляет список файлов, которые необходимо отправить на распознавание, исключая файлы неподдерживаемого формата, и исключает файлы, которые уже были распознаны (за счет проверки наличия файла в папкеresult
). -
Скрипт скачивает по одному по прямым ссылкам файлы из списка, составленного ранее; и отправляет в сервис Vision.
-
Сервис Vision получает файл, обрабатывает его и возвращает результат распознавания, который сохраняется в папку
result
в формате JSON и в формате TXT.
Скрипт может быть запущен локально, для этого необходимо указать следующие переменные окружения:
Переменная | Описание |
---|---|
S3_BUCKET | Имя бакета в Object Storage |
S3_PREFIX | Префикс (или директория) для входящих файлов, например, input |
S3_PREFIX_OUT | Префикс (или директория) для результатов обработки, например, result |
S3_KEY | ID статического ключа доступа |
S3_SECRET | Секрет статического ключа доступа |
API_SECRET | Секрет API-ключа |
FOLDER_ID | ID каталога |
Рекомендуется разделить файлы для обработки и результаты обработки при помощи разных префиксов (подпапок), иначе можно получить непредсказуемое поведение.
Для того, чтобы создать ключ для S3 и API-ключ – необходимо создать сервисную учетную запись, а также – назначить роли storage.editor
и ai.vision.user
.
Можно воспользоваться готовым Terraform модулем, который создает все необходимые ресурсы для начала обработки изображений и документов.