Fluxos / JevModel

Classificação de texto no Airtable: rotule registros automaticamente com uma automação Run a script e o Jev

Classifique um campo de texto longo no Airtable sem sair da base: dispare uma automação quando um registro atender a condições, chame o JevModel numa ação Run a script com fetch() e grave no registro o rótulo, a probabilidade e uma marca de revisão. Inclui secrets, limites de scripts do Airtable, um caminho de preenchimento retroativo com CSV e Batch, testes e quando uma ferramenta no-code serve melhor.

Última atualização:

Resposta rápida: uma ação de script, uma requisição por registro

  • As automações do Airtable não têm uma ação genérica de “enviar requisição HTTP”, então APIs de IA externas são chamadas numa ação Run a script com fetch(). Dispare com “When a record matches conditions” (texto não vazio, categoria vazia), passe o ID do registro e o texto como variáveis de entrada e guarde a chave num secret do Airtable lido com input.secret().
  • O script envia só o texto para /api/v1/systemone do JevModel com um Choice de 2–12 categorias definidas por você e depois, com table.updateRecordAsync(), grava o rótulo escolhido num campo de seleção única, a probabilidade num campo numérico e marca uma caixa de revisão para probabilidade baixa, other ou erro.
  • O Airtable documenta limites por execução de script, entre eles 50 requisições fetch e timeout de 30 segundos por fetch, e a ação não está disponível em testes do plano Team. Cada registro rotulado é uma requisição Jev comum cobrada em tokens; contas verificadas começam com 100.000 tokens grátis. Para registros já existentes, exporte um CSV e use o Console → Batch (50 linhas por lote antes de comprar, 1.000 depois).

Como fica a classificação de texto no Airtable?

Bases do Airtable costumam acumular texto livre que alguém separa à mão: envios de formulário, pedidos de clientes, feedback, inscrições num programa, ideias de conteúdo. Classificar significa ler o texto de um campo de texto longo e preencher uma categoria de uma lista curta e fixa, para que visões, filtros e a próxima automação funcionem sem uma pessoa ler cada linha antes. Uma tabela prática precisa de quatro campos: o texto de origem (Long text), Category (seleção única com opções idênticas aos IDs dos rótulos, por exemplo billing, bug, feature_request, other), Confidence (número com duas casas decimais) e Needs review (caixa de seleção). Mantenha a lista curta e excludente e inclua sempre other, para o modelo ter um destino honesto para texto que não se encaixa. Se a urgência também importa, pergunte à parte como sim/não em vez de colocar urgent na lista; misturar as duas piora ambas as respostas. Este guia cobre uma categoria por registro. Se um registro pode pertencer a várias ao mesmo tempo, use um campo de seleção múltipla e leia antes o guia multi-label.

Classificação de feedback de clientes: um tema, uma prioridade e por que sentimento não bastaRoute customer support with JevChoice, Score, and Noul

Como configurar a automação do Airtable passo a passo?

Cinco passos. 1) Crie os quatro campos acima e adicione cada ID de rótulo como opção de seleção única antes da primeira execução; o script grava a opção pelo nome, então os nomes precisam bater. 2) Em Automations, crie uma automação com o gatilho “When a record matches conditions” e duas condições: o campo de texto não está vazio e Category está vazio. Ela dispara quando um registro entra nesse estado, por exemplo quando chega um envio de formulário, e gravar Category tira o registro da condição, então a automação não entra em loop com a própria atualização. 3) Adicione a ação “Run a script”. Na barra lateral de variáveis de entrada, adicione recordId mapeado para o ID de registro do Airtable vindo do gatilho e text mapeado para o campo de texto. 4) Crie uma chave de API do JevModel em Console → API keys com uma conta de e-mail verificado e adicione na aba Secrets do editor como JEVMODEL_API_KEY; o script lê com input.secret("JEVMODEL_API_KEY"). O Airtable restringe a edição de scripts com secrets a quem tem acesso a eles e oculta os secrets na saída do console. 5) Teste a ação com um registro de exemplo, confira o histórico e o log de execução e só então ative a automação. Se a chamada ao Jev falhar, deixe Category vazio e marque Needs review, para um erro temporário nunca rotular errado um registro.

JevModel API: request and responseYour first Jev decision

Quais limites do Airtable e do JevModel considerar?

