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:*
- Erlang/Gleam HTTP Fetcher: Controle total da UI (barra de progresso), mas exige reescrever lógica complexa de resume, chunking e checksum.
-
*Rust
hf-hubCrate:* 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.