
Docsinarow ist eine Python -Anwendung zum Scannen und Analysieren von Bildern oder Dokumenten. Das Tool soll den in gescannten Dokumenten enthaltenen Text lesen und interpretieren und den Dokumenttyp mit dem von OpenAI bereitgestellten GPT-3-Modell kategorisieren. Für Bilder verwendet es Google Vision, um Etiketten und Kategorien zu erkennen.
Klonen Sie das Repository oder laden Sie das Python -Skript herunter.
Installieren Sie die erforderlichen Abhängigkeiten mit PIP:
pip install .Richten Sie Tesseract-OCR auf Ihrem System ein und aktualisieren Sie den Pfad im Skript:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Ersetzen Sie den OpenAI -API -Schlüssel und den Google Cloud Vision API -Schlüssel durch Ihre eigenen im Skript:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Platzieren Sie Ihre Bilder in das Bilderverzeichnis. Derzeit müssen Bilder mit IMG beginnen und mit JPG enden. Beispiel:
imgXXX . jpgFühren Sie das Skript aus:
python ./src/main.pyDocsinarow unterstützt die folgenden Dateiformate:
Derzeit unterstützt es während der Entwicklung nur JPG -Dateien. Dies liegt daran, dass dieses Projekt organisch begonnen hat, um meine gescannten Dokumente zu organisieren, die ich per Post erhalten habe. In Zukunft werden wir dies um eine Vielzahl von Dateitypen erweitern.
Führen Sie das Python -Skript aus. Das Skript wird jedes Bild im Verzeichnis durchläuft.
Für jedes Bild:
Wenn das Bild mehr als 25 Wörter enthält, wird es als Dokument angesehen. Das Skript extrahiert den Text, korrigiert ihn mit GPT-3 und druckt den korrigierten Text aus. Es kategorisiert auch das Dokument mit GPT-3 und fügt den korrigierten Text zu den Metadaten des Bildes hinzu. Wenn das Bild weniger als 25 Wörter enthält, wird es als Bild angesehen. Das Skript verwendet Google Vision, um Etiketten zu erkennen und auszudrucken. Nach jedem Bild fragt das Skript, ob Sie mit dem nächsten Bild fortfahren möchten. Sie können 'y' eingeben, um fortzufahren oder 'n', um das Skript zu stoppen.
Dieses Projekt verwendet Pyinstaller, um die Python -Skripte in eine eigenständige ausführbare Datei zu kompilieren. Um das Projekt zu erstellen, können Sie den folgenden Befehl verwenden:
pyinstaller --onefile . s rc m ain.pyDadurch wird eine einzelne ausführbare Datei aus dem Main.Py -Skript im SRC -Verzeichnis erstellt. Die ausführbare Datei wird in das DIM -Verzeichnis platziert.
Das Tool verwendet das OpenAI-Text-Davinci-003-Modell, das eine maximale Kontextlänge von 4096 Token aufweist. Diese Grenze umfasst sowohl den Eingabeaufforderungstext als auch die Fertigstellung. Stellen Sie daher sicher, dass Ihr Text in dieser Grenze korrigiert und kategorisieren.
Bitte beachten Sie auch die Nutzungskosten, die mit der OpenAI -API und der Google Cloud Vision API verbunden sind.
Das Docsinarow -Projekt folgt einer bestimmten Struktur, um seinen Code und seine Ressourcen zu organisieren. Hier ist ein Überblick über die Projektstruktur:
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 : Dieses Modul ist für das Laden von Umgebungsvariablen und das Einrichten der Konfiguration für die Anwendung aus einer .env -Datei verantwortlich. Es richtet und validiert die erforderlichen Umgebungsvariablen für andere Module. Wenn eine erforderliche Umgebungsvariable fehlt, wird ein Fehler angesprochen.
image_processing.py : Enthält Funktionen für bildbezogene Verarbeitungsaufgaben. Es ruft Bilddateien aus einem bestimmten Verzeichnis ab, fügt den Bildmetadaten Text hinzu und verschiebt Dateien auf Datumsspezifische Verzeichnisse für die Organisation der verarbeiteten Bilder.
main.py : dient als Haupteintrittspunkt der Anwendung. Es orchestriert den Workflow der Gesamtbildverarbeitung und ruft Funktionen aus anderen Modulen auf, um Text aus den Bildern zu extrahieren und zu korrigieren.
text_processing.py : Bietet Funktionen für textbezogene Verarbeitungsaufgaben. Es enthält Funktionen zum Extrahieren von Text aus Bildern mit OCR, korrigieren Text mit OpenAIs GPT-3-Modell, kategorisieren Dokumente mit GPT-3 und generieren aussagekräftige Dateinamen.
tests/test_text_processing.py : Enthält Unit -Tests für die Funktionen in text_processing.py . Es stellt sicher, dass die Textverarbeitungsfunktionen wie erwartet funktionieren.
utils.py : Diese Datei bietet Dienstprogrammfunktionen für Ihre Anwendung. Hier ist eine Aufschlüsselung dessen, was jede Funktion tut:
get_windows_folder(CSIDL_FOLDER) : Ruft den aktuellen Pfad eines Windows Special -Ordners (wie 'My Dokumente', 'My Pictures' usw.) nach seinem CSIDL -Wert ab.
get_windows_documents_folder() : Verwendet die Funktion get_windows_folder() um den aktuellen Pfad des Ordners 'My Dokumente' in Windows zu erhalten.
get_windows_pictures_folder() : Verwendet die Funktion get_windows_folder() um den aktuellen Pfad des Ordners 'My Pictures' in Windows zu erhalten.
move_file_to_date_dir(filename, base_dir=None) : Verschiebt eine bestimmte Datei in ein Datumspezifischer Verzeichnis im Ordner "Dokumente". Wenn der Ordner "Dokumente" nicht angegeben wird, wird der Ordner "My Dokumente" in Windows oder im Ordner "~/documents" in Nicht-Windows-Systemen standardmäßig angegeben. Das Datumsspezifische Verzeichnis ist als "Jahr/Monat" formatiert. Wenn entweder das Basisverzeichnis oder das Datumspezifische Verzeichnis nicht vorhanden ist, werden sie erstellt.
Beiträge sind willkommen! Bitte zögern Sie nicht, eine Pull -Anfrage einzureichen oder ein Problem zu öffnen.
Docsinarow ist Open-Source-Software, die unter der MIT-Lizenz lizenziert wurde.