
Docsinarow - это приложение Python для сканирования и анализа изображений или документов. Инструмент предназначен для чтения и интерпретации текста, содержащегося в отсканированных документах, и классифицировать тип документа, используя модель GPT-3, предоставленную OpenAI. Для изображений он использует Google Vision для обнаружения ярлыков и категорий.
Клонировать репозиторий или загрузить сценарий Python.
Установите необходимые зависимости с PIP:
pip install .Настройте Tesseract-OCR на вашей системе и обновите путь в сценарии:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Замените ключ API OpenAI и клавишу API Google Cloud Vision API на свой собственный в скрипте:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Поместите свои изображения в каталог изображений. В настоящее время изображения должны начать с IMG и заканчивать с .jpg. Пример:
imgXXX . jpgЗапустите сценарий:
python ./src/main.pyDocsinarow поддерживает следующие форматы файлов:
В настоящее время во время разработки он поддерживает только файлы JPG. Это связано с тем, что этот проект запускался как способ организовать мои отсканированные документы, которые я получил по почте. В будущем мы расширим это, чтобы включить большое разнообразие типов файлов.
Запустите сценарий Python. Сценарий пройдет через каждое изображение в каталоге.
Для каждого изображения:
Если изображение содержит более 25 слов, оно считается документом. Скрипт извлекает текст, исправляет его с помощью GPT-3 и распечатывает исправленный текст. Он также классифицирует документ с использованием GPT-3 и добавляет исправленный текст в метаданные изображения. Если изображение содержит менее 25 слов, оно считается изображением. Сценарий использует Google Vision, чтобы обнаружить этикетки и распечатать их. После каждого изображения сценарий спрашивает, хотите ли вы продолжить следующее изображение. Вы можете ввести «y», чтобы продолжить или «n», чтобы остановить сценарий.
Этот проект использует Pyinstaller для составления сценариев Python в автономный исполняемый файл. Чтобы создать проект, вы можете использовать следующую команду:
pyinstaller --onefile . s rc m ain.pyЭто создаст один исполняемый файл из скрипта Main.py, расположенного в каталоге SRC. Исполняемый файл будет размещен в каталоге Dist.
В инструменте используется модель Openai Text-Davinci-003, которая имеет максимальную длину контекста 4096 токенов. Этот предел включает в себя как быстрый текст, так и завершение, поэтому убедитесь, что ваш текст корректирует и классифицирует подгонки в этом пределе.
Пожалуйста, также помните о затратах на использование, связанные с API OpenAI и Google Cloud Vision API.
Проект DocSinarow следует за определенной структурой для организации своего кода и ресурсов. Вот обзор структуры проекта:
DocsInARow/
├───.env
├───.gitignore
├───.pre-commit-config.yaml
├───logo.png
├───README.md
├───ROADMAP.md
├───setup.py
├───src
│ ├───config.py
│ ├───image_processing.py
│ ├───main.py
│ ├───text_processing.py
│ └───utils.py
├───tests
│ ├───test_image_processing.py
│ └───test_text_processing.py
└────test_images
└───test_image.jpg
config.py : этот модуль отвечает за загрузку переменных среды и настройку конфигурации для приложения из файла .env. Он устанавливает и проверяет необходимые переменные среды для других модулей. Если требуется переменная среды, отсутствует, возникает ошибка.
image_processing.py : содержит функции для задач обработки, связанных с изображением. Он получает файлы изображений из указанного каталога, добавляет текст в метаданные изображения и перемещает файлы в специфические каталоги для организации обработанных изображений.
main.py : служит основной точкой входа приложения. Он организует общий рабочий процесс обработки изображений, вызывая функции из других модулей для извлечения и правильного текста из изображений.
text_processing.py : предоставляет функции для задач обработки, связанных с текстами. Он включает в себя функции для извлечения текста из изображений с использованием OCR, правильного текста с использованием модели GPT-3 OpenAI, классификации документов с использованием GPT-3 и генерировать значимые имена файлов.
tests/test_text_processing.py : содержит модульные тесты для функций в text_processing.py . Это гарантирует, что функции обработки текста работают, как и ожидалось.
utils.py : этот файл предоставляет функции утилиты для вашего приложения. Вот разрушение того, что делает каждая функция:
get_windows_folder(CSIDL_FOLDER) : извлекает текущий путь специальной папки Windows (например, «мои документы», «мои картинки» и т. Д.) По его значению CSIDL .
get_windows_documents_folder() : использует функцию get_windows_folder() чтобы получить текущий путь папки «Мои документы» в Windows.
get_windows_pictures_folder() : использует функцию get_windows_folder() чтобы получить текущий путь папки «мои изображения» в Windows.
move_file_to_date_dir(filename, base_dir=None) : перемещает заданный файл в каталог для конкретной даты в папке «документы». Если папка «Документы» не указана, она по умолчанию по умолчанию папки «Мои документы» в Windows или папку «~/documents» в не-ок-системах. Специфичный каталог даты отформатируется как «год/месяц». Если базовый каталог или каталог для конкретной даты не существует, они создаются.
Взносы приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на вытяжение или открыть проблему.
Docsinarow-это программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.