BiVelio Shield: ChatGPT e Claude privados — grátis, 100% local, sem conta

Medido

Cada número, com a sua data, a sua máquina e o ficheiro de onde sai

Esta página reúne as medições que o resto do sítio cita. Cada tabela diz o dia em que foi tirada e a máquina em que correu, e um teste volta a ler cada número do ficheiro que o produziu: quando esse ficheiro se mexe e a página não, a construção fica vermelha.

O que não está aqui é aquilo que ninguém mediu. Onde a fonte não regista a máquina, a página di-lo em vez de inventar uma; onde o corpus é sintético, a frase que o diz viaja com o número.

O motor determinista, sobre o corpus adversarial

A camada controlada por dígito de verificação: documentos de identidade, IBAN, cartões, chaves e tokens. Duas pistas sobre o mesmo gerador — os valores escritos entre espaços, e os mesmos valores escritos como as pessoas os escrevem: colados a um dígito solto, com prefixo, em algarismos arábico-índicos, com uma marca combinante lá dentro.

Corpus: 1.000 documentos em quatro idiomas, 4.522 entidades etiquetadas, 443.724 caracteres. Máquina: Apple M4 Pro, macOS 15.7.4, CPython 3.13.7.

PistaSementePrecisãoAbrangênciaFuga residualSuperfície de fuga parcialIda e volta
Cooperativa12341,00001,00000,00 %01,000000
Cooperativa421,00001,00000,00 %01,000000
Cooperativa71,00001,00000,00 %01,000000
Adversarial12340,99401,00000,00 %01,000000
Adversarial420,98740,99890,00 %00,999641
Adversarial70,98941,00000,00 %01,000000

Medido a 9 de agosto de 2026 · 1.000 documentos por passagem, três sementes, as duas pistas.

As três linhas adversariais são publicadas com as outras: duas ficam abaixo dos limiares que a integração contínua afirma, porque ali tira-se uma só semente e esta tabela tira três. O que se aguenta nas seis passagens é o par pelo qual se julga uma fronteira de fuga de dados: fuga residual a zero e superfície de fuga parcial a zero.

Documentos, no gateway

Extração e deteção sobre o corpus de documentos, um pedido de cada vez. São números de pedido único: os dois passos dependem do processador e o interpretador serializa-os, por isso quem governa a concorrência é o semáforo de documentos e a reserva de processos, não esta tabela.

DocumentoExtraçãoDeteçãoTotalValores encontrados
PDF de uma página com camada de texto1,3 ms1,9 ms3,2 ms6/6
Documento Word: corpo e propriedade de autor0,6 ms2,1 ms2,7 ms6/6
Folha de cálculo: células, nome da folha e propriedades1,4 ms1,1 ms2,5 ms6/6

Medido a 29 de agosto de 2026 em fernando · AMD EPYC-Genoa, 16 vCPU, 30 GB.

O mesmo trabalho no navegador
92 ms de ponta a ponta para um PDF de uma página de 3 MB

O caminho do navegador é outra implementação (pdf.js e pdf-lib) e o banco de ensaios diz que não é comparável com as linhas acima: por isso é publicado na sua própria linha e nunca dentro daquela tabela.

Determinista frente a PLN

A camada determinista não procura nomes de pessoas; disso trata a camada de PLN. Isto é o que cada pilha deixa atrás de si sobre o mesmo corpus: a proporção de valores PERSON e LOCATION do ouro ainda presentes no texto que sai.

Corpus: 400 documentos, 800 entidades do ouro, semente 2026.

PilhaFuga residualValoresTempo de relógio
NER nulo (controlo)100,000 %800/8000,1 s
Determinista + Presidio4,875 %39/8003,3 s
Determinista + Presidio + GLiNER0,000 %0/8007,1 s

Medido a 12 de setembro de 2026 · máquina: development laptop.

O zero não é uma promessa de zero em produção: o corpus é sintético e as suas entidades do ouro são apenas PERSON e LOCATION, por isso não diz nada da prosa real, nem das moradas, nem das categorias especiais. A linha de controlo a cem por cento é o que torna legível o zero: sem ela, um zero não se distingue de uma escala partida.

As três pilhas de nomes

O que acrescenta o modelo multilingue, sobre o corpus etiquetado do próprio projeto. Esta medição é a razão por que é entregue desligado.

Corpus: 300 documentos, 50 por idioma, 6 idiomas.

PilhaPor documentoAbrangênciaPrecisãoAbrangência em catalão
Presidio3 ms0,9900,9051,000
Presidio + GLiNER13 ms1,0000,8301,000
+ GLiNER multilingue72 ms1,0000,7871,000

Medido a 12 de setembro de 2026.

