Cortex PARSE_DOCUMENT¶
A função PARSE_DOCUMENT é uma das funções Funções AISQL da Cortex AI que oferece a capacidade de extrair texto, dados e elementos de layout de documentos. Você pode usar PARSE_DOCUMENT para extrair texto de vários documentos e formulários para implementar o seguinte:
Pipelines RAG que alimentam o Cortex Search
Processamento LLM, como resumo ou tradução de documentos, usando as funções da Cortex AI
Extração de entidades zero-shot usando as saídas estruturadas de Cortex AI
Como a PARSE_DOCUMENT funciona¶
A função PARSE_DOCUMENT oferece dois modos de processamento de documentos PDF:
O modo OCR é a opção recomendada para extração de texto rápida e de alta qualidade de documentos como manuais, contratos, páginas de detalhes de produtos, apólices de seguro e reclamações, bem como documentos SharePoint.
LAYOUT é otimizado para extrair texto e elementos de layout, como tabelas. Essa é a opção recomendada para melhorar o contexto de uma base de conhecimento de documentos para otimizar os sistemas de informações de recuperação e para a inferência do modelo de linguagem grande (LLM).
Nota
O modo de layout PARSE_DOCUMENT está atualmente na visualização. O modo OCR tem disponibilidade geral na maioria das regiões.
Uso de PARSE_DOCUMENT¶
O Cortex PARSE_DOCUMENT é uma função SQL. Como é totalmente hospedado e gerenciado pela Snowflake, sua utilização não requer configuração. Aponte a função PARSE_DOCUMENT para um estágio que contenha seus documentos PDF para extrair dados deles. O exemplo a seguir extrai as informações de texto e layout do arquivo document_1.pdf
no estágio documents
no banco de dados parse_document
e no esquema demo
.
Nota
PARSE_DOCUMENT é atualmente incompatível com políticas de rede personalizadas.
SELECT
SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
@parse_document.demo.documents,
'document_1.pdf',
{'mode': 'LAYOUT'}
) AS layout;
Como criar um estágio para o processamento de documentos¶
Crie um estágio interno ou externo para armazenar os documentos que deseja processar. Ao criar seu estágio, ative criptografia do lado de servidor. Caso contrário, PARSE_DOCUMENT retorna um erro informando que o arquivo fornecido não está no formato esperado ou está criptografado no lado do cliente.
O SQL abaixo cria um estágio interno adequado.
CREATE OR REPLACE STAGE input_stage
DIRECTORY = ( ENABLE = true )
ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
O SQL a seguir cria um estágio externo no Amazon S3. Também há suporte para os estágios externos do Azure e GCP.
CREATE OR REPLACE STAGE input_stage
URL='s3://<s3-path>/'
CREDENTIALS=(AWS_KEY_ID=<aws_key_id>
AWS_SECRET_KEY=<aws_secret_key>)
ENCRYPTION=( TYPE = 'AWS_SSE_S3' );
Nota
Atualmente, o processamento de arquivos de estágios é incompatível com as políticas de rede personalizadas.
Dica
Se você se deparar com a mensagem de erro “A expiração em segundos para a função AWS é inválida” de um estágio externo, verifique se o tempo de expiração do URL predefinido está definido com precisão. O valor padrão desse parâmetro de conta é otimizado para estágios internos, mas há uma opção para ajustá-lo para funcionar com estágios externos. Para alterá-lo, entre em contato com o suporte Snowflake.
Exemplo¶
Este exemplo usa o modo OCR da função PARSE_DOCUMENT para extrair texto da primeira página de um documento de seguro contra condições climáticas, mostrado abaixo.

