Introdução geral
O Zerox é um projeto de código aberto desenvolvido para converter PDF, DOCX, imagens e outros documentos para o formato Markdown por meio de modelos visuais. O projeto foi desenvolvido pela equipe da getomni-ai e oferece uma solução simples e eficiente de OCR (reconhecimento óptico de caracteres). O zerox é compatível com as duas linguagens de programação Node e Python, com o uso do graphicsmagick e do ghostscript para o processamento de PDF para imagem. Os usuários podem converter rapidamente documentos para o formato Markdown, fornecendo o caminho do arquivo e a chave da API OpenAI para uma variedade de documentos com layouts complexos, como tabelas e gráficos.
Lista de funções
- Suporte à conversão de PDF, DOCX, imagens e outros formatos de arquivo
- Oferece suporte para as linguagens de programação Node e Python
- Processamento eficiente de OCR usando modelos visuais
- Instala automaticamente o graphicsmagick e o ghostscript para processamento de PDF para imagem.
- Suporta a entrada de caminho de arquivo e URL
- Fornece uma variedade de parâmetros opcionais, como processamento de simultaneidade, correção de orientação de página, modo de tratamento de erros, etc.
- Suporte para funções de retorno de chamada de pré-processamento e pós-processamento
- Opção para salvar os resultados da conversão em um diretório específico
Usando a Ajuda
Processo de instalação
Versão do nó
- Instalação do Node.js e do npm
- Executar comando
npm install zerox
- Certifique-se de que o graphicsmagick e o ghostscript estejam instalados em seu sistema; caso contrário, execute o seguinte comando:
sudo apt-get update
sudo apt-get install -y graphicsmagick ghostscript
Versão Python
- Instalar o Python e o pip
- Executar comando
pip install zerox
- Certifique-se de que o graphicsmagick e o ghostscript estejam instalados em seu sistema; caso contrário, execute o seguinte comando:
sudo apt-get update
sudo apt-get install -y graphicsmagick ghostscript
Uso
Versão do nó
- Importe o módulo zerox:
import { zerox } from "zerox";
- Use o caminho do arquivo para conversão:
const result = await zerox({
filePath: "path/to/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});
- Use o URL para conversão:
const result = await zerox({
filePath: "https://example.com/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});
Versão Python
- Importe o módulo zerox:
from zerox import zerox
- Use o caminho do arquivo para conversão:
result = zerox(
file_path="path/to/file.pdf",
openai_api_key="your_openai_api_key"
)
- Use o URL para conversão:
result = zerox(
file_path="https://example.com/file.pdf",
openai_api_key="your_openai_api_key"
)
Funções principais
- conversão de arquivosMarkdown: forneça o caminho ou o URL do arquivo, chame a função zerox para converter e retorne o texto no formato Markdown.
- processamento simultâneo: Ao definir o
concurrency
para controlar o número de páginas processadas ao mesmo tempo para melhorar a eficiência do processamento. - Correção da orientação da páginaCorreção da orientação da página: O recurso de correção da orientação da página é ativado por padrão para garantir a orientação correta do texto convertido.
- modo de tratamento de errosOpcionalmente, os erros podem ser ignorados ou lançados, definindo o parâmetro
errorMode
são configurados. - Callbacks de pré e pós-processamentoFunções de retorno de chamada: fornece funções de retorno de chamada para executar ações personalizadas antes e depois do processamento de cada página.
- Salvar resultados: Ao definir o
outputDir
para salvar o resultado da conversão no diretório especificado.
Código de amostra (computação)
Versão do nó
import { zerox } from "zerox";
const result = await zerox({
filePath: "path/to/file.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
cleanup: true,
concurrency: 10,
correctOrientation: true,
errorMode: "IGNORE",
maintainFormat: false,
maxRetries: 1,
maxTesseractWorkers: -1,
model: "gpt-4o-mini",
onPostProcess: async ({ page, progressSummary }) => Promise<void>,
onPreProcess: async ({ imagePath, pageNumber }) => Promise<void>,
outputDir: "output",
pagesToConvertAsImages: -1,
});
Versão Python
from zerox import zerox
result = zerox(
file_path="path/to/file.pdf",
openai_api_key="your_openai_api_key",
cleanup=True,
concurrency=10,
correct_orientation=True,
error_mode="IGNORE",
maintain_format=False,
max_retries=1,
max_tesseract_workers=-1,
model="gpt-4o-mini",
on_post_process=lambda page, progress_summary: None,
on_pre_process=lambda image_path, page_number: None,
output_dir="output",
pages_to_convert_as_images=-1,
)
Usamos libreoffice
responder cantando graphicsmagick
A conversão de documentos em imagens é feita usando uma combinação dos seguintes métodos. Para arquivos que não são de imagem/não são de PDF, usamos o libreoffice para converter o arquivo em PDF e depois em imagem.
[ "pdf", // Portable Document Format "doc", // Microsoft Word 97-2003 "docx", // Microsoft Word 2007-2019 "odt", // OpenDocument Text "ott", // OpenDocument Text Template "rtf", // Rich Text Format "txt", // Plain Text "html", // HTML Document "htm", // HTML Document (alternative extension) "xml", // XML Document "wps", // Microsoft Works Word Processor "wpd", // WordPerfect Document "xls", // Microsoft Excel 97-2003 "xlsx", // Microsoft Excel 2007-2019 "ods", // OpenDocument Spreadsheet "ots", // OpenDocument Spreadsheet Template "csv", // Comma-Separated Values "tsv", // Tab-Separated Values "ppt", // Microsoft PowerPoint 97-2003 "pptx", // Microsoft PowerPoint 2007-2019 "odp", // OpenDocument Presentation "otp", // OpenDocument Presentation Template ];