Textos fora do padrão
Recebe uma lista de textos ou registros e aponta os que fogem do padrão do conjunto — o pedido estranho no meio de mil normais, o comentário que não se parece com nenhum. A própria base define o normal, sem você escrever regra, e o que destoa vem à tona: o que merece olhar humano.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Achar a agulha, não o palheiro
Em qualquer base grande, o problema raramente está na maioria — está no punhado que destoa. O cadastro digitado errado, o pedido que não bate com nada, a resposta de pesquisa que parece colada de outro lugar. Procurar isso na mão é ler tudo torcendo para reparar; e o olho cansa justamente nas últimas linhas, onde costuma estar o caso. A detecção de fora do padrão inverte o esforço: em vez de você varrer o conjunto inteiro, ela entrega a lista curta do que não se encaixa, para o humano decidir se é erro, fraude ou só uma exceção legítima.
O normal sai dos dados, não de uma regra sua
Aqui não existe limiar que você configura nem lista de padrões suspeitos. Cada texto vira um vetor de significado; os que ficam no miolo do conjunto são o comportamento comum, e os que caem longe de todo mundo são os candidatos a fora do padrão. Por isso funciona mesmo quando você não sabia o que procurar: o método não depende de você antecipar o tipo de anomalia, ele mostra o que simplesmente não se parece com o resto da base.
Ainda em beta — e o que já dá para fazer
Esta capacidade está em beta: já roda e devolve resultado, mas o critério de corte pode mudar conforme a gente refina. Trate a saída como uma triagem, não como veredito — o certo é o humano conferir os apontados. A entrada é a lista de textos, um por linha, até 20.000 tokens por chamada; bases maiores entram em lotes. Na saída, cada linha volta marcada como dentro ou fora do padrão, em JSON, pronta para filtrar na planilha e revisar só a ponta que interessa.
Preço de centavos, mesmo em base grande
São US$ 0,002 por chamada mais US$ 0,0015 por 1.000 linhas. Varrer 50.000 registros em busca do que destoa custa US$ 0,077 — a fração de uma hora de trabalho de quem ia conferir cadastro por cadastro. Como sai barato, dá para rodar de rotina: passar a base de clientes toda semana atrás de cadastro furado, ou a fila de pedidos todo dia atrás do que precisa de segunda olhada, sem pesar no orçamento.
Casos de uso
Cadastro de produtos com entrada torta
A Distribuidora Horizonte Verde S.A. passou 30.000 itens do catálogo para achar as descrições que destoam: preço no campo errado, unidade trocada, texto colado sem revisão. A lista de fora do padrão saiu curta, e a equipe corrigiu só o que realmente estava esquisito.
Pedidos que pedem uma segunda olhada
Uma loja virtual roda a fila do dia atrás de pedidos que fogem do comum — quantidade fora de escala, combinação estranha de itens, endereço que não conversa com o resto. Não é bloqueio automático: é uma triagem para o time de antifraude conferir antes de faturar.
Respostas de pesquisa que fogem do tom
Depois de uma pesquisa com 5.000 respostas abertas, os organizadores separaram as que não se parecem com nenhuma outra: texto de robô, resposta copiada, comentário fora do assunto. Limparam a base antes de tirar qualquer conclusão dela.
Chamados atípicos no suporte
Um SaaS destaca, entre os chamados da semana, os que não caem em nenhum tema recorrente. Costumam ser justamente o problema novo — o que ainda não virou pauta e merece chegar rápido a quem resolve.
Perguntas frequentes
Qual a diferença para agrupar textos por assunto?
O agrupamento junta o que é parecido em grupos; a detecção de fora do padrão faz o oposto — aponta o que não se parece com nada. Muita gente usa os dois juntos: agrupa para entender a base e, em paralelo, separa as sobras que não coube em grupo nenhum.
O que conta como “fora do padrão”?
É o texto que fica longe do miolo do conjunto em significado. Não há uma regra fixa do que é anômalo: depende da sua base. Numa base de cadastros, destoa o mal preenchido; numa de comentários, destoa o que fala de outra coisa. Por isso o resultado é sempre para o humano interpretar.
Preciso marcar exemplos “normais” antes de usar?
Não. Você não treina nem rotula nada: manda a base como ela é e o próprio conjunto define o que é comum. Isso é o que permite usar já na primeira vez, sem preparar dados de exemplo.
Está em beta — posso confiar no resultado?
Dá para usar, mas com a cabeça certa: é triagem, não decisão final. O beta significa que o critério de corte ainda pode mudar. Use para encurtar o que o humano revisa, não para bloquear ou aprovar nada no automático.
Quanto custa varrer uma base de 50.000 linhas?
US$ 0,075 de processamento (US$ 0,0015 por 1.000 linhas) mais US$ 0,002 da chamada: US$ 0,077 no total, em dólar. Sem mensalidade — você paga a rodada que fizer.
Preciso mandar os dados pessoais dos registros?
Não. A detecção precisa só do texto que descreve cada linha; deixe nome, CPF e e-mail fora do envio quando não fizerem parte do que você está avaliando. Mandar apenas o necessário é o caminho mais tranquilo para a LGPD.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/search/outliers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/outliers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/outliers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/outliers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/outliers", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.outliers",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chunks | 10000 |
max_tokens | 20000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |