- Categorias:
Funções de arquivo (funções de AI)
PARSE_DOCUMENT (SNOWFLAKE.CORTEX)¶
Nota
AI_PARSE_DOCUMENT é a versão mais recente dessa função. Use o AI_PARSE_DOCUMENT para obter a funcionalidade mais recente. Você pode continuar a usar o PARSE_DOCUMENT (SNOWFLAKE.CORTEX).
Retorna o conteúdo extraído de um documento em uma preparação Snowflake como uma string formatada como JSON. Esta função oferece suporte a 2 tipos de extrações, reconhecimento óptico de caracteres (OCR) e layout. Para obter mais informações, consulte Parsing documents with AI_PARSE_DOCUMENT.
Sintaxe¶
SNOWFLAKE.CORTEX.PARSE_DOCUMENT( '@<stage>', '<path>', [ <options> ] )
Argumentos¶
Obrigatório:
stageNome do estágio Snowflake.
pathCaminho relativo para o documento no estágio Snowflake.
Opcional:
optionsUm valor OBJECT que contém opções para análise de documentos. As chaves compatíveis são mostradas abaixo. Todas são opcionais.
'mode': especifica o modo de análise. Os modos compatíveis são:'OCR': a função extrai somente texto. É o modo padrão.'LAYOUT': a função extrai o layout e o texto, incluindo o conteúdo estrutural, como tabelas.
'page_split': If set to TRUE, the function splits the output of the function to return content per page. Only PDF, PowerPoint (.pptx), and Word (.docx) documents are supported. Documents in other formats return an error. The default is FALSE.
Retornos¶
Um objeto JSON (como uma string) que contém os dados extraídos e os metadados associados. O argumento options determina a estrutura do objeto retornado.
Dica
Para utilizar a saída em SQL, converta-a em um valor OBJECT usando a função PARSE_JSON.
Se a opção 'page_split' estiver definida, a saída terá a seguinte estrutura:
"pages": uma matriz de objetos JSON, cada um contendo texto extraído do documento. Se o documento tiver apenas uma página, a saída ainda conterá uma matriz"pages"(que contém um único objeto). Cada página tem os seguintes campos:
"content": texto simples (no modo OCR) ou texto formatado em Markdown (no modo LAYOUT).
"index": o índice da página no arquivo, começando em 0. Os números de página e os formatos de especificados no documento são ignorados.
"errorInformation": contém informações de erro se o documento não puder ser analisado.
"metadata": contém metadados sobre o documento, como contagem de páginas.Nota
Os campos
"pages"e"metadata"estarão presentes na saída quando a análise for bem-sucedida."errorInformation"estará presente somente se a análise falhar.
Se 'page_split' for FALSE ou não estiver presente, a saída terá a seguinte estrutura:
"content": texto simples (no modo OCR) ou texto formatado em Markdown (no modo LAYOUT).
"errorInformation": contém informações de erro se o documento não puder ser analisado.
"metadata": contém metadados sobre o documento, como contagem de páginas.Nota
Os campos
"content"e"metadata"estarão presentes na saída quando a análise for bem-sucedida."errorInformation"estará presente somente se a análise falhar.
Exemplos¶
Modo OCR¶
SELECT TO_VARCHAR(
SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR'})
) AS OCR;
Saída:
{
"content": "content of the document"
}
Modo LAYOUT¶
Este exemplo analisa um documento com uma tabela mostrada na captura de tela a seguir:
SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'LAYOUT'} ) ) AS LAYOUT;
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."
}
Dividir páginas¶
Este exemplo divide um documento de várias páginas em páginas separadas, que são processadas separadamente usando o modo 'OCR'.
SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR', 'page_split': TRUE} ) ) AS MULTIPAGE;
Saída:
{
"pages": [
{
"content": "content of the first page",
"index": 0
},
{
"content": "content of the second page",
"index": 1
},
{
"content": "content of the third page",
"index": 2
}
],
"metadata": {
"pageCount": 3
}
}
Limitações¶
As funções do Snowflake Cortex não são compatíveis com tabelas dinâmicas.