Skip to content

feat: envia PDFs ao Apache Tika via chunked transfer encoding#124

Merged
diraol merged 1 commit intomainfrom
feature/relative-file-paths
Apr 12, 2026
Merged

feat: envia PDFs ao Apache Tika via chunked transfer encoding#124
diraol merged 1 commit intomainfrom
feature/relative-file-paths

Conversation

@diraol
Copy link
Copy Markdown
Contributor

@diraol diraol commented Apr 12, 2026

Summary

  • Substitui o envio do arquivo ao Tika via file object pelo uso de um generator que lê em blocos (_chunk_file_generator)
  • Ao passar um generator para requests.put(data=...), a biblioteca usa automaticamente Transfer-Encoding: chunked (sem Content-Length), permitindo que o Tika processe os dados incrementalmente — reduzindo o risco de OOM
  • O tamanho do chunk é configurável via variável de ambiente TIKA_CHUNK_SIZE (default: 8192 bytes)
  • Também inclui correções no workflow de CI do Apache Tika para arm64 (uso de docker buildx build --load em vez de docker/build-push-action sem load: true) e atualização do Tika para 3.3.0

Test plan

  • 15 testes unitários passando (python -m unittest tests.text_extraction_tests)
  • Novos testes: test_chunk_file_generator_is_generator e test_chunk_file_generator_yields_chunks
  • Teste test_request_is_sent_to_apache_tika_server atualizado para verificar que data é um GeneratorType
  • Teste de integração com Tika real (coberto pelos testes de extração: pdf, doc, docx, odt, txt)

🤖 Generated with Claude Code

Substitui o envio direto do file object por um generator que lê o
arquivo em blocos, forçando Transfer-Encoding: chunked na requisição
HTTP. Assim o Tika recebe os dados incrementalmente, evitando
bufferizar o arquivo inteiro em memória antes de parsear e reduzindo
o risco de OOM.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@diraol diraol merged commit 24741a4 into main Apr 12, 2026
1 check passed
@diraol diraol deleted the feature/relative-file-paths branch April 12, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant