Pular para o conteúdo
Lucas Lessa
Voltar para as notícias
DatabricksAtualizaçãoImpacto: Médio

ai_parse_document agora extrai dados de gráficos em JSON

A função ai_parse_document agora identifica gráficos em documentos e extrai rótulos, legendas e valores de séries diretamente como JSON estruturado no campo content.

O que mudou

A função ai_parse_document agora extrai informações tabulares e numéricas de gráficos presentes em documentos não estruturados. Quando identifica um gráfico, a função gera descrições detalhadas e preenche os dados do gráfico em formato JSON estruturado.

Para que serve

Imagine que você processa relatórios de mercado em PDF com diversos gráficos de barras e linhas demonstrando faturamento trimestral. Antes, era necessário tratar imagens de figuras manualmente ou confiar apenas em resumos textuais. Agora você consegue extrair os dados numéricos do próprio gráfico diretamente em consultas SQL ou jobs Spark, permitindo:

  • Consultar séries temporais e valores numéricos exibidos visualmente em gráficos.
  • Alimentar pipelines analíticos e aplicações de RAG multimodal com números concretos extraídos das figuras.
  • Evitar etapas externas de OCR especializado em visualizações de dados.

Como usar

Para capturar essas informações, chame a função passando o conteúdo binário do documento. Opcionalmente, fixe o esquema na versão 2.0 e ative as descrições de elementos gráficos com 'descriptionElementTypes', '*'. Os dados do gráfico aparecerão no campo content dos elementos classificados como figure.

SELECT
  path,
  ai_parse_document(
    content,
    map(
      'version', '2.0',
      'descriptionElementTypes', '*'
    )
  ) AS parsed_doc
FROM READ_FILES('/Volumes/meu_catalogo/meu_schema/meu_volume/documentos/', format => 'binaryFile');

O que acontece nesse código:

  1. A função READ_FILES lê os arquivos do volume Unity Catalog no formato binaryFile.
  2. ai_parse_document processa o binário do documento usando o layout do esquema versão 2.0.
  3. O parâmetro 'descriptionElementTypes', '*' habilita a geração de descrições e análise estruturada de figuras, incluindo o JSON dos gráficos.

Para filtrar apenas os dados numéricos dos gráficos capturados:

WITH parsed AS (
  SELECT
    path,
    ai_parse_document(content, map('version', '2.0', 'descriptionElementTypes', '*')) AS doc
  FROM READ_FILES('/Volumes/meu_catalogo/meu_schema/meu_volume/relatorios/', format => 'binaryFile')
)
SELECT
  path,
  elem.description AS descricao_figura,
  elem.content AS dados_grafico_json
FROM parsed,
LATERAL EXPLODE(doc:document:elements) AS t(elem)
WHERE elem.type = 'figure'
  AND elem.content IS NOT NULL;

O que acontece nesse código:

  1. O CTE processa os documentos da pasta indicada.
  2. O comando LATERAL EXPLODE desmembra a lista elements de cada documento retornado em formato VARIANT.
  3. O filtro seleciona apenas itens do tipo figure cujo content não seja nulo, trazendo o JSON com séries, legendas e eixos.

O que retorna

Quando o elemento analisado for um gráfico, o campo content dentro de elements traz uma string JSON estruturada (valores ilustrativos):

CampoDescrição
titleTítulo detectado no gráfico (ex.: "Quarterly revenue")
valuesDicionário estruturado com as séries e valores numéricos lidos (ex.: {"Revenue": {"Q1": 12, "Q2": 15}})
additional_infoDetalhes contextuais complementares ou eixos identificados no gráfico

Limitações e requisitos

  • Requer Databricks Runtime 17.3 ou superior.
  • Em computação serverless, requer ambiente versão 3 ou superior para suporte ao tipo VARIANT.
  • Suporte aos formatos de entrada: PDF, JPG/JPEG, PNG, TIFF/TIF, DOC/DOCX e PPT/PPTX armazenados como tipo BINARY.
  • Limite de até 500 páginas por documento (se exceder, a função falha a menos que pageRange seja configurado).
  • O faturamento do uso é registrado no produto AI_FUNCTIONS e depende da disponibilidade regional dos modelos de fundação.

Como aplicar num pipeline

Em uma camada Bronze que ingere arquivos binários de volumes Unity Catalog, use ai_parse_document em uma visualização ou tabela Silver. Da Silver, exploda os elementos do tipo figure e use funções JSON para carregar os valores das séries diretamente em tabelas dimensionais ou fatos na camada Gold.

Ver nota oficial do Databricks

ai_parse_document now extracts chart data

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas