Skip to content

Classificação por IA (AIExtract)

O nó AIExtract enriquece cada linha do DataFrame com campos extraídos ou classificados por um LLM. Você define o schema de saída — nome, tipo e descrição de cada campo — e a IA preenche esses campos para cada registro.


Funcionalidades

  • Classifica, normaliza ou extrai informações estruturadas de texto livre
  • Schema tipado com vocabulário fechado opcional (lista de valores permitidos)
  • Cardinalidade flexível: um valor por linha, vários em texto, ou expansão de linhas (explode)
  • Múltiplos tiers de modelo com custo e qualidade distintos
  • Cache automático por tenant + modelo + schema + registro — sem custo duplo
  • Processamento em batches com paralelismo configurável

Parâmetros de Configuração

Geral

  • Colunas de entrada (inputColumns) — Quais colunas enviar ao LLM como contexto. Inclua apenas o que é relevante; colunas desnecessárias aumentam custo.
  • Dica de contexto (contextHint) — Instrução adicional sobre o domínio dos dados (ex: "dados de e-commerce B2B"). Opcional.
  • Tier do modelo (tier) — Qualidade e custo do LLM. Padrão: fast.

Performance

ParâmetroPadrãoMáximoDescrição
batchSize1001000Registros por chamada ao LLM
maxParallelBatches520Batches processados em paralelo

Tiers de Modelo

TierModeloEntradaSaídaUso recomendado
freeGPT-OSS 20BgrátisgrátisTestes — pode alucinar
turboMercury 2 (diffusion)$0,25/M$0,75/MAlto volume, geração ~5× mais rápida
fastGrok 4.1 Fast$0,20/M$0,50/MPadrão — melhor custo-benefício
balancedGemini 2.5 Flash$0,30/M$2,50/MSchemas complexos ou textos longos
smartGemini 3 Flash Preview$0,50/M$3,00/MMáxima precisão

Schema de Saída

Cada campo define o que a IA deve extrair. Os campos originais do input são preservados; os campos abaixo são adicionados ao output.

PropriedadeObrigatórioDescrição
namesimNome da coluna — MAIÚSCULAS, sem acentos, max 30 chars
typesimstring, int, float ou bool
descriptionsimO que o campo representa. Mínimo 10 caracteres. Quanto mais preciso, melhor o resultado.
valuesnãoLista de valores permitidos (vocabulário fechado, só para type: string)
cardinalitynãosingle (padrão), join ou explode
separatornãoSeparador para cardinality: join. Padrão: ,
requirednãoSe true, rejeita registros onde esse campo não foi retornado

Cardinalidade

ModoComportamentoExemplo
single1 valor por linha"Eletrônicos"
joinMúltiplos valores serializados em texto"Doce, Salgado, Picante"
explode1 linha de output por valor — expande o DataFrame3 valores → 3 linhas

Apenas 1 campo por nó pode usar cardinality: explode. Múltiplos campos explode gerariam produto cartesiano. Divida em nós AIExtract separados se necessário.


Boas Práticas

Descrições de campo — A qualidade da classificação depende da qualidade das descrições.

RuimBom
"Categoria do produto""Categoria principal do produto: Eletrônicos, Vestuário, Alimentos, Móveis ou Outros"
"Sentimento""Sentimento do comentário do cliente: Positivo, Negativo ou Neutro"

Vocabulário fechado — Use values sempre que houver uma lista finita de categorias. Reduz alucinações e garante consistência no DW.

Colunas de entrada — Envie apenas as colunas relevantes. Colunas irrelevantes consomem tokens e podem confundir o modelo.

Cache — O cache é automático por (tenant, modelo, schema, contextHint, registro). Para forçar reclassificação, mude o contextHint ou o tier.

Quantidade de campos — Mais de 8 campos por nó aumenta custo e latência. Considere dividir em múltiplos nós.


Limites

LimiteValor
Registros por batch1 – 1.000
Campos com cardinality: explode por nómáx. 1
Comprimento mínimo de description10 caracteres
Campos recomendados por nóaté 8

Permissões

O nó requer a permissão use_ai_etl no usuário que executa o fluxo. A feature pode ser desabilitada por tenant via allow_etl_ai: false na configuração do tenant.