Gleam.br Wiki

GBR: ADR 0004 Delegação do Download de Modelos de ML para `hf-hub` (Rust) na Borda | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: ADR 0004 Delegação do Download de Modelos de ML para hf-hub (Rust) na Borda

  • *Status:* Aceito
  • *Data:* 2026-05-01

*Contexto:*

A CLI gleambrctl requer a distribuição do modelo all-MiniLM-L6-v2 (~90MB) para gerar embeddings localmente sem depender de APIs externas (Zero Trust / Soberania de Dados).

*Alternativas Analisadas:*

  1. Erlang/Gleam HTTP Fetcher: Controle total da UI (barra de progresso), mas exige reescrever lógica complexa de resume, chunking e checksum.
  2. *Rust hf-hub Crate:* Ecossistema padrão de mercado, cache global (~/.cache/huggingface/), validação nativa de safetensors.

*Decisão:*

Optamos pela Alternativa 2. A responsabilidade de garantir a presença e a integridade do modelo na máquina do usuário (via internet) é delegada à camada C/Rust via FFI.

*Consequências:*

  • *Positivas:* Redução drástica da complexidade do código Gleam. Compartilhamento do cache de modelos com outras ferramentas do ecossistema HuggingFace que o usuário já possua.
  • *Negativas:* Perda de controle granular do fluxo de I/O de rede dentro da árvore de supervisão OTP durante o download inicial (o NIF bloqueará um Dirty Scheduler).
  • *Mitigação:* Documentar claramente no terminal (stdout) que um download pesado está ocorrendo via Rust.