
Docsinarow é um aplicativo Python para digitalização e análise de imagens ou documentos. A ferramenta foi projetada para ler e interpretar o texto contido nos documentos digitalizados e categorizar o tipo de documento usando o modelo GPT-3 fornecido pelo OpenAI. Para imagens, ele usa o Google Vision para detectar rótulos e categorias.
Clone o repositório ou faça o download do script python.
Instale as dependências necessárias com PIP:
pip install .Configure o TESSERACT-OCR em seu sistema e atualize o caminho no script:
pytesseract . pytesseract . tesseract_cmd = r"C:Program FilesTesseract-OCRtesseract.exe"Substitua a chave da API do OpenAI e a chave da API do Google Cloud Vision por sua própria no script:
openai . api_key = 'your-openai-api-key'
os . environ [ "GOOGLE_APPLICATION_CREDENTIALS" ] = "your-google-cloud-vision-key.json"Coloque suas imagens no diretório de fotos. Atualmente, as imagens precisam começar com o IMG e terminar com .jpg. Exemplo:
imgXXX . jpgExecute o script:
python ./src/main.pyDocsinarow suporta os seguintes formatos de arquivo:
Atualmente, durante o desenvolvimento, ele suporta apenas arquivos JPG. Isso ocorre porque este projeto começou orginalmente como uma maneira de organizar meus documentos digitalizados que recebi pelo correio. No futuro, expandiremos isso para incluir uma grande variedade de tipos de arquivos.
Execute o script Python. O script passará por cada imagem no diretório.
Para cada imagem:
Se a imagem contiver mais de 25 palavras, é considerada um documento. O script extrai o texto, corrige-o usando o GPT-3 e imprime o texto corrigido. Ele também categoriza o documento usando o GPT-3 e adiciona o texto corrigido aos metadados da imagem. Se a imagem contiver menos de 25 palavras, é considerada uma imagem. O script usa o Google Vision para detectar rótulos e imprime -os. Após cada imagem, o script pergunta se você deseja continuar para a próxima imagem. Você pode digitar 'y' para continuar ou 'n' para parar o script.
Este projeto usa o PyInstaller para compilar os scripts Python em um executável independente. Para construir o projeto, você pode usar o seguinte comando:
pyinstaller --onefile . s rc m ain.pyIsso criará um único arquivo executável do script main.py localizado no diretório SRC. O executável será colocado no diretório dist.
A ferramenta usa o modelo OpenAI Text-Davinci-003, que possui um comprimento máximo de contexto de 4096 tokens. Esse limite inclui o texto rápido e a conclusão, portanto, verifique se seu texto para corrigir e categorizar ajustes dentro desse limite.
Por favor, esteja ciente dos custos de uso associados à API OpenAI e do Google Cloud Vision API.
O projeto Docsinarow segue uma estrutura específica para organizar seu código e recursos. Aqui está uma visão geral da estrutura do projeto:
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 é responsável por carregar variáveis de ambiente e configurar a configuração para o aplicativo a partir de um arquivo .env. Ele configura e valida as variáveis de ambiente necessárias para outros módulos. Se uma variável de ambiente necessária estiver faltando, um erro será levantado.
image_processing.py : contém funções para tarefas de processamento relacionadas à imagem. Ele recupera arquivos de imagem de um diretório especificado, adiciona texto aos metadados da imagem e move arquivos até os diretórios específicos para a organização das imagens processadas.
main.py : serve como o principal ponto de entrada do aplicativo. Ele orquestra o fluxo geral de trabalho de processamento de imagem, chamando funções de outros módulos para extrair e corrigir o texto das imagens.
text_processing.py : fornece funções para tarefas de processamento relacionadas ao texto. Ele inclui funções para extrair texto de imagens usando OCR, texto correto usando o modelo GPT-3 do OpenAI, categorizar documentos usando o GPT-3 e gerar nomes de arquivos significativos.
tests/test_text_processing.py : contém testes de unidade para as funções em text_processing.py . Ele garante que as funções de processamento de texto estejam funcionando como esperado.
utils.py : Este arquivo fornece funções utilitárias para o seu aplicativo. Aqui está um detalhamento do que cada função faz:
get_windows_folder(CSIDL_FOLDER) : recupera o caminho atual de uma pasta especial do Windows (como 'meus documentos', 'minhas fotos', etc.) pelo seu valor CSIDL .
get_windows_documents_folder() : usa a função get_windows_folder() para obter o caminho atual da pasta 'meus documentos' no Windows.
get_windows_pictures_folder() : usa a função get_windows_folder() para obter o caminho atual da pasta 'My Pictures' no Windows.
move_file_to_date_dir(filename, base_dir=None) : move um determinado arquivo para um diretório específico de data na pasta 'documentos'. Se a pasta 'documentos' não for especificada, ela padrão é a pasta 'My Documents' no Windows ou na pasta '~/documentos' em sistemas que não são de janelas. O diretório específico da data é formatado como 'ano/mês'. Se o diretório base ou o diretório específico de data não existir, eles serão criados.
As contribuições são bem -vindas! Sinta -se à vontade para enviar uma solicitação de tração ou abrir um problema.
Docsinarow é um software de código aberto licenciado sob a licença do MIT.