O modelo multilingue não encontra um único nome que as outras duas camadas não encontrem já, nem sequer em catalão — o Presidio traz o seu próprio modelo catalão. Demora 5,5 vezes mais e marca 39 trechos a mais que não são nomes: o mesmo texto de 10.000 caracteres passa de 1.118 ms para 3.081 ms.

A fonte regista a data e o corpus desta comparação, não a máquina. O que se transporta de uma máquina para outra é a proporção entre as três configurações, não os milissegundos.

Esse corpus é sintético, por isso uma abrangência de um não é uma afirmação sobre a escrita real. A fuga residual publicada da camada de nomes é a da tabela acima.

O plano de nomes: memória e workers

Medido a 12 de setembro de 2026 dentro da imagem do plano num CCX33 · Falkenstein. Nada é partilhado entre processos, por isso o número de workers é uma divisão e não uma preferência.

Interpretador vazio
26 MB
Modelos carregados
3.331 MB, em 13,9 s
Depois de um pedido de 10.000 caracteres
3.412 MB
Workers
6 processos, 20,5 GB. Oito seriam 27,3 GB, acima do teto de 26 GB que o compose fixa.

A tabela de latência deste plano — p95 por tamanho de texto mais a ida e volta medida — é publicada em Como funciona e não se copia aqui.

Contra o que os fornecedores guardaram

Medido a 19 de setembro de 2026 com a extensão 0.9.0, commit 225bcd18: 4 ficheiros sintéticos testados contra 2 fornecedores. Chegaram a ser enviados 3; a extensão travou 1 antes de sair do navegador. O que cada fornecedor guardou foi lido da sua própria cópia da conversa, não do ecrã, que reidrata.

FicheiroFornecedorMarcadores guardadosVeredicto
Documento Word com um IBAN no texto e uma fotografia de documento de identidade incorporadaChatGPT1Sem fuga
PDF com camada de texto, documento de identidade e IBANChatGPT2Sem fuga
PDF digitalizado, só imagemChatGPTnunca enviadoTravado
O mesmo PDF com camada de textoClaude2Sem fuga

O ficheiro digitalizado nunca chegou a ser enviado: nenhuma página tinha camada de texto e a extensão cancelou o envio. Não finge tapar o que não consegue ler, por isso a sua linha não leva marcadores nem veredicto de fuga, mas o seu próprio estado.

Ficheiros testados: 4 · Enviados: 3 · Travados antes de sair: 1 · Fornecedores: 2 · Fugas sobre o que foi enviado: 0 · Achados registados: 7

Os marcadores, ficheiro a ficheiro, estão em Como funciona. Nenhum dos achados daquele dia é uma fuga; o artefacto nomeia-os um a um.

O pacote que se publica

Dois artefactos, não um. O que a Chrome Web Store serve hoje é o ficheiro que quem lê isto instala; o que este repositório construiu e ainda não enviou é um ficheiro diferente. Ambos estão abaixo, cada um com o dia em que foi lido ou construído, juntamente com as permissões que o Chrome concede à extensão e os sites onde ela pode correr.

O que a loja serve — o CRX assinado que quem lê instala:

Versão que a loja serve
0.9.0
Pacote que a loja serve
1.098.014 bytes, lidos do serviço de atualização do Chrome a 20 de setembro de 2026

O que este repositório construiu — o zip que vai ser enviado, e as verificações feitas sobre ele:

Preparado aqui, ainda por enviar
Versão 0.9.2 — 1.119.692 bytes, construído a 21 de setembro de 2026
Verificações do motor dentro do zip
63/63, executadas contra o motor empacotado e não contra o código-fonte
Chrome mínimo
116

Os dois diferem sempre que uma construção espera para ser enviada, e essa distância é o habitual. O que não era habitual é o que esta página fazia até hoje: imprimia o número preparado sob a palavra publicado, e afirmava assim uma versão e um tamanho que a loja nunca serviu.

Permissões (3):

  • storage
  • scripting
  • alarms

Sítios (4):

  • https://chatgpt.com/*
  • https://chat.openai.com/*
  • https://claude.ai/*
  • https://licensing.bivelio.com/*

Sítio opcional, pedido só se quem lê o ligar:

  • https://gemini.google.com/*

Um zip guarda datas de modificação, por isso duas construções dos mesmos ficheiros dão resumos diferentes e um resumo não identifica nada. Deste artefacto publicam-se os bytes e o dia em que foi construído; a verificação que significa alguma coisa executa o motor de dentro do pacote, não o do repositório. A loja serve um CRX — os mesmos ficheiros mais o cabeçalho de assinatura que a própria loja acrescenta ao publicar —, portanto o seu tamanho não é o do zip e esta página não subtrai um do outro.

De onde vêm estes números

Cada tabela acima cita o seu ficheiro. A página que percorre passo a passo o que o produto faz com eles é «Como funciona»; o motor pode correr sobre o seu próprio texto no banco de ensaios.