Para analisar esse documento, você faria o upload dele em um estágio nomeado document_stage
e executaria a seguinte consulta:
SELECT SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
@document_stage,
'weather_policy.pdf'
) AS weather_policy_doc
A resposta bruta de PARSE_DOCUMENT é a seguinte:
{
"content": "SOME INSURANCE COMPANY\nWEATHER PROTECTION INSURANCE POLICY\nPolicy Number: WP-2025-789456\nEffective Date: April 1, 2025\nExpiration Date: April 1, 2026\nNAMED INSURED AND PROPERTY:\nJohn and Mary Homeowner\n123 Shelter Lane\nWeatherton, ST 12345\n
SECTION I - DEFINITIONS\nThroughout this policy, \"you\" and \"your\" refer to the Named Insured shown in the Declarations and the spouse if a\nresident of the same household. \"We,\" \"us,\" and \"our\" refer to Evergreen Insurance Company providing this\ninsurance. In addition, certain words and phrases are defined as follows:\n1. Weather Event means a natural atmospheric occurrence including but not limited to: a. Wind (including\nhurricanes, tornadoes, and straight-line winds) b. Hail c. Lightning d. Snow, ice, and freezing rain e.\nExcessive rainfall resulting in flooding f. Extreme temperatures causing damage\n2. Named Storm means any storm or weather disturbance that has been declared and named as a tropical\nstorm or hurricane by the National Weather Service or National Hurricane Center.\n3. Actual Cash Value (ACV) means the cost to repair or replace damaged property with new material of like\nkind and quality, less depreciation due to age, wear and condition.\n4. Replacement Cost means the cost to repair or replace damaged property with new material of like kind\nand quality, without deduction for depreciation.\n5. Dwelling means the building structure at the insured location including attached structures and fixtures.\n6. Other Structures means structures on the residence premises separated from the dwelling by clear\nspace or connected only by a fence, utility line, or similar connection.\n7. Personal Property means movable items owned by you and located at the insured property.\n
SECTION II - COVERAGE\nA. PROPERTY COVERAGE\nWe will pay for direct physical loss to property described in the Declarations caused by a Weather Event unless\nthe loss is excluded in Section III - Exclusions.\n1. Dwelling Protection We will cover: a. Your dwelling, including attached structures b. Materials and\nsupplies located on or adjacent to the residence premises for use in construction, alteration, or repair of\nthe dwelling or other structures c. Foundation, floor slab, and footings supporting the dwelling d.\nWall-to-wall carpeting attached to the dwelling\n2. Other Structures Protection We will cover structures on your property separated from your dwelling by\nclear space, including: a. Detached garages b. Storage sheds c. Fences d. Driveways and walkways e.\nPatios and retaining walls\n3. Personal Property Protection We will cover personal property owned or used by you while it is on the\nresidence premises. Coverage includes but is not limited to: a. Furniture b. Clothing c. Electronic\nequipment d. Appliances e. Sporting goods\n4. Loss of Use Protection If a Weather Event makes your residence uninhabitable, we will cover: a.\nAdditional living expenses incurred to maintain your normal standard of living b. Fair rental value if part of\nyour residence is rented to others c. Necessary expenses required to make the residence habitable or\nmove to temporary housing\nB. ADDITIONAL COVERAGES",
"metadata": {
"pageCount": 1
}
}
Ao processar essa resposta com o as funções LLM de Cortex AI, você pode realizar facilmente a análise de dados não estruturados. O exemplo a seguir demonstra uma tarefa simples de resposta a perguntas:
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
CONCAT ('Is clothing covered as part of the weather protection insurance policy?',
TO_VARCHAR(weather_policy_doc))) FROM ocr_example_docs
Resposta:
Yes, clothing is covered under the insurance policy. According to Section II - Coverage, Part A.3 (Personal Property Protection), clothing is specifically listed as one of the covered personal property items while it is on the residence premises. The policy states: "We will cover personal property owned or used by you while it is on the residence premises. Coverage includes but is not limited to: a. Furniture b. Clothing c. Electronic equipment d. Appliances e. Sporting goods"
Requisitos de entrada¶
A função PARSE_DOCUMENT é otimizada para documentos digitais e escaneados. A tabela a seguir lista as limitações e os requisitos dos documentos de entrada:
Tamanho máximo do arquivo |
100 MB |
Máximo de páginas por documento |
300 páginas |
Tipo de arquivo permitido |
PDF, PPTX, DOCX, JPEG, JPG, PNG, TIFF, TIF |
Criptografia de estágio |
Criptografia do lado do servidor |
Tamanho da fonte |
8 pontos ou maior para obter melhores resultados |
Recursos de documentos compatíveis¶
Recurso |
Descrição |
---|---|
Orientação da página |
PARSE_DOCUMENT detecta automaticamente a orientação da página. |
Caracteres |
PARSE_DOCUMENT detecta os seguintes caracteres:
|
Nota
A função PARSE_DOCUMENT não é treinada para o reconhecimento de escrita à mão.
Linguagens compatíveis¶
A função PARSE_DOCUMENT é deliberadamente treinada para os seguintes idiomas:
Modo OCR |
Modo LAYOUT |
---|---|
|
|
O modo LAYOUT também é compatível, mas não é otimizado para francês, alemão, italiano, norueguês, polonês, português, espanhol e sueco.
Disponibilidade regional¶
O suporte para esse recurso está disponível para contas nas seguintes regiões do Snowflake:
AWS |
Azure |
Google Cloud Platform |
---|---|---|
US West 2 (Oregon) |
East US 2 (Virginia) |
US Central 1 (Iowa) |
US East (Ohio) |
West US 2 (Washington) |
|
US East 1 (N. Virginia) |
Europa (Holanda) |
|
Europe (Ireland) |
||
Europe Central 1 (Frankfurt) |
||
Asia Pacific (Sydney) |
||
Asia Pacific (Tokyo) |
Requisitos de controle de acesso¶
Para usar a função PARSE_DOCUMENT, um usuário com a função ACCOUNTADMIN deve conceder a função de banco de dados SNOWFLAKECORTEX_USER ao usuário que chamará a função. Veja o tópico Privilégios obrigatórios para mais detalhes.
Considerações sobre custo¶
A função Cortex PARSE_DOCUMENT incorre em custos de computação com base no número processado de páginas por documento.
Para formatos de arquivo de documento (PDF, DOCX), cada página do documento é cobrada como uma página.
Para formatos de arquivo de imagem (JPEG, JPG, TIF, TIFF, PNG), cada arquivo de imagem individual é cobrado como uma página.
O Snowflake recomenda a execução de consultas que chamem a função PARSE_DOCUMENT do Cortex em um warehouse menor (até o tamanho MEDIUM). Warehouses maiores não aumentam o desempenho.
Condições de erro¶
O Snowflake Cortex PARSE_DOCUMENT pode produzir as seguintes mensagens de erro:
Mensagem |
Explicação |
---|---|
O documento contém um idioma que não é compatível. |
O documento de entrada contém um idioma não compatível |
O formato de arquivo fornecido {file_extension} não é compatível. Formatos compatíveis: .docx, .pptx, .pdf. |
Retornado quando o documento não está em um formato compatível. |
O formato de arquivo fornecido .bin não é compatível. Formatos compatíveis: .docx, .pptx, .pdf. Certifique-se de que o arquivo esteja armazenado com criptografia no lado do servidor. |
Retornado quando o formato do arquivo não é compatível e entendido como um arquivo binário. Certifique-se de que o estágio use criptografia no lado do servidor. |
Número máximo de 300 páginas excedido. |
Retornado quando o PDF contém mais de 300 páginas. |
O tamanho máximo do arquivo de 104857600 bytes foi excedido. |
Retornado quando o documento tem mais de 100 MB. |
O arquivo fornecido não pode ser encontrado. |
O arquivo não existe. |
O arquivo fornecido não pode ser acessado. |
O arquivo não pode ser acessado devido a privilégios insuficientes. |
A função Parse Document não respondeu no tempo permitido. |
Tempo limite atingido. |
Erro interno. |
Ocorreu um erro no sistema. Aguarde e tente novamente. |
Avisos legais¶
A classificação dos dados de entradas e saídas é definido na tabela a seguir.
Classificação de dados de entrada |
Classificação de dados de saída |
Designação |
---|---|---|
Usage Data |
Customer Data |
As funções disponíveis ao público em geral são recursos de AI cobertos. As funções em versão preliminar são recursos de AI em versão preliminar. [1] |
Para obter informações adicionais, consulte AI e ML Snowflake.