01
Cache exato não serve para linguagem natural
Um cache tradicional casa a chave por igualdade byte a byte: mesma string, mesmo hash, cache hit. Isso funciona para consultas estruturadas (id de produto, url, parâmetro numérico), onde duas requisições iguais são de fato a mesma requisição. Mas linguagem natural quebra essa premissa. A mesma intenção aparece em infinitas formas: sinônimos, ordem das palavras, gírias, erros de digitação, pontuação. "Qual o prazo de entrega?" e "em quantos dias chega?" têm hash completamente diferente e resposta idêntica. Num cache exato, cada variação é um miss, e o modelo é chamado de novo para responder algo que ele já respondeu com outras palavras.
O cache semântico troca o critério de comparação. Em vez de perguntar "essa string é idêntica?", ele pergunta "essa pergunta significa a mesma coisa que alguma que já respondi?". A tabela abaixo separa os dois para deixar claro em que cada um serve.
| Dimensão | Cache exato | Cache semântico |
|---|---|---|
| Critério de acerto | String idêntica (hash) | Similaridade de significado (embedding) |
| Serve bem para | Chave estruturada, id, url | Pergunta em linguagem natural |
| Variação de forma | Cada variação é um miss | Formas equivalentes casam |
| Risco principal | Baixa taxa de acerto | Casar perguntas parecidas mas diferentes |
O ganho é claro: onde o cache exato acerta quase nada em linguagem natural, o semântico captura a família inteira de variações de uma mesma pergunta. O preço é uma nova classe de erro que o cache exato nunca teve: o falso positivo, quando duas perguntas parecidas mas com respostas diferentes acabam casando. Todo o resto do artigo gira em torno de manter esse ganho sem pagar esse preço.