
DocSinarw es una aplicación de Python para escanear y analizar imágenes o documentos. La herramienta está diseñada para leer e interpretar el texto contenido en documentos escaneados y clasificar el tipo de documento utilizando el modelo GPT-3 proporcionado por OpenAI. Para las imágenes, utiliza Google Vision para detectar etiquetas y categorías.
Clone el repositorio o descargue el script de Python.
Instale las dependencias necesarias con PIP:
pip install .Configure Tesseract-OCR en su sistema y actualice la ruta en el script:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Reemplace la tecla API de OpenAI y la tecla API de Google Cloud Vision con la suya en el script:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Coloque sus imágenes en el directorio de imágenes. Actualmente, las imágenes deben comenzar con IMG y terminar con .jpg. Ejemplo:
imgXXX . jpgEjecute el guión:
python ./src/main.pyDocSinarw admite los siguientes formatos de archivo:
Actualmente, durante el desarrollo solo admite archivos JPG. Esto se debe a que este proyecto comenzó originalmente como una forma de organizar mis documentos escaneados que recibí por correo. En el futuro, ampliaremos esto para incluir una gran variedad de tipos de archivos.
Ejecute el guión de Python. El script pasará por cada imagen en el directorio.
Para cada imagen:
Si la imagen contiene más de 25 palabras, se considera un documento. El script extrae el texto, lo corrige usando GPT-3 e imprime el texto corregido. También clasifica el documento usando GPT-3 y agrega el texto corregido a los metadatos de la imagen. Si la imagen contiene menos de 25 palabras, se considera una imagen. El script utiliza Google Vision para detectar las etiquetas y las imprime. Después de cada imagen, el script pregunta si desea continuar con la siguiente imagen. Puede escribir 'Y' para continuar o 'N' para detener el script.
Este proyecto utiliza Pyinstaller para compilar los scripts de Python en un ejecutable independiente. Para construir el proyecto, puede usar el siguiente comando:
pyinstaller --onefile . s rc m ain.pyEsto creará un solo archivo ejecutable desde el script Main.py ubicado en el directorio SRC. El ejecutable se colocará en el directorio DIST.
La herramienta utiliza el modelo OpenAI Text-Davinci-003, que tiene una longitud de contexto máxima de 4096 tokens. Este límite incluye tanto el texto de inmediato como la finalización, así que asegúrese de que su texto corregiera y clasifique los ajustes dentro de este límite.
También tenga en cuenta los costos de uso asociados con la API de OpenAI y la API de Google Cloud Vision.
El proyecto Docsinarow sigue una estructura específica para organizar su código y recursos. Aquí hay una descripción general de la estructura del proyecto:
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 : este módulo es responsable de cargar variables de entorno y configurar la configuración para la aplicación desde un archivo .env. Establece y valida las variables de entorno necesarias para otros módulos. Si falta una variable de entorno requerida, se plantea un error.
image_processing.py : contiene funciones para tareas de procesamiento relacionadas con la imagen. Recupera archivos de imagen de un directorio especificado, agrega texto a metadatos de imagen y mueve archivos a los directorios específicos de la fecha para organizar las imágenes procesadas.
main.py : sirve como el punto de entrada principal de la aplicación. Orquesta el flujo general de trabajo de procesamiento de imágenes, llamando a las funciones de otros módulos para extraer y corregir el texto de las imágenes.
text_processing.py : proporciona funciones para tareas de procesamiento relacionadas con el texto. Incluye funciones para extraer texto de imágenes usando OCR, texto correcto utilizando el modelo GPT-3 de Openai, clasificar documentos con GPT-3 y generar nombres de archivo significativos.
tests/test_text_processing.py : contiene pruebas unitarias para las funciones en text_processing.py . Asegura que las funciones de procesamiento de texto funcionen como se esperaba.
utils.py : este archivo proporciona funciones de utilidad para su aplicación. Aquí hay un desglose de lo que hace cada función:
get_windows_folder(CSIDL_FOLDER) : recupera la ruta actual de una carpeta especial de Windows (como 'mis documentos', 'mis imágenes', etc.) por su valor CSIDL .
get_windows_documents_folder() : usa la función get_windows_folder() para obtener la ruta actual de la carpeta 'mis documentos' en Windows.
get_windows_pictures_folder() : usa la función get_windows_folder() para obtener la ruta actual de la carpeta 'My My Pictures' en Windows.
move_file_to_date_dir(filename, base_dir=None) : mueve un archivo dado a un directorio específico de fecha en la carpeta 'Documentos'. Si no se especifica la carpeta 'Documentos', es predeterminado a la carpeta 'My Documents' en Windows, o en la carpeta '~/Documents' en los sistemas no Windows. El directorio específico de la fecha está formateado como 'año/mes'. Si el directorio base o el directorio específico de la fecha no existen, se crean.
¡Las contribuciones son bienvenidas! No dude en enviar una solicitud de extracción o abrir un problema.
DocSinarw es un software de código abierto con licencia bajo la licencia MIT.