Essa é uma revisão anterior do documento!


Pipeline responsável pela integração de dados de peças processuais e anexos do oracle para o elasticsearch, gerando metadados, OCR dos documentos e embeddings para uso da IA.

O primeiro passo da pipeline é monitorar quando um documento deve ser indexado, para isso, diáriamente a pipeline monitora as tabelas do Oracle (TCE_GO.PRO_SUMARIO, TCE_GO.PRO_AUTUACAO), caso exista um novo doucmento, ele é enviado para execução da Pipeline.

Uma vez identificado quais documentos devem ser indexados, os mesmo devem ser enviados para processamento, o processamento consiste em 3 etapas:

  1. Extração de Metadados
  2. Extração do Documento/Texto e Geração de OCR
  3. Geração de Embeddings com o Texto do Documento

Processamento de Metadados

O processamento dos metadados é feito chamando a API do ETCE: https://api.etce.tce.gti.br/api/v1/Processo/consulta/extracao

{
  "autuacaoId": 334965,
  "dataAutuacao": "2020-02-14T17:30:24",
  "situacaoAndamento": null,
  "anoReferencia": 2020,
  "assunto": "019-01-PROJETO-RESOLUÇÃO",
  "nomeAuditor": "USUARIO 58863",
  "codigoProcesso": "202000047000376",
  "colegiado": null,
  "dataPublicacao": "0001-01-01T00:00:00",
  "dataSessao": "0001-01-01T00:00:00",
  "ementa": "Processo nº 202000047000376/01901, em que a Presidência do Tribunal de Contas do Estado de Goiás, encaminha Proposta de Resolução apresentada pelo corpo de Conselheiros Substitutos desta Corte de Contas que trata da nomenclatura do cargo por estes ocupado.",
  "historico": "Em que a Presidência do Tribunal de Contas do Estado de Goiás, encaminha Proposta de Resolução apresentada pelo corpo de Conselheiros Substitutos desta Corte de Contas que trata da nomenclatura do cargo por estes ocupado.\n",
  "tipoDocumento": null,
  "numero": 202000047000376,
  "numeroAno": "2020/202000047000376",
  "orgaoOrigem": "TRIBUNAL DE CONTAS DO ESTADO DE GOIÁS",
  "nomeProcurador": "USUARIO 52254",
  "nomeRelator": "USUARIO 213215",
  "interessados": [
    {
      "pessoaId": 46094,
      "cpfCnpj": "00091730000114",
      "nome": "PESSOA JURIDICA 46094"
    }
  ],
  "decisoes": [
    {
      "autuacaoId": 334965,
      "numeroDecisao": "7/2024",
      "tipoDocumento": "Resolução",
      "acordaoId": null,
      "resolucaoId": 23067,
      "dataDecisao": "2024-10-03T16:06:44",
      "dataPublicacao": "2024-10-08T00:00:00",
      "descricaoTipoJulgamento": "Ato Legal",
      "colegiado": "Tribunal Pleno",
      "numeroSessao": 19,
      "nomeRelatorDecisao": "USUARIO 213215",
      "dataSessao": "2024-09-30T11:00:00"
    }
  ],
  "ehProcessoSigiloso": false,
  "ehProcessoReservado": false
}

Processamento de Texto e OCR

O processamento e extração do documento PDF do texto do documento é realizado pela API do ETCE: https://api.etce.tce.gti.br/api/v1/Processo/documento/extracao & https://api.etce.tce.gti.br/api/v1/Processo/documento/extracao/download

{
  "documentoId": 614125,
  "autuacaoId": 371468,
  "codigoProcesso": 2024,
  "dataCriacao": "2025-01-15T17:23:27",
  "descricaoTipoDocumento": "Documento Digital",
  "descricaoTitulo": "1-Petição de Certidão Negativa - Copia - Copia.pdf",
  "texto": null,
  "tipoDocumento": "L1",
  "ehProcessoSigiloso": false
}

Com o documento PDF recuperado, o mesmo é submetido a OCR pela API do Docling: http://gpu-server01.tce.go.gov.br:11000/extract_text_from_file

Processamento de Embeddings

Com o texto extraido do OCR, os embeddings são gerados em chunks pelo mesmo modelo com finetunnig usado no legis arturmatos/bge-ft-legis-full

Ao final o resultado do processamento é carregado no elasticsearch, o link para visualizar os documentos carregados é: https://elk.tce.go.gov.br/app/discover#/view/89d03c4d-9087-4644-9300-216e1eaea51b

Essa pipeline é orquestrada e executada periodicamente pelo Airflow, o link de acesso é: https://dataflow.tce.go.gov.br/dags/iago.autuacao/grid


No oracle é usado a tabela IAG.IAG_CONTROLE_EXTRACAO para realizar o controle de quais documentos foram processados com sucesso e com erro, nos quais os documentos com erro serão reprocessados novamente em uma nova oportunidade.

Atualmente com a média de 1.6 Milhões de documentos, o tempo total para processar toda a base dura 7 dias.

  • pres/gerti/servico_de_desenvolvimento_de_sistemas_de_informacao/projetos/iago-dataflow.1747921419.txt.gz
  • Última modificação: 22/05/2025 13:43
  • por mfaquino