<model_build_name> !PREDICT

Extrai informações de documentos em um estágio e fornece respostas em um objeto JSON. Se você especificar um único documento, o método retornará resultados para esse documento. Caso contrário, o método retorna resultados para cada documento no estágio.

Sintaxe

<model_build_name>!PREDICT(<presigned_url>,
                           [ <model_build_version> ]
                          )
Copy

Argumentos

Obrigatório:

presigned_url

URL pré-assinado dos documentos preparados.

Para obter o URL pré-assinado para passar como argumento, chame a função GET_PRESIGNED_URL. Consulte GET_PRESIGNED_URL.

Para obter mais informações, consulte Exemplo.

Nota

A função GET_PRESIGNED_URL tem um tempo de expiração padrão (60 minutos). Para obter mais informações sobre como estender o prazo de expiração, consulte GET_PRESIGNED_URL.

Opcional:

model_build_version

Versão do modelo Document AI.

Se não for especificado, a versão mais recente do modelo disponível será usada por padrão.

Retornos

Retorna um objeto JSON com os seguintes campos:

ocrScore

Especifica a pontuação de confiança para o processo de reconhecimento óptico de caracteres (OCR).

score

Especifica a pontuação de confiança para um valor específico.

value

Especifica a resposta extraída para a pergunta.

Extração de entidades

{
  "__documentMetadata": {
    "ocrScore": 0.918
  },
  "invoice_number": [
    {
      "score": 0.925,
      "value": "123/20"
    }
  ],
  "invoice_items": [
    {
      "score": 0.839,
      "value": "NEW CRUSHED VELVET DIVAN BED"
    },
    {
      "score": 0.839,
      "value": "Vintage Radiator"
    },
    {
      "score": 0.839,
      "value": "Solid Wooden Worktop"
    },
    {
      "score": 0.839,
      "value": "Sienna Crushed Velvet Curtains"
    }
  ],
  "tax_amount": [
    {
      "score": 0.879,
      "value": "77.57"
    }
  ],
  "total_amount": [
    {
      "score": 0.809,
      "value": "465.43 GBP"
    }
  ],
  "buyer_name": [
    {
      "score": 0.925
    }
  ]
  "vendor_name": [
    {
      "score": 0.9,
      "value": "UK Exports & Imports Ltd"
    }
  ]
}
Copy

Extração de tabelas

{
  "__documentMetadata": {
    "ocrScore": 0.887
  },
  "table1|gross": [
    {
      "score": 0.961,
      "value": "10"
    },
    {
      "score": 0.961,
      "value": "31"
    },
    {
      "score": 0.961,
      "value": "10"
    }
  ],
  "table1|item": [
    {
      "score": 0.961,
      "value": "apples"
    },
    {
      "score": 0.961,
      "value": "bananas"
    },
    {
      "score": 0.961,
      "value": "pears"
    }
  ],
  "table1|net": [
    {
      "score": 0.961,
      "value": "9"
    },
    {
      "score": 0.961,
      "value": "30"
    },
    {
      "score": 0.961,
      "value": "10"
    }
  ],
  "table1|tax": [
    {
      "score": 0.961,
      "value": "1"
    },
    {
      "score": 0.961,
      "value": "1"
    },
    {
      "score": 0.961
    }
  ],
  "table2|age": [
    {
      "score": 0.894,
      "value": "23"
    },
    {
      "score": 0.894,
      "value": "56"
    },
    {
      "score": 0.894,
      "value": "76"
    },
    {
      "score": 0.894,
      "value": "98"
    }
  ],
"table2|date": [
    {
      "score": 0.894
    },
    {
      "score": 0.894
    },
    {
      "score": 0.894
    },
    {
      "score": 0.894
    }
  ],
"table2|name": [
    {
      "score": 0.894,
      "value": "John"
    },
    {
      "score": 0.894,
      "value": "Ana"
    },
    {
      "score": 0.894,
      "value": "Lisa"
    },
    {
      "score": 0.894,
      "value": "Jerome"
    }
  ],
  "table2|surname": [
    {
      "score": 0.894,
      "value": "Smith"
    },
    {
      "score": 0.894,
      "value": "Nixon"
    },
    {
      "score": 0.894,
      "value": "Gonzales"
    },
    {
      "score": 0.894,
      "value": "Tate"
    }
  ],
"table3|column1": [
    {
      "score": 0.855
    }
  ],
  "table3|column2": [
    {
      "score": 0.855
    }
  ],
  "table3|column3": [
    {
      "score": 0.855
    }
  ]
}
Copy

Requisitos de controle de acesso

Para extrair informações com Document AI, você deve usar uma função de conta que tenha a função de banco de dados SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR. Para obter mais informações, consulte Controle de acesso da Document AI.

Notas de uso

  • Certifique-se de atender aos pré-requisitos para usar este método. Para obter mais informações, consulte Pré-requisitos.

  • Document AI tem uma limite para o número de documentos processados em uma consulta. Para obter mais informações, consulte Limitações conhecidas da Document AI.

  • Todos os documentos devem estar no mesmo diretório do estágio.

  • Document AI usa tabelas de diretório. Para obter mais informações, consulte Consulta de tabelas de diretório.

  • O modelo Document AI pode retornar listas. Veja o campo invoice_items como exemplo.

  • Se o modelo Document AI não encontrar uma resposta no documento, o modelo não retornará uma chave value. No entanto, ele retorna a chave score, que indica o quão confiante o modelo está de que o documento não contém a resposta. Veja o campo buyer_name como exemplo.

  • Na extração de tabelas, se uma célula estiver vazia, o modelo Document AI não retornará uma chave value. No entanto, ele retorna a chave score, que indica o grau de confiança do modelo de que a célula está vazia. Por exemplo, table1 contém uma célula vazia na coluna age, table2 contém uma coluna completamente vazia date e table3 é uma tabela vazia que consiste apenas de cabeçalhos.

  • Na extração de tabelas, os valores na saída do JSON são fornecidos na mesma ordem das linhas da tabela, de modo que as colunas podem ser facilmente unidas.

Exemplo

O exemplo a seguir extrai informações de todos os documentos no estágio pdf_inspections_stage para versão 1 da versão do modelo inspections:

SELECT inspections!PREDICT(
  GET_PRESIGNED_URL(@pdf_inspections_stage, RELATIVE_PATH), 1)
  FROM DIRECTORY(@pdf_inspections_stage);
Copy

O exemplo a seguir extrai informações do documento 'paystubs/paystub01.pdf' no estágio pdf_paystubs_stage para versão 1 da versão do modelo paystubs:

SELECT paystubs!PREDICT(
  GET_PRESIGNED_URL(@pdf_paystubs_stage, 'paystubs/paystub01.pdf'), 1);
Copy