Tutorial: Crie um pipeline de processamento de documentos com a AI de documento

Introdução

Com Document AI, você pode processar documentos de vários formatos e extrair informações tanto de parágrafos com muito texto quanto de imagens com texto, como logotipos, texto manuscrito (assinaturas) ou marcas de seleção. Este tutorial apresenta a você a Document AI configurando os objetos e privilégios necessários e compilando um modelo da Document AI para uso em um pipeline de processamento.

O tutorial utiliza a interface da Web Snowsight. Para as etapas que exigem o uso de SQL, você pode usar qualquer cliente Snowflake que suporte a execução de SQL.

O que você aprenderá

Neste tutorial, você aprenderá como:

  • Configure os objetos e privilégios necessários para trabalhar com Document AI.

  • Prepare uma compilação de modelo da Document AI usando a interface do usuário da Document AI no Snowsight para extrair dados de documentos não estruturados.

  • Crie um pipeline para processamento contínuo de novos documentos em estágio, usando uma compilação de modelo da Document AI, fluxos e tarefas.

Pré-requisitos

Os seguintes pré-requisitos são necessários para concluir este tutorial:

  • Você deve se conectar a um usuário que possua a função ACCOUNTADMIN usada para criar uma função personalizada usada neste tutorial e conceder à nova função os privilégios necessários.

  • Você deve ter uma conta Snowflake em uma das regiões comerciais com suporte para Document AI. Para obter mais informações sobre as regiões com suporte, consulte Disponibilidade do Document AI.

  • Você deve ter um warehouse pronto para uso com a Document AI. Para obter mais informações sobre como selecionar um warehouse, consulte Determinação do tamanho ideal do warehouse para Document AI.

Configure os objetos e privilégios necessários

Nesta seção, você irá:

  • Criar um banco de dados e um esquema para conter a compilação de modelo da Document AI.

  • Crie uma função personalizada para preparar um compilação de modelo da Document AI e um pipeline de processamento de documentos.

  • Conceda os privilégios necessários à função personalizada.

Crie um banco de dados, um esquema e uma função personalizada.

Para criar um banco de dados, um esquema e uma função para trabalhar com Document AI, faça o seguinte:

  1. Crie um banco de dados e um esquema no qual criar uma compilação de modelo de Document AI:

    CREATE DATABASE doc_ai_db;
    CREATE SCHEMA doc_ai_db.doc_ai_schema;
    
    Copy
  2. Crie uma função personalizada doc_ai_role para preparar a compilação de modelo de Document AI e criar pipelines de processamento:

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE doc_ai_role;
    
    Copy

Concessão dos privilégios necessários

Para conceder os privilégios necessários para trabalhar com a Document AI, faça o seguinte:

  1. Conceda a função de banco de dados SNOWFLAKE DOCUMENT_INTELLIGENCE_CREATOR para à função doc_ai_role.

    GRANT DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR TO ROLE doc_ai_role;
    
    Copy
  2. Conceda privilégios de uso e operação do warehouse à função doc_ai_role:

    GRANT USAGE, OPERATE ON WAREHOUSE <your_warehouse> TO ROLE doc_ai_role;
    
    Copy
  3. Conceda privilégios para usar o banco de dados e o esquema que você criou para doc_ai_role:

    GRANT USAGE ON DATABASE doc_ai_db TO ROLE doc_ai_role;
    GRANT USAGE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
    
    Copy
  4. Conceda o privilégio de criação de estágio no esquema à função doc_ai_role para armazenar os documentos para extração:

    GRANT CREATE STAGE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
    
    Copy
  5. Conceda o privilégio de criar compilações de modelo (instâncias da classe DOCUMENT_INTELLIGENCE) à função doc_ai_role:

    GRANT CREATE SNOWFLAKE.ML.DOCUMENT_INTELLIGENCE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
    
    Copy
  6. Conceda os privilégios necessários para criar um pipeline de processamento usando fluxos e tarefas à função doc_ai_role:

    GRANT CREATE STREAM, CREATE TABLE, CREATE TASK, CREATE VIEW ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
    GRANT EXECUTE TASK ON ACCOUNT TO ROLE doc_ai_role;
    
    Copy
  7. Conceda doc_ai_role ao usuário do tutorial para uso nas próximas etapas do tutorial:

    GRANT ROLE doc_ai_role TO USER <your_user_name>;
    
    Copy