No lado do Airtable, a central de ajuda lista os limites da ação Run a script: timeout de script documentado em 30 segundos (ampliado temporariamente para 120 segundos no momento em que este texto foi escrito), 30 segundos por fetch, 12 segundos para chamadas à API de scripting, 512 MB de memória, 50 requisições fetch e 30 consultas selectRecords por execução, e até 15 mutações por segundo, cada uma alterando até 50 registros. A ação existe em todos os planos com limitações diferentes, mas não durante o teste do plano Team. Um registro por execução, como no exemplo, fica bem abaixo disso. No lado do JevModel, a requisição inteira (state mais questions) precisa caber em 8.000 caracteres, então corte texto longo antes de enviar; o exemplo mantém os primeiros 6.000. Uma requisição faz de 1 a 8 perguntas; um Choice tem de 2 a 12 opções cujos IDs começam com letra minúscula e usam só minúsculas, dígitos e sublinhados, e um Score tem de 2 a 10 níveis ordenados. Não há campo model nem chave de idempotência: rodar a automação de novo num registro é uma requisição nova, cobrada de novo. Execuções com falha são reembolsadas. Cada registro rotulado é uma requisição comum à API cobrada em tokens do seu saldo; contas verificadas começam com 100.000 tokens grátis, e os pacotes pagos estão na página de preços.

JevModel pricing and free Jev runsJevModel API: request and response

Comparação: Run a script vs ferramenta no-code vs exportar CSV para o Batch

Os três enviam a mesma pergunta Jev; muda onde a lógica fica e como os resultados voltam para a base. A tabela compara a forma do fluxo, não a precisão, e nenhuma linha é benchmark.

Classificação de texto no Zapier: AI by Zapier Classify vs Vertex Classify Text vs HTTP → JevCategorize Text no Make.com: AI Toolkit vs HTTP → Jev para rótulos tipados e limiaresBatch text classification with the JevModel API
Comparação: Run a script vs ferramenta no-code vs exportar CSV para o Batch
DimensãoRun a script do Airtable → JevFerramenta no-code (Zapier, Make, n8n…)Exportar CSV → Console → Batch
Onde rodaDentro da base, como ação de automaçãoNa ferramenta, com gatilho e ações de AirtableNo navegador, uma vez
TempoLogo depois que o registro atende às condiçõesDepende do polling ou webhook da ferramentaDepois, para o acumulado
Gravar resultadostable.updateRecordAsync() no mesmo scriptUma etapa de “atualizar registro” na ferramentaReimportar ou colar as respostas exportadas
Saída do JevRótulo Choice com probabilidadesA mesma resposta, mapeada pela ferramentaRespostas por linha (50 linhas por lote antes de comprar, 1.000 depois)

Exemplo de código: classificar um registro e gravar o rótulo (ilustrativo)

Cole o script na ação Run a script e troque tabela, campos e definições de rótulos pelos da sua base. A requisição segue o contrato documentado do JevModel: POST /api/v1/systemone com uma chave Bearer de conta verificada, um state e perguntas nomeadas, aqui um Choice chamado category; uma resposta bem-sucedida tem code 0 e data.answers. Não há campo model porque o site sempre chama typesafe/jev-1.13 via OpenRouter; o JevModel é independente da TypeSafe AI, que desenvolve o Jev. O script envia só o texto, não nomes, e-mails nem outras colunas. Um valor de seleção única é gravado como objeto com name, e essa opção já precisa existir no campo. Registros abaixo do limiar de exemplo, rotulados como other e chamadas com falha recebem Needs review, então uma visão filtrada por essa caixa vira a fila humana. 0,7 é um marcador; escolha seu limiar com uma amostra rotulada.

JevModel API: request and responseChoice, Score, and NoulJev probability, confidence and human-review thresholds
// Illustrative only. Airtable automation → "Run a script" action.
// Input variables: recordId (Airtable record ID from the trigger), text (the long-text field).
// Secret: JEVMODEL_API_KEY (Secrets tab in the script editor).
// Fields: Category (single select), Confidence (number), Needs review (checkbox).
const { recordId, text } = input.config();
const table = base.getTable("Requests");

const res = await fetch("https://jevmodel.app/api/v1/systemone", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + input.secret("JEVMODEL_API_KEY"),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    // The whole request must stay within 8,000 characters.
    state: { text: String(text || "").slice(0, 6000) },
    questions: {
      category: {
        type: "choice",
        instructions: "Which team should handle this request submitted through our form?",
        criteria: {
          billing: "Invoices, payments, refunds, or plan changes.",
          bug: "Something is broken, shows an error, or behaves unexpectedly.",
          feature_request: "Asks for something the product does not do yet.",
          other: "Anything that fits none of the labels above.",
        },
      },
    },
  }),
});
const out = await res.json();

if (out.code !== 0) {
  // Leave Category empty and hand the record to a person.
  await table.updateRecordAsync(recordId, { "Needs review": true });
  console.log("Jev call failed: " + out.message);
} else {
  const { choice, probabilities } = out.data.answers.category;
  const p = probabilities ? probabilities[choice] : 0;
  await table.updateRecordAsync(recordId, {
    Category: { name: choice }, // the option must already exist in the field
    Confidence: p,
    "Needs review": p < 0.7 || choice === "other", // 0.7 is a placeholder
  });
}

