Skip to content

feat(ui): diálogo de transparência para download do modelo LLM#39

Merged
kauaamado merged 1 commit into
devfrom
feat/consent-dialog
Jul 3, 2026
Merged

feat(ui): diálogo de transparência para download do modelo LLM#39
kauaamado merged 1 commit into
devfrom
feat/consent-dialog

Conversation

@kauaamado

Copy link
Copy Markdown
Owner

O que foi feito

  • ConsentDialog.tsx — modal informativo sobre o download do modelo Qwen2.5-0.5B-Instruct (~500 MB)
    • Privacidade: tudo roda localmente, nenhum dado sai do navegador
    • Pré-requisito: WebGPU (Chrome/Edge com aceleração)
    • Funcionalidade beta + tempo estimado de download (1-5 min)
  • useTranslator — adiciona translateSimple() para fallback heurístico forçado
  • WebcamView — diálogo aparece na primeira tentativa de tradução com WebGPU
    • "Baixar modelo" → prossegue com LLM
    • "Tradução simples sem IA" → usa heurística direto
    • Fechar → não salva consentimento, diálogo reaparece na próxima tentativa
  • Consentimento salvo em localStorage (tradutor-libras-llm-consent)

Fluxo

Clique em Traduzir
  ├─ Sem WebGPU → fallback heurístico direto (sem diálogo)
  ├─ Com WebGPU + consentido → LLM direto (sem diálogo)
  └─ Com WebGPU + não consentido → mostra ConsentDialog
       ├─ "Baixar modelo" → salva + LLM
       ├─ "Tradução simples" → salva + heurística
       └─ Fechar → não salva (mostra de novo)

Como testar

  • Abrir no Chrome com --enable-features=Vulkan,DefaultANGLEVulkan --enable-unsafe-webgpu
  • Fazer sinais para acumular palavras
  • Clicar em "Traduzir" → diálogo aparece
  • Testar as 3 opções

- Cria ConsentDialog.tsx com aviso de privacidade, tamanho do modelo (~500MB),
  WebGPU, funcionalidade beta e tempo estimado de download