O que você aprendeu nesta seção

Nesta seção você aprendeu a:

  • Criar o banco de dados e o esquema para conter uma compilação de modelo de Document AI.

  • Criar a função personalizada doc_ai_role.

  • Conceder os privilégios necessários à função doc_ai_role e conceder essa função ao usuário do tutorial.

Preparação de uma compilação de modelo de Document AI

Nesta seção, você preparará uma compilação de modelo de Document AI compilando um modelo e carregando documentos para testar o modelo.

A compilação de modelo de Document AI representa um único tipo de documento. Neste tutorial, você criará uma compilação de modelo para extrair informações de revisões de inspeção. A compilação de modelo de Document AI inclui o modelo, os valores de dados a serem extraídos e os documentos enviados para testar o modelo.

Criação de um compilação de modelo de Document AI

Para criar uma compilação de modelo de Document AI, faça o seguinte:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione AI & ML » Document AI.

  3. Selecione um warehouse.

  4. Selecione + Build.

  5. Na caixa de diálogo que aparece, insira inspection_reviews como nome para sua compilação de modelo e selecione o local (banco de dados doc_ai_db e esquema doc_ai_schema).

  6. Selecione Create.

Carregamento de documentos para a compilação de modelo de Document AI

Para carregar documentos para a recém-criada compilação de modelo de Document AI, faça o seguinte:

  1. Para obter os documentos necessários para o tutorial de teste da compilação de modelo, baixe o arquivo zip em seu sistema de arquivos local.

  2. Descompacte o conteúdo, que inclui documentos PDF.

  3. No compilação de modelo inspection_reviews, selecione a aba Build Details.

  4. Selecione Upload documents.

  5. Selecione Browse ou arraste os documentos que você baixou.

  6. Selecione Upload.

O que você aprendeu nesta seção

Nesta seção você aprendeu a:

  • Crie um compilação de modelo de Document AI.

  • Carregamento de documentos para testar a compilação de modelo de Document AI.

Definição de valores de dados e revisão dos resultados

Nesta seção, você definirá os valores dos dados fazendo perguntas ao modelo de Document AI em linguagem natural. Em seguida, você revisará as respostas fornecidas pelo modelo.

Valores de dados são as informações que você deseja extrair dos documentos. Um valor consiste em um nome de valor e uma pergunta feita em linguagem natural.

Para definir valores para a compilação de modelo de Document AI:

  1. No compilação de modelo inspection_reviews, selecione a aba Build Details.

  2. Selecione Define values.

  3. Na exibição Documents review, selecione + Value:

  4. Para cada documento, insira os seguintes pares de nomes de valores e perguntas:

    • inspection_date: Qual é a data da inspeção?

    • inspection_grade: Qual é a nota?

    • inspector: Quem realizou a inspeção?

    • list_of_units: Quais são todas as unidades?

  5. Para cada documento e valor de dados, revise as respostas que o modelo fornece:

    • Se a resposta estiver correta, selecione a marca de seleção.

    • Se a resposta estiver incorreta, insira o valor correto manualmente.

O que você aprendeu nesta seção

Nesta seção você aprendeu a:

  • Defina valores de dados a serem extraídos fazendo perguntas ao modelo em linguagem natural.

  • Revise os resultados confirmando ou corrigindo as respostas fornecidas pelo modelo.

Publicação de um compilação de modelo de Document AI

