Categorias:

Funções de cadeia de caracteres e binários (Large Language Model)

PARSE_DOCUMENT (SNOWFLAKE.CORTEX)

Retorna o conteúdo extraído de um documento em um estágio Snowflake como um OBJECT que contém objetos codificados em JSON como cadeias de caracteres. Esta função suporta 2 tipos de extrações, reconhecimento óptico de caracteres (OCR) e layout. Para saber mais, consulte Cortex PARSE_DOCUMENT.

Sintaxe

SNOWFLAKE.CORTEX.PARSE_DOCUMENT( '@<stage>', '<path>', [ { 'mode': '<mode>' }, ] )
Copy

Argumentos

Obrigatório:

stage

Nome do estágio Snowflake.

path

Caminho relativo para o documento no estágio Snowflake.

Opcional:

mode

Retorna um valor do tipo OBJECT. No objeto, o valor da chave content contém os dados extraídos como uma cadeia de caracteres codificada em JSON. Os dados podem ser formatados ou em texto simples, dependendo do modo especificado na chamada:

  • Se mode for LAYOUT, os dados são Markdown com conteúdo estrutural, incluindo tabelas.

  • Se mode for OCR, os dados são o conteúdo do texto.

Padrão: 'OCR'

Retornos

Um tipo de dados OBJECT com os dados extraídos. O conteúdo depende do modo usado na chamada:

  • Modo OCR (padrão): JSON (como cadeia de caracteres) com as chaves descritas abaixo.

    • "content": texto extraído do documento.

    • "errorInformation": contém informações de erro se a extração falhar.

  • Modo LAYOUT (versão preliminar): JSON (como cadeia de caracteres) com as chaves descritas abaixo.

    • "content": texto formatado em Markdown com tabelas extraídas do documento.

    • "errorInformation": contém informações de erro se a extração falhar.

Exemplos

Modo OCR

SELECT TO_VARCHAR(
    SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
        '@PARSE_DOCUMENT.DEMO.documents',
        'document_1.pdf',
        {'mode': 'OCR'})
    ) AS OCR;
Copy

Saída:

{
    "content": "content of the document"
}

Modo LAYOUT

Este exemplo analisa um documento com uma tabela mostrada na captura de tela a seguir:

Exemplo de conteúdo de PDF com uma tabela
SELECT
  TO_VARCHAR (
    SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
        '@PARSE_DOCUMENT.DEMO.documents',
        'document_1.pdf',
        {'mode': 'LAYOUT'} ) ) AS LAYOUT;
Copy

Saída:

{
  "content": "# This is PARSE DOCUMENT example
     Example table:
     |Header|Second header|Third Header|
     |:---:|:---:|:---:|
     |First row header|Data in first row|Data in first row|
     |Second row header|Data in second row|Data in second row|

     Some more text."
 }

Limitações

As funções do Snowflake Cortex não são compatíveis com tabelas dinâmicas.