Categorias:

Funções de cadeia de caracteres e binários (funções de AI)

AI_EXTRACT

Extrai informações de uma string ou arquivo de entrada.

Sintaxe

Extrair informações de uma string de entrada:

AI_EXTRACT( <text>, <responseFormat> )
Copy
AI_EXTRACT( text => <text>,
            responseFormat => <responseFormat> )
Copy

Extrair informações de um arquivo:

AI_EXTRACT( <file>, <responseFormat> )
Copy
AI_EXTRACT( file => <file>,
            responseFormat => <responseFormat> )
Copy

Argumentos

text

Uma string de entrada para extração.

file

Um FILE para extração.

Formatos de arquivo compatíveis:

  • PDF

  • PNG

  • PPTX

  • EML

  • DOC, DOCX

  • JPEG, JPG

  • HTM, HTML

  • TEXT, TXT

  • TIF, TIFF

Os arquivos devem ter menos de 100 MB de tamanho.

responseFormat

Informações a serem extraídas em um dos seguintes formatos de resposta:

  • Esquema de objeto simples que mapeia o nome do recurso e as informações a serem extraídas, por exemplo:

    {'name': 'What is the last name of the employee?', 'address': 'What is the address of the employee?'}
    
  • Uma matriz de strings com as informações a serem extraídas, por exemplo:

    ['What is the last name of the employee?', 'What is the address of the employee?']
    
  • Uma matriz de matrizes que contém duas strings (nome do recurso e as informações a serem extraídas), por exemplo:

    [['name', 'What is the last name of the employee?'], ['address', 'What is the address of the employee?']]
    
  • Uma matriz de strings com o nome do recurso e as informações a serem extraídas, separadas por dois pontos (“:”), por exemplo:

    ['name: What is the last name of the employee?', 'address: What is the address of the employee?']
    

Nota

Você pode fazer perguntas em linguagem natural ou descrever informações a serem extraídas (como cidade, endereço, código ZIP), por exemplo:

['address': 'City, street, ZIP', 'name': 'First and last name']

Retornos

Um objeto JSON contendo as informações extraídas.

Requisitos de controle de acesso

Os usuários devem usar uma função que tenha a função do banco de dados SNOWFLAKE.CORTEX_USER. Para obter mais informações sobre como conceder esse privilégio, consulte Privilégios obrigatórios.

Notas de uso

  • Os seguintes idiomas são compatíveis:

    • Árabe

    • Bengali

    • Birmanês

    • Cebuano

    • Chinês

    • Tcheco

    • Holandês

    • Inglês

    • Francês

    • Alemão

    • Hebraico

    • Hindi

    • Indonésio

    • Italiano

    • Japonês

    • Quemer

    • Coreano

    • Lao

    • Malaio

    • Persa

    • Polonês

    • Português

    • Russo

    • Espanhol

    • Tagalo

    • Tailandês

    • Turco

    • Urdu

    • Vietnamita

  • Os documentos não devem ter mais de 125 páginas.

  • O número máximo de recursos que podem ser extraídos é 100.

  • O comprimento máximo de saída é de 512 tokens por pergunta.

  • Para extrair uma lista, adicione List: no início de cada pergunta. Por exemplo:

    [['languages', 'List: What languages are supported for AI_EXTRACT?']]
    
  • Não é possível usar dois pontos (“:”) dentro de um nome de recurso ao usar o formato de resposta que usa dois pontos para separar o nome do recurso e as informações a serem extraídas, por exemplo:

    ['location: Where does the employee live?', 'name:employee: What is the first name of the employee?']
    
  • Não há suporte para pontuações de confiança.

Exemplos

Este exemplo extrai informações do texto de entrada:

SELECT AI_EXTRACT(
 text => 'John Smith lives in San Francisco and works for Snowflake',
 responseFormat => {'name': 'What is the first name of the employee?', 'city': 'What is the address of the employee?'}
);
Copy

Este exemplo extrai e analisa informações do texto de entrada:

SELECT AI_EXTRACT(
 text => 'John Smith lives in San Francisco and works for Snowflake',
 responseFormat => PARSE_JSON('{"name": "What is the first name of the employee?", "address": "What is the address of the employee?"}')
);
Copy

Este exemplo extrai informações do arquivo document.pdf:

SELECT AI_EXTRACT(
  file => TO_FILE('@db.schema.files','document.pdf'),
  responseFormat => [['name', 'What is the first name of the employee?'], ['city', 'Where does the employee live?']]
);
Copy

Este exemplo extrai informações de todos os arquivos em um estágio:

SELECT AI_EXTRACT(
  file => TO_FILE('@db.schema.files', relative_path),
  responseFormat => [
    'What is this document?',
    'How would you classify this document?'
  ]
) FROM DIRECTORY (@db.schema.files);
Copy