Como testar os rótulos e tratar os registros existentes?

Comece por registros cuja categoria uma pessoa já conhece. Exporte algumas centenas em CSV com o texto e o rótulo humano, envie o texto ao JevModel Console → Batch com a mesma pergunta Choice e exporte as respostas por linha. Depois compare as duas colunas por rótulo numa planilha; o Batch não calcula a precisão por você. Veja quais pares se confundem e como a concordância muda ao subir o limiar de probabilidade, reescreva definições vagas e rode a mesma amostra de novo antes de ativar a automação. Esse mesmo caminho por CSV é o jeito mais simples de rotular o acumulado: a automação só dispara para registros que passam a atender às condições, e um script que percorre muitos registros numa execução logo bate no limite de 50 fetch. Depois do lançamento, mantenha uma visão filtrada por Needs review e ordenada por Confidence, e confira toda semana a fatia de other; se ela cresce, a lista de categorias já não reflete o que as pessoas enviam. Não deixe um rótulo apagar, ocultar ou enviar e-mail antes de medir com que frequência ele erra, e mantenha o campo editável para correções.

Evaluate a Jev workflowJev probability, confidence and human-review thresholdsClassificação de texto no Google Sheets: a função =AI() vs Apps Script → API Jev

Qual configuração escolher para o Airtable?

Escolha a ação Run a script quando o trabalho acontece na base, você consegue editar um script curto e seu plano inclui a ação. Escolha uma ferramenta no-code se ela já roda suas outras automações ou se o mesmo texto também precisa ir para Slack, e-mail ou um CRM; os guias de Zapier, Make, n8n, Power Automate e Pipedream mostram a mesma requisição Jev em cada uma. Escolha CSV e Console → Batch para um acumulado pontual ou para testar definições antes de existir qualquer automação. Se seus dados estão no Google Sheets e não no Airtable, o guia de Google Sheets cobre o mesmo padrão com Apps Script. Checklist para qualquer caminho: 1) defina rótulos com um other explícito; 2) mantenha a urgência numa pergunta sim/não separada; 3) envie só o texto, cortado abaixo do limite de 8.000 caracteres por requisição; 4) deixe a categoria vazia e marque o registro quando a chamada falhar; 5) comece com rótulos e uma visão de revisão, e adicione ações seguintes só depois de medir a concordância numa amostra rotulada. O JevModel é só texto e não é open source; anexos, imagens e áudio no Airtable não são classificados nessa configuração.

Classificação de texto multilabel: um Choice, várias perguntas sim/não ou uma segunda passagemNó Text Classifier do n8n: integrado vs chamar Jev em um workflowClassificação de texto no Power Automate: modelos AI Builder vs HTTP → JevClassificação de texto no Pipedream: ação Hugging Face vs HTTP → JevJev é multimodal / baixável? O que o JevModel realmente é

Perguntas frequentes

Uma automação do Airtable chama uma API de IA sem script?

Não para uma API qualquer. A central de ajuda do Airtable diz que as automações não têm uma ação genérica de “enviar requisição HTTP”; chamadas externas são feitas com fetch() dentro de Run a script. Sem escrever script, use uma ferramenta no-code como Zapier, Make ou n8n com o gatilho de Airtable e uma etapa HTTP.

Por que usar “When a record matches conditions” e não “When a record is created”?

Um registro criado à mão na grade pode nascer vazio e receber o texto um instante depois, então um gatilho de criação pode enviar um campo vazio. Exigir “texto não vazio e Category vazio” espera haver algo para classificar, e preencher Category tira o registro da condição, então ele não é enviado de novo.

Como rotular milhares de registros existentes do Airtable?

Exporte uma visão para CSV, rode no JevModel Console → Batch com a mesma pergunta Choice (50 linhas por lote antes de comprar, 1.000 depois) e importe as respostas pelo ID do registro. A automação foi pensada para registros novos; uma execução permite 50 requisições fetch, então percorrer uma tabela grande numa execução não escala.

Quanto custa classificar registros do Airtable com o Jev?

Cada registro classificado é uma requisição comum à API cobrada em tokens do seu saldo no JevModel; contas verificadas começam com 100.000 tokens grátis, e várias perguntas na mesma requisição são cobradas juntas. Texto curto e uma requisição por registro mantêm o uso baixo. As execuções de automação contam à parte no seu plano do Airtable. Veja o guia de preços para os pacotes atuais.

JevModel é independente e não é afiliado à TypeSafe AI.