
Docsinarow adalah aplikasi Python untuk memindai dan menganalisis gambar atau dokumen. Alat ini dirancang untuk membaca dan menafsirkan teks yang terkandung dalam dokumen yang dipindai dan mengkategorikan jenis dokumen menggunakan model GPT-3 yang disediakan oleh OpenAI. Untuk gambar, ia menggunakan Google Vision untuk mendeteksi label dan kategori.
Klon Repositori atau unduh skrip Python.
Pasang dependensi yang diperlukan dengan PIP:
pip install .Siapkan Tesseract-OCR pada sistem Anda dan perbarui jalur dalam skrip:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Ganti kunci API OpenAI dan kunci API Google Cloud Vision dengan Anda sendiri di skrip:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Tempatkan gambar Anda di direktori gambar. Saat ini, gambar perlu dimulai dengan IMG dan berakhir dengan .jpg. Contoh:
imgXXX . jpgJalankan skrip:
python ./src/main.pyDocSinarow mendukung format file berikut:
Saat ini, selama pengembangannya hanya mendukung file JPG. Ini karena proyek ini orginally dimulai sebagai cara untuk mengatur dokumen yang saya pindai yang saya dapatkan melalui pos. Di masa depan kami akan memperluas ini untuk memasukkan berbagai jenis file.
Jalankan skrip Python. Script akan melalui setiap gambar di direktori.
Untuk setiap gambar:
Jika gambar berisi lebih dari 25 kata, itu dianggap sebagai dokumen. Script mengekstrak teks, mengoreksinya menggunakan GPT-3, dan mencetak teks yang dikoreksi. Ini juga mengkategorikan dokumen menggunakan GPT-3 dan menambahkan teks yang dikoreksi ke metadata gambar. Jika gambar berisi kurang dari 25 kata, itu dianggap sebagai gambar. Script menggunakan Google Vision untuk mendeteksi label dan mencetaknya. Setelah setiap gambar, skrip bertanya apakah Anda ingin melanjutkan ke gambar berikutnya. Anda dapat mengetik 'y' untuk melanjutkan atau 'n' untuk menghentikan skrip.
Proyek ini menggunakan PyInstaller untuk menyusun skrip Python menjadi mandiri yang dapat dieksekusi. Untuk membangun proyek, Anda dapat menggunakan perintah berikut:
pyinstaller --onefile . s rc m ain.pyIni akan membuat satu file yang dapat dieksekusi dari skrip Main.py yang terletak di direktori SRC. Yang dapat dieksekusi akan ditempatkan di direktori dist.
Alat ini menggunakan model OpenAI Text-Davinci-003, yang memiliki panjang konteks maksimum 4096 token. Batas ini mencakup teks cepat dan penyelesaian, jadi pastikan teks Anda untuk memperbaiki dan mengkategorikan kecocokan dalam batas ini.
Harap waspadai biaya penggunaan yang terkait dengan API Openai dan Google Cloud Vision API.
Proyek Docsinarow mengikuti struktur tertentu untuk mengatur kode dan sumber dayanya. Berikut gambaran struktur proyek:
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 : Modul ini bertanggung jawab untuk memuat variabel lingkungan dan menyiapkan konfigurasi untuk aplikasi dari file .env. Ini mengatur dan memvalidasi variabel lingkungan yang diperlukan untuk modul lain. Jika variabel lingkungan yang diperlukan tidak ada, kesalahan dinaikkan.
image_processing.py : Berisi fungsi untuk tugas pemrosesan terkait gambar. Ini mengambil file gambar dari direktori yang ditentukan, menambahkan teks ke metadata gambar, dan memindahkan file ke direktori khusus tanggal untuk mengatur gambar yang diproses.
main.py : berfungsi sebagai titik masuk utama aplikasi. Ini mengatur alur kerja pemrosesan gambar secara keseluruhan, fungsi panggilan dari modul lain untuk mengekstrak dan memperbaiki teks dari gambar.
text_processing.py : Menyediakan fungsi untuk tugas pemrosesan terkait teks. Ini termasuk fungsi untuk mengekstrak teks dari gambar menggunakan OCR, teks yang benar menggunakan model GPT-3 OpenAI, mengkategorikan dokumen menggunakan GPT-3, dan menghasilkan nama file yang bermakna.
tests/test_text_processing.py : berisi tes unit untuk fungsi di text_processing.py . Ini memastikan bahwa fungsi pemrosesan teks berfungsi seperti yang diharapkan.
utils.py : File ini menyediakan fungsi utilitas untuk aplikasi Anda. Berikut adalah rincian dari apa yang dilakukan setiap fungsi:
get_windows_folder(CSIDL_FOLDER) : Mengambil jalur saat ini dari folder khusus Windows (seperti 'dokumen saya', 'gambar saya', dll.) Dengan nilai CSIDL -nya.
get_windows_documents_folder() : Menggunakan fungsi get_windows_folder() untuk mendapatkan jalur saat ini dari folder 'dokumen saya' di windows.
get_windows_pictures_folder() : Menggunakan fungsi get_windows_folder() untuk mendapatkan jalur saat ini dari folder 'gambar saya' di windows.
move_file_to_date_dir(filename, base_dir=None) : Memindahkan file yang diberikan ke direktori khusus tanggal di folder 'dokumen'. Jika folder 'Dokumen' tidak ditentukan, itu default ke folder 'My Documents' di Windows, atau folder '~/dokumen' dalam sistem non-windows. Direktori khusus tanggal diformat sebagai 'tahun/bulan'. Jika direktori dasar atau direktori khusus tanggal tidak ada, mereka dibuat.
Kontribusi dipersilakan! Silakan mengirimkan permintaan tarik atau buka masalah.
Docsinarow adalah perangkat lunak open-source yang dilisensikan di bawah lisensi MIT.