O PPT AI publica 3.926 modelos de apresentação, cada um com sua própria página em ppt.sophoninc.com. Uma página cujo trabalho é mostrar um design ainda precisa ser legível por alguém que ainda não consegue ver o design, ou que está decidindo entre dois deles. Isso significa, no mínimo: para que serve a apresentação, o que há em cada slide, quantos slides e em que tamanho, o que pode ser alterado e como começar. Esta postagem é sobre descobrir o quão longe nossas páginas estavam disso e o que medimos antes de adicionar qualquer coisa.
O que uma página de modelo renderiza hoje
Quatro páginas de modelo foram buscadas e contadas em 16 de setembro de 2026. Método de contagem: remover elementos script e style, remover as tags restantes, decodificar entidades HTML, pegar tokens de palavras que correspondem a [A-Za-z0-9][A-Za-z0-9’'&-]* e convertê-los para minúsculas antes de contar os distintos. O tokenizador é especificado porque as contagens de palavras distintas variam em algumas palavras dependendo dele.
| Página | Palavras totais | Palavras distintas | Palavras distintas fora da estrutura comum |
|---|---|---|---|
| brand-agency-book-editorial-dark | 148 | 91 | 31 |
| medical-blood-test-clean-corporate | 142 | 88 | 28 |
| resume-illustrator-professional-blue | 147 | 90 | 30 |
| poster-bold-text-modern-gradient | 134 | 79 | 19 |
A “estrutura comum” é formada pelas 60 palavras distintas comuns às quatro páginas: a navegação, o rodapé, o breadcrumb e as duas chamadas para ação. Removidas essas palavras, restam entre 19 e 31 palavras distintas em cada página que tratam daquele modelo. O resto da página é igual nas 3.926 páginas.
Para contextualizar, nos três meses até 16 de setembro de 2026, essas páginas tiveram 484 impressões e 7 cliques com uma posição média de 20,2, em 187 páginas distintas e 12 consultas distintas. Esses números vêm do Google Search Console para sc-domain:sophoninc.com, filtrados para ppt.sophoninc.com/templates/. O Search Console é visível apenas para os proprietários da propriedade; a propriedade, o filtro e o intervalo de datas são fornecidos para que qualquer pessoa com acesso possa reproduzir o resultado, que é o mais verificável que essa fonte permite.
A pergunta que a auditoria precisava responder
Os slides de cada modelo contêm texto: títulos, rótulos, corpo de texto escrito para preencher o design. Ele é servido publicamente em /api/v2/templates/<slug>/slides/<n> e é a coisa óbvia a se colocar na página. Antes de fazer isso, uma objeção precisa ser respondida: 3.926 páginas de texto de apresentação gerado poderiam ser 3.926 páginas quase idênticas, o que é pior do que 3.926 páginas com pouco conteúdo.
Então: quanto texto um modelo compartilha com o modelo ao qual mais se assemelha?
Por que uma amostra uniforme dá a resposta errada
O método ingênuo é amostrar modelos aleatoriamente e comparar os pares. Esse método não consegue encontrar duplicação neste corpus, e vale a pena ser exato sobre o porquê.
A biblioteca é organizada por categoria, por receita e por família de estilo. Um par aleatório extraído de 3.926 itens é, na esmagadora maioria das vezes, um par de categorias diferentes sobre assuntos diferentes. Esses pares não compartilham quase nada, não importa o quão duplicado o corpus seja. Nós medimos: 392 pares aleatórios entre famílias têm uma contenção mediana de 5-gramas de 0,00% e um máximo de 0,3%. Uma amostra uniforme retorna “o corpus é único” como um artefato da amostragem, não como uma descoberta.
Os pares que revelariam duplicação são os vizinhos mais próximos, e eles são uma fração ínfima de todos os pares. Portanto, a amostra foi ponderada em direção a eles. Os templates foram agrupados por categoria, slug de receita e família de estilo, e 33 grupos foram selecionados em quatro tipos:
- gêmeos numerados, onde os slugs diferem apenas por um
-2ou-3no final (8 grupos) - mesma receita e mesma família de estilo (4 grupos)
- mesma família de estilo, receita diferente (13 grupos)
- grupos de cobertura, um por categoria, para que nenhuma categoria fique sem medição (8 grupos)
O texto dos slides foi então coletado para cada membro de cada grupo: 232 modelos, 1.034 slides, 0 erros de coleta, em 16 de setembro de 2026. Isso representa 5,9% do corpus, escolhidos por serem os 5,9% mais difíceis.
A etapa decisiva
Ponderar a amostra ainda não é suficiente por si só, porque o vizinho mais próximo real de um modelo pode ser um que não foi coletado, o que subestimaria a sobreposição. Portanto, uma segunda etapa restringiu a comparação a clusters onde todos os membros haviam sido coletados: 46 clusters completos, 117 modelos. Dentro desses, é garantido que o vizinho mais próximo de um modelo em todo o corpus de 3.926 modelos esteja no conjunto medido.
A métrica é a contenção de 5-gramas: a fração das sequências distintas de cinco palavras de um modelo que também ocorrem em seu par mais próximo. Contenção em vez de Jaccard porque é assimétrica — um modelo curto totalmente contido em um longo deve ser lido como totalmente duplicado, e Jaccard o relataria como parcialmente único.
Resultados para esses 117 modelos, contra o vizinho mais próximo real do corpus:
| Medida | Valor |
|---|---|
| Contenção de 5-gramas mediana | 0,00% |
| Média | 0,50% |
| Percentil 95 | 3,46% |
| Máximo | 8,82% |
| Templates acima de 10% | 0 |
| Contenção de 3-gramas, mediana / máxima | 0,31% / 13,89% |
A etapa de 3-gramas serve para detectar cópias que foram reformuladas em vez de reutilizadas; ela altera os números, mas não a conclusão. O pior par no corpus é poster-quote-typography-modern-gradient contra poster-bold-text-modern-gradient, com 8,82%.
Em todos os 232 modelos: de 3.448 frases distintas com seis ou mais palavras, 2 aparecem em mais de um modelo — “the results relate only to the items tested” e “no other graphic elements should intrude into this zone”. Por slide, de 992 slides com 20 ou mais palavras, a contenção mediana com o slide mais próximo em qualquer outro modelo é de 0,0%; 8 estão acima de 20% e nenhum está acima de 50%. A similaridade de tópicos medida pelo cosseno de saco de palavras, que ignora a formulação, é maior, como deveria ser para dois modelos de currículo: mediana de 12,7% contra o par mais próximo da mesma família, máximo de 35,3%.
O limite honesto: são 232 de 3.926 modelos e 117 no conjunto de vizinhos mais próximos garantidos. É uma evidência sobre a parte mais difícil do corpus, não uma prova sobre ele todo.
O que decidimos
A auditoria remove a objeção de duplicação à publicação do texto dos slides. Nós não publicamos os corpos dos slides. Publicamos os títulos dos slides, que já existiam no registro do modelo e estavam sendo coletados e descartados.
Verificado em todos os 3.926 modelos antes de publicá-los: 14.969 títulos, nenhum vazio, nenhum sendo apenas “Slide N” ou “Page N”, e slide_titles.length igual a slide_count em cada um. Dois limites foram registrados em vez de suavizados: 156 títulos (1,0%) terminam em “… Page N”, e em 77 modelos (2%) todos os títulos o fazem. 1.321 modelos (34%) têm um único slide e não recebem lista alguma.
A mudança, portanto, atinge 2.605 páginas e adiciona uma mediana de 15 palavras a cada uma, uma média de 10,4 palavras por página em todo o corpus. Isso é real e é pequeno. Não tira, por si só, uma página do território de conteúdo superficial, e a parte mais útil pode ser que os títulos são clicáveis: pular para o slide 7 antes exigia pressionar Próximo seis vezes.
O mesmo ramo adiciona links para os modelos que não recebiam nenhum link. As páginas de navegação fixavam aspect_ratio em 16:9, o que corresponde a cerca de 45% da biblioteca; por isso, o restante não aparecia em nenhuma página central nem em nenhum bloco de itens relacionados: /templates?category=document e ?category=poster retornavam uma página “coming soon” sem nenhum link para modelos. Uma página sem nenhum link interno para ela não deve nada a um leitor, porque nenhum leitor chega até ela.
Não implantado, e uma questão ainda em aberto
Nada disso está no ar. É o pull request 10 em Sophon-LLC/ppt-ai, aberto em 15 de setembro de 2026 e ainda aberto em 16 de setembro de 2026, com três commits, verificado com uma checagem de tipos, uma execução de lint e uma compilação de produção servida a partir do datastore ativo. Até que seja integrado, as páginas estão como medido no topo desta postagem.
A questão em aberto é a que a auditoria não responde. O conjunto medido carrega uma mediana de 288 palavras de corpo de texto por modelo, contra as 19 a 31 palavras específicas do modelo que uma página renderiza hoje. A auditoria diz que o texto não é duplicado. Ela não diz que o texto escrito para preencher um layout é lido por uma pessoa como conteúdo em vez de preenchimento, e ninguém mediu isso. Publicar 3.926 páginas dele com base apenas em um resultado de duplicação seria responder a uma pergunta que não fizemos.