
Docsinarow是用於掃描和分析圖像或文檔的Python應用程序。該工具旨在讀取和解釋掃描文檔中包含的文本,並使用OpenAI提供的GPT-3模型對文檔類型進行分類。對於圖像,它使用Google Vision檢測標籤和類別。
克隆存儲庫或下載Python腳本。
使用PIP安裝必要的依賴項:
pip install .在您的系統上設置Tesseract-OR,並更新腳本中的路徑:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"用腳本中的您自己替換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這將從位於src目錄中的main.py腳本中創建一個可執行文件。可執行文件將放置在DIST目錄中。
該工具使用OpenAI Text-Davinci-003型號,該模型的最大上下文長度為4096代幣。此限制同時包括提示文本和完成,因此請確保您的文本糾正並在此限制內對擬合進行分類。
還請注意與OpenAI API和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 :提供與文本相關的處理任務的功能。它包括使用Oprai的GPT-3型號從圖像中提取文本的功能,使用GPT-3對文檔進行了正確的文本,並生成有意義的文件名。
tests/test_text_processing.py :包含text_processing.py中功能的單元測試。它確保文本處理功能按預期工作。
utils.py :此文件為您的應用程序提供實用程序功能。這是每個函數的分解:
get_windows_folder(CSIDL_FOLDER) :通過其CSIDL值檢索Windows Special Folder的當前路徑(例如“我的文檔”,“我的圖片”等)。
get_windows_documents_folder() :使用get_windows_folder()函數獲取Windows中'My Documents'文件夾的當前路徑。
get_windows_pictures_folder() :使用get_windows_folder()函數獲取Windows中“我的圖片”文件夾的當前路徑。
move_file_to_date_dir(filename, base_dir=None) :將給定文件移至“文檔”文件夾中的日期特定目錄。如果未指定“文檔”文件夾,則將其默認為Windows中的“我的文檔”文件夾或非窗口系統中的“〜/Documents”文件夾。特定日期目錄的格式為“年/月”。如果不存在基本目錄或特定於日期的目錄,則將創建它們。
歡迎捐款!請隨時提交拉動請求或打開問題。
Docsinarow是根據MIT許可證許可的開源軟件。