Skip to content

andersonlemesc/docling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Docling

API para processamento de documentos usando a biblioteca Docling.

Funcionalidades

  • Processamento de diversos formatos de documentos (PDF, DOCX, HTML, imagens, etc.)
  • Suporte a OCR para documentos digitalizados com configuração de idioma
  • Extração de imagens em base64 (funciona em todos os formatos de exportação)
  • Descrição automática de imagens usando modelos LLM (Ollama)
  • Exportação em diferentes formatos (Markdown, HTML, JSON)

Instalação

# Clonar o repositório
git clone https://github.com/andersonlemescdocling-api.git
cd docling-api

# Instalar dependências
pip install -r requirements.txt

# Iniciar a API
uvicorn app.main:app --reload

Uso da API

A API expõe um endpoint POST /process que aceita arquivos PDF e várias opções de processamento.

Endpoint

POST /process

Parâmetros

Parâmetro Tipo Padrão Descrição
file Arquivo - Arquivo PDF a ser processado (obrigatório)
export_format string "markdown" Formato de exportação: "markdown", "html" ou "dict"
ocr boolean false Ativa OCR para leitura de texto em imagens
ocr_language string "pt" Idioma para OCR (ex: "pt", "en", "fr", "de")
generate_images boolean false Gera imagens em base64 para as páginas e figuras
include_image_data boolean false Inclui imagens como base64 no markdown (se false, apenas placeholders)
include_descriptions boolean true Inclui descrições de imagens no markdown quando disponíveis
describe_images boolean false Adiciona descrições às imagens usando LLM
image_description_prompt string "Descreva esta imagem em detalhes" Prompt para descrição de imagens
llm_provider string "ollama" Provedor LLM a ser usado: "ollama", "openai" ou "interno"

Parâmetros específicos para OpenAI

Parâmetro Tipo Padrão Descrição
openai_api_key string null Chave da API OpenAI para descrição de imagens
openai_model string "gpt-4o-mini" Modelo OpenAI a ser usado para descrição de imagens
openai_max_tokens integer 500 Número máximo de tokens para resposta da OpenAI

Parâmetros específicos para Ollama

Parâmetro Tipo Padrão Descrição
ollama_url string "http://localhost:11434/v1/chat/completions" URL da API Ollama
ollama_model string "llama3.2-vision:latest" Modelo Ollama a ser usado para descrição de imagens

Exemplos de Uso

Processamento Básico

curl -X POST "http://localhost:8000/process" \
  -H "accept: application/json" \
  -F "[email protected]"

Com OCR Ativado

curl -X POST "http://localhost:8000/process?ocr=true&ocr_language=pt" \
  -H "accept: application/json" \
  -F "[email protected]"

Com Descrição de Imagens via OpenAI

curl -X POST "http://localhost:8000/process?describe_images=true&llm_provider=openai&openai_api_key=sua_chave_api&openai_model=gpt-4o-mini&generate_images=true" \
  -H "accept: application/json" \
  -F "[email protected]"

Markdown com Placeholders e Descrições (sem imagens em base64)

curl -X POST "http://localhost:8000/process?describe_images=true&generate_images=true&include_image_data=false&include_descriptions=true&llm_provider=openai&openai_api_key=sua_chave_api" \
  -H "accept: application/json" \
  -F "[email protected]"

Markdown com Imagens em Base64 e Descrições

curl -X POST "http://localhost:8000/process?describe_images=true&generate_images=true&include_image_data=true&include_descriptions=true&llm_provider=openai&openai_api_key=sua_chave_api" \
  -H "accept: application/json" \
  -F "[email protected]"

Resposta

A API retorna um objeto JSON contendo o documento processado no formato solicitado:

{
  "markdown": "# Título do Documento\n\nConteúdo do documento...\n\n<!-- image -->\n\n**Descrição da imagem:** Descrição gerada pelo LLM...\n"
}

Notas

  • Para utilizar o OCR, certifique-se de que as dependências do EasyOCR estão instaladas
  • Para descrição de imagens com OpenAI, é necessário fornecer uma chave de API válida
  • Para usar o Ollama, certifique-se de que um servidor Ollama está em execução e acessível na URL especificada
  • O processamento de documentos grandes pode levar algum tempo, especialmente com OCR e descrição de imagens ativados

Limitações

  • O tamanho máximo do arquivo é determinado pela configuração do FastAPI
  • A qualidade do OCR depende da qualidade das imagens no documento
  • A qualidade das descrições de imagens depende do modelo LLM utilizado

About

API para processamento de documentos usando a biblioteca Docling.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published