Baixar Collection

Fluxo Resumo Processos Ia - Escavador Business API - Documentação

Grupo

Fluxo de implementação: Resumo de processos (IA)

Visão geral do fluxo

As rotas funcionam em conjunto e devem ser usadas nesta ordem:

  1. Solicitar geração/atualização do resumo.
  2. Consultar status até conclusão.
  3. Buscar o resumo pronto.

Se sua integração pular a etapa de solicitação, a rota de resumo pode retornar ausência de conteúdo, porque o resumo ainda não existe no momento da leitura.

Links diretos dos 3 endpoints na documentação:

Rotas envolvidas

1) Solicitar geração/atualização do resumo

  • Método: POST
  • Objetivo: registrar o pedido assíncrono de geração/atualização do resumo inteligente.
  • Papel no fluxo: etapa obrigatória de inicialização.
  • Documentação da rota: abrir endpoint

2) Consultar status da solicitação

  • Método: GET
  • Objetivo: acompanhar o processamento assíncrono.
  • Papel no fluxo: controle de orquestração (polling) até estado final.
  • Documentação da rota: abrir endpoint

3) Obter resumo inteligente do processo

  • Método: GET
  • Objetivo: retornar o resumo pronto.
  • Papel no fluxo: consumo final do resultado.
  • Documentação da rota: abrir endpoint

Por que isso é assíncrono

A geração de resumo depende de processamento interno e pode levar tempo variável conforme disponibilidade de dados e fila de processamento. Por isso:

  • POST de solicitação não significa resumo pronto imediato.
  • GET de status é a forma canônica de saber quando concluir.
  • GET do resumo deve ser feito somente após status final de conclusão.

Se você também quiser garantir dados mais recentes do processo antes do resumo, consulte a etapa de atualização em: Solicitar atualização de um processo.

Sequência recomendada de integração

Passo 1: Solicite o resumo

Dispare a rota de solicitação e registre, no seu sistema, o processo/solicitação iniciada para acompanhamento.

Boas práticas:

  • Faça idempotência no cliente para evitar solicitações repetidas em curto intervalo.
  • Registre timestamp da solicitação.
  • Relacione a solicitação ao identificador do processo no seu banco.

Passo 2: Faça polling de status

Depois de solicitar, consulte periodicamente o status da solicitação.

Estratégia recomendada:

  • Primeiras tentativas com intervalo curto (por exemplo, 5 a 10 segundos).
  • Aumentar gradualmente o intervalo (backoff) para reduzir carga.
  • Definir timeout total de orquestração no cliente.

Estados esperados (conceitualmente):

  • Em processamento: continuar polling.
  • Concluído: seguir para leitura do resumo.
  • Falha: registrar motivo e decidir entre nova tentativa ou escalonamento.

Passo 3: Busque o resumo pronto

Quando o status indicar conclusão, consuma a rota de resumo inteligente.

Se ainda não houver conteúdo, trate como condição transitória e faça nova leitura curta com limite de tentativas, pois pode existir pequeno atraso de consistência entre finalização e disponibilização.

Exemplo de orquestração (pseudocódigo)

async function obterResumoInteligente(numeroCnj, token) {
  await solicitarResumo(numeroCnj, token); // POST

  const maxTentativas = 12;
  let esperaMs = 5000;

  for (let tentativa = 1; tentativa <= maxTentativas; tentativa++) {
    const status = await consultarStatusResumo(numeroCnj, token); // GET status

    if (status === "CONCLUIDO") {
      return await buscarResumo(numeroCnj, token); // GET resumo
    }

    if (status === "FALHA") {
      throw new Error("Falha na geração do resumo inteligente");
    }

    await new Promise((r) => setTimeout(r, esperaMs));
    esperaMs = Math.min(esperaMs + 3000, 30000);
  }

  throw new Error("Timeout ao aguardar conclusão do resumo inteligente");
}

Cenários de erro e tratamento

Solicitação duplicada

  • Causa: múltiplos cliques/eventos concorrentes.
  • Mitigação: lock por processo no cliente e janela de deduplicação.

Polling agressivo

  • Causa: consulta de status em intervalo muito curto.
  • Mitigação: backoff e limite de tentativas.

Leitura precoce do resumo

  • Causa: chamada da rota de resumo sem aguardar conclusão.
  • Mitigação: regra fixa de negócio no cliente: somente ler resumo após status concluído.

Timeout de processamento

  • Causa: fila lenta ou indisponibilidade temporária.
  • Mitigação: timeout controlado no cliente, retry com critério e observabilidade.

Recomendação de UX para produtos

Para evitar percepção de falha, mostre estados claros na interface:

  • "Resumo solicitado"
  • "Resumo em processamento"
  • "Resumo concluído"
  • "Não foi possível concluir agora, tente novamente"

Também é recomendado exibir a hora da última atualização do resumo quando disponível.

Checklist de implementação

  • Implementar POST de solicitação como etapa obrigatória.
  • Implementar polling do GET de status com backoff.
  • Consumir GET de resumo somente após conclusão.
  • Implementar timeout e tratamento de falha.
  • Registrar logs com número do processo, status e tempo total do fluxo.