Nesta seção, você publicará a compilação de modelo de Document AI para uso na extração em pipelines de processamento. A publicação da compilação de modelo permite usar a versão mais recente da compilação de modelo em produção.

Para publicar a compilação de modelo, faça o seguinte:

  1. No compilação de modelo inspection_reviews, selecione a aba Build Details.

  2. Em Model accuracy, selecione Publish version.

  3. Na caixa de diálogo que aparece, selecione Publish para confirmar.

Nota

Se a precisão do modelo e os resultados não forem satisfatórios, você pode, opcionalmente, ajustar o modelo para melhorá-lo. O ajuste fino não faz parte deste tutorial. Para obter mais informações sobre como avaliar e treinar o modelo, consulte Avaliação de um modelo de Document AI.

O que você aprendeu nesta seção

Nesta seção você publicou a compilação de modelo de Document AI para usar a compilação de modelo para extração em pipelines de processamento.

Crie um pipeline de processamento de documentos

Nesta seção, você criará um pipeline de processamento usando a compilação de modelo de Document AI já preparado, fluxos e tarefas. O pipeline extrairá informações de novos documentos de inspeção armazenados em um estágio interno.

Para criar um pipeline de processamento:

  • Configure o pipeline usando fluxos e tarefas.

  • Carregue novos documentos para um estágio interno.

  • Visualize as informações extraídas.

Configure o pipeline de processamento

  1. Crie uma estágio interno my_pdf_stage para armazenar os documentos:

    CREATE OR REPLACE STAGE my_pdf_stage
      DIRECTORY = (ENABLE = TRUE)
      ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');
    
    Copy
  2. Criação de um fluxo my_pdf_stream em um estágio my_pdf_stage:

    CREATE STREAM my_pdf_stream ON STAGE my_pdf_stage;
    
    Copy
  3. Atualize os metadados da tabela de diretório que armazenarão os arquivos de documento preparados:

    ALTER STAGE my_pdf_stage REFRESH;
    
    Copy
  4. Especifique o banco de dados e esquema:

    USE DATABASE doc_ai_db;
    USE SCHEMA doc_ai_schema;
    
    Copy
  5. Crie um tabela pdf_reviews para armazenar as informações sobre os documentos (como file_name) e os dados a serem extraídos dos documentos PDF:

    CREATE OR REPLACE TABLE pdf_reviews (
      file_name VARCHAR,
      file_size VARIANT,
      last_modified VARCHAR,
      snowflake_file_url VARCHAR,
      json_content VARCHAR
    );
    
    Copy

    A coluna json_content incluirá as informações extraídas no formato JSON.

  6. Crie uma tarefa load_new_file_data para processar novos documentos no estágio:

    CREATE OR REPLACE TASK load_new_file_data
      WAREHOUSE = <your_warehouse>
      SCHEDULE = '1 minute'
      COMMENT = 'Process new files in the stage and insert data into the pdf_reviews table.'
    WHEN SYSTEM$STREAM_HAS_DATA('my_pdf_stream')
    AS
    INSERT INTO pdf_reviews (
      SELECT
        RELATIVE_PATH AS file_name,
        size AS file_size,
        last_modified,
        file_url AS snowflake_file_url,
        inspection_reviews!PREDICT(GET_PRESIGNED_URL('@my_pdf_stage', RELATIVE_PATH), 1) AS json_content
      FROM my_pdf_stream
      WHERE METADATA$ACTION = 'INSERT'
    );
    
    Copy

    Observe que as tarefas recém-criadas são suspensas automaticamente.

  7. Inicie a tarefa recém-criada:

    ALTER TASK load_new_file_data RESUME;
    
    Copy

Nota

O AI de documento não oferece suporte às tarefas sem servidor

