
Docsinarow เป็นแอปพลิเคชัน Python สำหรับการสแกนและวิเคราะห์ภาพหรือเอกสาร เครื่องมือได้รับการออกแบบมาเพื่ออ่านและตีความข้อความที่มีอยู่ในเอกสารที่สแกนและจัดหมวดหมู่ประเภทเอกสารโดยใช้โมเดล GPT-3 ที่ OpenAI จัดทำขึ้น สำหรับรูปภาพจะใช้ Google Vision เพื่อตรวจจับฉลากและหมวดหมู่
โคลนที่เก็บหรือดาวน์โหลดสคริปต์ Python
ติดตั้งการพึ่งพาที่จำเป็นด้วย PIP:
pip install .ตั้งค่า tesseract-coR บนระบบของคุณและอัปเดตเส้นทางในสคริปต์:
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สิ่งนี้จะสร้างไฟล์ที่เรียกใช้งานเดียวจากสคริปต์ Main.py ที่อยู่ในไดเรกทอรี SRC การปฏิบัติการจะถูกวางไว้ในไดเรกทอรี 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 : ให้ฟังก์ชั่นสำหรับงานการประมวลผลที่เกี่ยวข้องกับข้อความ มันมีฟังก์ชั่นในการแยกข้อความจากรูปภาพโดยใช้ OCR, ข้อความที่ถูกต้องโดยใช้โมเดล GPT-3 ของ OpenAI จัดหมวดหมู่เอกสารโดยใช้ GPT-3 และสร้างชื่อไฟล์ที่มีความหมาย
tests/test_text_processing.py : มีการทดสอบหน่วยสำหรับฟังก์ชั่นใน text_processing.py ช่วยให้มั่นใจได้ว่าฟังก์ชั่นการประมวลผลข้อความทำงานตามที่คาดไว้
utils.py : ไฟล์นี้มีฟังก์ชั่นยูทิลิตี้สำหรับแอปพลิเคชันของคุณ นี่คือรายละเอียดของสิ่งที่แต่ละฟังก์ชั่นทำ:
get_windows_folder(CSIDL_FOLDER) : ดึงเส้นทางปัจจุบันของโฟลเดอร์พิเศษ Windows (เช่น 'เอกสารของฉัน', 'รูปภาพของฉัน' ฯลฯ ) โดยค่า CSIDL
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 หรือโฟลเดอร์ '~/////เอกสาร' ในระบบที่ไม่ใช่ windows ไดเรกทอรีเฉพาะวันที่ถูกจัดรูปแบบเป็น 'ปี/เดือน' หากไดเรกทอรีพื้นฐานหรือไดเรกทอรีเฉพาะวันที่ไม่มีอยู่จะถูกสร้างขึ้น
ยินดีต้อนรับ! โปรดส่งคำขอดึงหรือเปิดปัญหา
Docsinarow เป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT