
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许可证许可的开源软件。