Carregamento de novos documentos para um estágio interno

  1. Para obter os documentos necessários para o tutorial, baixe o arquivo zip para seu sistema de arquivos local.

  2. Descompacte o conteúdo, que inclui arquivos PDF.

  3. No Snowsight, selecione Data » Databases.

  4. Selecione o banco de dados doc_ai_db, o doc_ai_schema, e o estágio my_pdf_stage.

  5. Selecione + Files.

  6. Na caixa de diálogo Upload Your Files que aparece, selecione os arquivos que você acabou de baixar.

  7. Selecione Upload.

Visualização das informações extraídas

  1. Após enviar os documentos ao estágio, visualize as informações extraídas dos novos documentos:

    SELECT * FROM pdf_reviews;
    
    Copy
  2. Crie uma tabela pdf_reviews_2 para analisar as informações extraídas em colunas separadas:

    CREATE OR REPLACE TABLE doc_ai_db.doc_ai_schema.pdf_reviews_2 AS (
     WITH temp AS (
       SELECT
         RELATIVE_PATH AS file_name,
         size AS file_size,
         last_modified,
         file_url AS snowflake_file_url,
         inspection_reviews!PREDICT(get_presigned_url('@my_pdf_stage', RELATIVE_PATH), 1) AS json_content
       FROM directory(@my_pdf_stage)
     )
    
     SELECT
       file_name,
       file_size,
       last_modified,
       snowflake_file_url,
       json_content:__documentMetadata.ocrScore::FLOAT AS ocrScore,
       f.value:score::FLOAT AS inspection_date_score,
       f.value:value::STRING AS inspection_date_value,
       g.value:score::FLOAT AS inspection_grade_score,
       g.value:value::STRING AS inspection_grade_value,
       i.value:score::FLOAT AS inspector_score,
       i.value:value::STRING AS inspector_value,
       ARRAY_TO_STRING(ARRAY_AGG(j.value:value::STRING), ', ') AS list_of_units
     FROM temp,
       LATERAL FLATTEN(INPUT => json_content:inspection_date) f,
       LATERAL FLATTEN(INPUT => json_content:inspection_grade) g,
       LATERAL FLATTEN(INPUT => json_content:inspector) i,
       LATERAL FLATTEN(INPUT => json_content:list_of_units) j
     GROUP BY ALL
    );
    
    Copy
  3. Visualize a saída:

    SELECT * FROM pdf_reviews_2;
    
    Copy

A tabela utiliza a função FLATTEN para analisar o json_content JSON em colunas separadas para facilitar a visualização.

A tabela contém os valores de dados (como inspection_grade_value e inspection_date_value) que foram definidos quando a compilação de modelo foi preparada para documentos de inspeção e as pontuações de confiança correspondentes (inspection_grade_score e inspection_date_score).

O que você aprendeu nesta seção

Nesta seção você aprendeu a:

  • Crie um estágio interno para armazenar novos documentos.

  • Crie um fluxo e uma tarefa necessários para preparar um pipeline de processamento.

  • Envio de documentos para um estágio interno.

  • Visualize as informações extraídas em uma tabela.

Saiba mais

Parabéns! Você concluiu com êxito este tutorial. Agora você está pronto para começar a trabalhar com a Document AI em seus próprios casos de uso.

Durante o processo, você aprendeu a:

  • Configure os objetos e privilégios necessários para trabalhar com a Document AI.

  • Crie um compilação de modelo de Document AI.

  • Carregue os documentos para a compilação de modelo de Document AI para testar o modelo.

  • Defina os valores de dados a serem extraídos fazendo perguntas ao modelo em linguagem natural.

  • Revise os resultados confirmando ou corrigindo as respostas fornecidas pelo modelo.

  • Publique a compilação de modelo de Document AI para usar a compilação de modelo para extração em pipelines de processamento.

  • Prepare um pipeline de processamento de documentos criando um fluxo e uma tarefa e usando a compilação de modelo de Document AI para extrair informações de novos documentos.

Recursos adicionais

Continue aprendendo usando os seguintes recursos: