
Docsinarow est une application Python pour numériser et analyser des images ou des documents. L'outil est conçu pour lire et interpréter le texte contenu dans des documents numérisés et catégoriser le type de document à l'aide du modèle GPT-3 fourni par OpenAI. Pour les images, il utilise Google Vision pour détecter les étiquettes et les catégories.
Clone le référentiel ou téléchargez le script Python.
Installez les dépendances nécessaires avec PIP:
pip install .Configurez Tesseract-OCR sur votre système et mettez à jour le chemin du script:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Remplacez la touche API OpenAI et la clé API Google Cloud Vision par le vôtre dans le script:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Placez vos images dans le répertoire des images. Actuellement, les images doivent commencer par IMG et se terminer par .jpg. Exemple:
imgXXX . jpgExécutez le script:
python ./src/main.pyDocsinarow prend en charge les formats de fichiers suivants:
Actuellement, pendant le développement, il ne prend en charge que les fichiers JPG. En effet, ce projet a commencé comme un moyen d'organiser mes documents numérisés que j'ai reçus par la poste. À l'avenir, nous allons développer cela pour inclure une grande variété de types de fichiers.
Exécutez le script Python. Le script passera par chaque image dans le répertoire.
Pour chaque image:
Si l'image contient plus de 25 mots, elle est considérée comme un document. Le script extrait le texte, le corrige à l'aide de GPT-3 et imprime le texte corrigé. Il classe également le document à l'aide de GPT-3 et ajoute le texte corrigé aux métadonnées de l'image. Si l'image contient moins de 25 mots, elle est considérée comme une image. Le script utilise Google Vision pour détecter les étiquettes et les imprimer. Après chaque image, le script demande si vous souhaitez continuer à l'image suivante. Vous pouvez taper «y» pour continuer ou «n» pour arrêter le script.
Ce projet utilise Pyinstaller pour compiler les scripts Python dans un exécutable autonome. Pour construire le projet, vous pouvez utiliser la commande suivante:
pyinstaller --onefile . s rc m ain.pyCela créera un seul fichier exécutable à partir du script main.py situé dans le répertoire SRC. L'exécutable sera placé dans le répertoire DIST.
L'outil utilise le modèle OpenAI Text-DavinciCI-003, qui a une longueur de contexte maximale de 4096 jetons. Cette limite comprend à la fois le texte rapide et l'achèvement, alors assurez-vous que votre texte pour corriger et catégoriser les ajustements dans cette limite.
Veuillez également être conscient des coûts d'utilisation associés à l'API OpenAI et à l'API Google Cloud Vision.
Le projet Docsinarow suit une structure spécifique pour organiser son code et ses ressources. Voici un aperçu de la structure du projet:
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 : ce module est responsable du chargement des variables d'environnement et de la configuration de la configuration de l'application à partir d'un fichier .env. Il configure et valide les variables d'environnement nécessaires pour d'autres modules. Si une variable d'environnement requise est manquante, une erreur est augmentée.
image_processing.py : contient des fonctions pour les tâches de traitement liées à l'image. Il récupère les fichiers image à partir d'un répertoire spécifié, ajoute du texte aux métadonnées d'image et déplace des fichiers dans des répertoires spécifiques à ce jour pour organiser les images traitées.
main.py : sert de point d'entrée principal de l'application. Il orchestre le flux de travail global de traitement d'image, appelant les fonctions d'autres modules pour extraire et corriger le texte des images.
text_processing.py : fournit des fonctions pour les tâches de traitement liées au texte. Il comprend des fonctions pour extraire du texte d'images à l'aide de l'OCR, du texte correct à l'aide du modèle GPT-3 d'OpenAI, catégoriser des documents à l'aide de GPT-3 et générer des noms de fichiers significatifs.
tests/test_text_processing.py : contient des tests unitaires pour les fonctions dans text_processing.py . Il garantit que les fonctions de traitement de texte fonctionnent comme prévu.
utils.py : ce fichier fournit des fonctions d'utilité pour votre application. Voici une ventilation de ce que fait chaque fonction:
get_windows_folder(CSIDL_FOLDER) : récupère le chemin actuel d'un dossier spécial Windows (comme «mes documents», «mes images», etc.) par sa valeur CSIDL .
get_windows_documents_folder() : utilise la fonction get_windows_folder() pour obtenir le chemin actuel du dossier «mes documents» dans Windows.
get_windows_pictures_folder() : utilise la fonction get_windows_folder() pour obtenir le chemin actuel du dossier «mes images» dans Windows.
move_file_to_date_dir(filename, base_dir=None) : déplace un fichier donné à un répertoire spécifique à la date dans le dossier 'Documents'. Si le dossier «Documents» n'est pas spécifié, il est par défaut dans le dossier «Mes documents» dans Windows ou dans le dossier «~ / documents» dans les systèmes non Windows. Le répertoire spécifique à la date est formaté comme «année / mois». Si le répertoire de base ou le répertoire spécifique à la date n'existe pas, ils sont créés.
Les contributions sont les bienvenues! N'hésitez pas à soumettre une demande de traction ou à ouvrir un problème.
Docsinarow est un logiciel open source sous licence MIT.