- Adiciona translateSimple() ao useTranslator para fallback heurístico forçado
- Integra diálogo no WebcamView: aparece na primeira vez com WebGPU
- Opções: 'Baixar modelo', 'Tradução simples sem IA', ou fechar para decidir depois
- Consentimento salvo em localStorage (tradutor-libras-llm-consent)
@kauaamado
kauaamado merged commit 2ea4986 into dev Jul 3, 2026
1 check passed
@kauaamado
kauaamado deleted the feat/consent-dialog branch July 3, 2026 17:07
kauaamado added a commit that referenced this pull request Jul 3, 2026
* feat(deploy): workflow de deploy no GitHub Pages (Fase 6) (#37)

- Cria .github/workflows/deploy.yml com actions/deploy-pages@v4
- Usa actions/configure-pages@v5 + upload/upload-pages-artifact
- Adiciona public/.nojekyll para evitar processamento Jekyll
- Atualiza PLAN.md com checkboxes da Fase 6 marcados
- Deploy dispara automaticamente em push na branch main

* feat(ui): diálogo de transparência para download do modelo LLM (#39)

- Cria ConsentDialog.tsx com aviso de privacidade, tamanho do modelo (~500MB),
  WebGPU, funcionalidade beta e tempo estimado de download
- Adiciona translateSimple() ao useTranslator para fallback heurístico forçado
- Integra diálogo no WebcamView: aparece na primeira vez com WebGPU
- Opções: 'Baixar modelo', 'Tradução simples sem IA', ou fechar para decidir depois
- Consentimento salvo em localStorage (tradutor-libras-llm-consent)
kauaamado added a commit that referenced this pull request Jul 3, 2026
…43)

* feat(deploy): workflow de deploy no GitHub Pages (Fase 6) (#37)

- Cria .github/workflows/deploy.yml com actions/deploy-pages@v4
- Usa actions/configure-pages@v5 + upload/upload-pages-artifact
- Adiciona public/.nojekyll para evitar processamento Jekyll
- Atualiza PLAN.md com checkboxes da Fase 6 marcados
- Deploy dispara automaticamente em push na branch main

* feat(ui): diálogo de transparência para download do modelo LLM (#39)

- Cria ConsentDialog.tsx com aviso de privacidade, tamanho do modelo (~500MB),
  WebGPU, funcionalidade beta e tempo estimado de download
- Adiciona translateSimple() ao useTranslator para fallback heurístico forçado
- Integra diálogo no WebcamView: aparece na primeira vez com WebGPU
- Opções: 'Baixar modelo', 'Tradução simples sem IA', ou fechar para decidir depois
- Consentimento salvo em localStorage (tradutor-libras-llm-consent)

* refactor(nlp): remove LLM/Transformers.js — mantém apenas heurística (#41)

**Motivação:**
- Download de ~500 MB do modelo Qwen2.5-0.5B no navegador é inviável
- WebGPU restrito a Chrome/Edge com GPU compatível
- Heurística é instantânea, sem download, funciona em qualquer navegador

**Mudanças:**
- Remove @huggingface/transformers (dependência de ~50 MB)
- Remove ConsentDialog.tsx (não mais necessário sem LLM)
- Remove detectWebGPU, loadLLM, translateWithLLM, buildPrompt
- Simplifica useTranslator: apenas heuristicTranslate
- Simplifica WebcamView: remove consent state, WebGPU status, translateSimple
- Remove LLMConfig, DownloadProgress, DEFAULT_LLM_CONFIG dos tipos
- Remove optimizeDeps.exclude do vite.config.ts
- Remove estilos do ConsentDialog do CSS
- Atualiza PLAN.md (Fase 5 renomeada para 'Tradução Heurística')

**Build output:**
- Antes: ~26 MB (incluindo ort-wasm 23.5 MB + transformers.web 558 kB)
- Depois: ~2 MB (apenas app + MediaPipe + TF.js)
kauaamado added a commit that referenced this pull request Jul 3, 2026
* feat(deploy): workflow de deploy no GitHub Pages (Fase 6) (#37)

- Cria .github/workflows/deploy.yml com actions/deploy-pages@v4
- Usa actions/configure-pages@v5 + upload/upload-pages-artifact
- Adiciona public/.nojekyll para evitar processamento Jekyll
- Atualiza PLAN.md com checkboxes da Fase 6 marcados
- Deploy dispara automaticamente em push na branch main

* feat(ui): diálogo de transparência para download do modelo LLM (#39)

- Cria ConsentDialog.tsx com aviso de privacidade, tamanho do modelo (~500MB),
  WebGPU, funcionalidade beta e tempo estimado de download
- Adiciona translateSimple() ao useTranslator para fallback heurístico forçado
- Integra diálogo no WebcamView: aparece na primeira vez com WebGPU
- Opções: 'Baixar modelo', 'Tradução simples sem IA', ou fechar para decidir depois
- Consentimento salvo em localStorage (tradutor-libras-llm-consent)

* refactor(nlp): remove LLM/Transformers.js — mantém apenas heurística (#41)

**Motivação:**
- Download de ~500 MB do modelo Qwen2.5-0.5B no navegador é inviável
- WebGPU restrito a Chrome/Edge com GPU compatível
- Heurística é instantânea, sem download, funciona em qualquer navegador

**Mudanças:**
- Remove @huggingface/transformers (dependência de ~50 MB)
- Remove ConsentDialog.tsx (não mais necessário sem LLM)
- Remove detectWebGPU, loadLLM, translateWithLLM, buildPrompt
- Simplifica useTranslator: apenas heuristicTranslate
- Simplifica WebcamView: remove consent state, WebGPU status, translateSimple
- Remove LLMConfig, DownloadProgress, DEFAULT_LLM_CONFIG dos tipos
- Remove optimizeDeps.exclude do vite.config.ts
- Remove estilos do ConsentDialog do CSS
- Atualiza PLAN.md (Fase 5 renomeada para 'Tradução Heurística')

**Build output:**
- Antes: ~26 MB (incluindo ort-wasm 23.5 MB + transformers.web 558 kB)
- Depois: ~2 MB (apenas app + MediaPipe + TF.js)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant