Bastidores 3 min de leitura

De “padaria” a 4721-1/02

Como o cnpj.chat transforma uma atividade escrita em português em um CNAE oficial, sem deixar o modelo inventar código.

CNAE é uma linguagem oficial. Precisa ser precisa. Precisa separar comércio, indústria, serviço, produção própria, revenda, atacado, varejo. É assim que a Receita Federal organiza a atividade econômica de uma empresa.

Mas quase ninguém pensa em CNAE.

Quem procura uma empresa escreve "padaria", "restaurante", "loja de roupas", "promoção de vendas". Não escreve 4721-1/02, 5611-2/01, 4781-4/00 ou 7319-0/02.

Esse é o espaço que a gente precisava preencher: transformar linguagem comum em código oficial, sem inventar nada no caminho.

O problema

Uma busca por atividade não pode depender só de texto exato. "Padaria" pode significar revenda de produtos de panificação, produção própria ou fabricação de produtos de panificação. "Tecnologia" pode apontar para consultoria, suporte, desenvolvimento ou outras atividades próximas.

Também não dá para pedir que um modelo de linguagem escolha um CNAE de cabeça. O código precisa vir da classificação oficial. O modelo pode entender a frase. Ele não pode virar a fonte da verdade.

Então separamos as responsabilidades.

Como funciona

A base vem do IBGE. Usamos a planilha da estrutura detalhada para montar a hierarquia: seção, divisão, grupo, classe e subclasse. Depois usamos as notas explicativas em PDF para trazer o contexto que a planilha sozinha não carrega: o que cada subclasse compreende, o que compreende também e o que não compreende.

Cada CNAE vira um trecho de texto com contexto suficiente para ser encontrado por significado:

Um recorte do trecho vetorizado fica assim:

CNAE 4721-1/02
Padaria e confeitaria com predominância de revenda

Hierarquia:
Comércio varejista > Produtos de padaria, laticínio, doces e semelhantes

Compreende:
comércio varejista de pães, bolos, tortas e outros produtos de padaria quando a revenda é predominante

Não compreende:
panificadoras industriais; padarias com predominância de produção própria; lojas de tortas, doces e salgados de fabricação própria

Repare no "não compreende". A classificação oficial já separa a padaria que revende da que produz. A busca por significado funciona porque essa distinção está escrita no trecho, não porque o modelo adivinhou.

Esses trechos são transformados em vetores e guardados em um índice de busca vetorial. Quando alguém digita uma atividade em português, a API transforma a frase em vetor, consulta o índice e recebe de volta os CNAEs mais próximos.

Na prática, uma busca por atividade pode apontar para códigos assim:

Depois disso, o código é normalizado para o formato que existe no banco e vira filtro. A busca nas empresas continua sendo uma consulta estruturada sobre os dados oficiais da Receita Federal.

O modelo fica antes desse passo. Ele entende a pergunta e separa a intenção, como contamos em Você pergunta. A gente te mostra o filtro.. A atividade escrita pelo usuário segue para a busca vetorial. O CNAE vem dali, não de um palpite.

Por que isso importa

Dados públicos não ficam acessíveis só porque estão disponíveis para download. Eles ficam acessíveis quando alguém consegue perguntar do jeito que pensa e receber uma resposta baseada na fonte certa.

CNAE é uma parte pequena do cadastro. Mas é uma parte decisiva. É o filtro que transforma "quero empresas nesse setor" em uma busca real.

A ideia não é esconder o código. É chegar nele sem exigir que todo mundo fale como uma tabela.

Você escreve "padaria". A gente encontra o CNAE. A busca continua oficial.