
Docsinarow는 이미지 또는 문서를 스캔하고 분석하기위한 파이썬 응용 프로그램입니다. 이 도구는 스캔 된 문서에 포함 된 텍스트를 읽고 해석하고 OpenAI에서 제공 한 GPT-3 모델을 사용하여 문서 유형을 분류하도록 설계되었습니다. 이미지의 경우 Google Vision을 사용하여 레이블 및 카테고리를 감지합니다.
저장소를 복제하거나 파이썬 스크립트를 다운로드하십시오.
PIP로 필요한 종속성을 설치하십시오.
pip install .시스템에서 TesserAct-Acr을 설정하고 스크립트의 경로를 업데이트하십시오.
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 파일 만 지원합니다. 이 프로젝트는 내가 우편으로받은 스캔 한 문서를 구성하는 방법으로 시작 되었기 때문입니다. 앞으로 우리는 다양한 파일 유형을 포함하도록 이것을 확장 할 것입니다.
파이썬 스크립트를 실행하십시오. 스크립트는 디렉토리의 각 이미지를 거치게됩니다.
각 이미지에 대해 :
이미지에 25 개 이상의 단어가 포함되어 있으면 문서로 간주됩니다. 스크립트는 텍스트를 추출하고 GPT-3을 사용하여 수정하고 수정 된 텍스트를 인쇄합니다. 또한 GPT-3을 사용하여 문서를 분류하고 이미지의 메타 데이터에 수정 된 텍스트를 추가합니다. 이미지에 25 단어 미만이 포함 된 경우 그림으로 간주됩니다. 스크립트는 Google Vision을 사용하여 레이블을 감지하고 인쇄합니다. 각 이미지 후에 스크립트는 다음 이미지를 계속할 것인지 묻습니다. 계속해서 'y'를 입력하거나 스크립트를 중지하려면 'n'을 입력 할 수 있습니다.
이 프로젝트는 Pyinstaller를 사용하여 Python 스크립트를 독립형 실행 파일로 컴파일합니다. 프로젝트를 구축하려면 다음 명령을 사용할 수 있습니다.
pyinstaller --onefile . s rc m ain.pySRC 디렉토리에있는 main.py 스크립트에서 단일 실행 파일이 생성됩니다. 실행 파일은 Dist 디렉토리에 배치됩니다.
이 도구는 최대 컨텍스트 길이가 4096 토큰 인 OpenAi Text-Davinci-003 모델을 사용합니다. 이 한계에는 프롬프트 텍스트와 완료가 모두 포함되어 있으므로 텍스트를 수정 하고이 한계 내에 맞출 수 있도록합니다.
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 : 텍스트 관련 처리 작업에 대한 기능을 제공합니다. 여기에는 OCR을 사용하여 이미지에서 텍스트를 추출하고 OpenAI의 GPT-3 모델을 사용하여 올바른 텍스트를 추출하는 기능이 포함되어 있으며 GPT-3을 사용하여 문서를 분류하며 의미있는 파일 이름을 생성합니다.
tests/test_text_processing.py : text_processing.py 의 함수에 대한 단위 테스트가 포함되어 있습니다. 텍스트 처리 기능이 예상대로 작동하도록합니다.
utils.py :이 파일은 응용 프로그램에 유틸리티 기능을 제공합니다. 다음은 각 기능이하는 일에 대한 분석입니다.
get_windows_folder(CSIDL_FOLDER) : CSIDL 값으로 Windows 특수 폴더 ( '내 문서', '내 그림'등)의 현재 경로를 검색합니다.
get_windows_documents_folder() : get_windows_folder() 함수를 사용하여 Windows에서 '내 문서'폴더의 현재 경로를 가져옵니다.
get_windows_pictures_folder() : get_windows_folder() 함수를 사용하여 Windows에서 '내 그림'폴더의 현재 경로를 가져옵니다.
move_file_to_date_dir(filename, base_dir=None) : 주어진 파일을 '문서'폴더의 날짜 별 디렉토리로 이동합니다. '문서'폴더가 지정되지 않은 경우 Windows의 'My Documents'폴더 또는 비 독사 시스템의 '~/Documents'폴더로 기본적으로 표시됩니다. 날짜 별 디렉토리는 '연도/월'으로 형식화됩니다. 기본 디렉토리 또는 날짜 별 디렉토리가 존재하지 않으면 생성됩니다.
기부금을 환영합니다! 풀 요청을 제출하거나 문제를 열어주십시오.
Docsinarow는 MIT 라이센스에 따라 오픈 소스 소프트웨어입니다.