Usar funções de IA (versão prévia)

Aplica-se a:✅ Endpoint de análise de SQL e Armazém de Dados no Microsoft Fabric

Importante

Esse recurso está na versão prévia.

O Fabric Data Warehouse e o endpoint de análise SQL fornecem funções internas de IA que você pode usar para analisar, classificar, resumir e transformar texto diretamente em consultas SQL. Usando essas funções, você pode executar o processamento de texto avançado sem sair do ambiente de dados. Neste tutorial, saiba como usar funções de IA para transformar texto.

Função Propósito Exemplo de sintaxe
AI_ANALYZE_SENTIMENT Detectar o sentimento do texto de entrada AI_ANALYZE_SENTIMENT(<text>)
AI_CLASSIFY Classificar texto com base nos rótulos fornecidos AI_CLASSIFY(<text>, <class1>, <class2>, ...)
AI_EXTRACT Extrair entidades como propriedades JSON AI_EXTRACT(<text>, <class1>, <class2>, ...)
AI_SUMMARIZE Resumir textos AI_SUMMARIZE(<text>)
AI_GENERATE_RESPONSE Gerar resposta com base no prompt AI_GENERATE_RESPONSE(<prompt>, <data>)
AI_TRANSLATE Traduzir texto de entrada para o idioma de destino especificado AI_TRANSLATE(<text>, <lang_code>)
AI_FIX_GRAMMAR Corrigir gramática no texto AI_FIX_GRAMMAR(<text>)

Essas funções chamam APIs de IA externas para processar texto, o que pode afetar o desempenho da consulta. Para otimizar a eficiência, evite aplicar transformações de texto repetitivas em SELECT consultas no mesmo conjunto de dados. Em vez disso, pré-computar e materializar os resultados das funções de IA como colunas separadas ou em tabelas provisórias.

Aviso

As funções retornarão NULL se o modelo de IA não puder processar o texto. Os motivos comuns incluem:

  • As regras de IA responsável bloqueiam conteúdo inadequado no texto de entrada.
  • O texto de entrada excede os limites de token. O modelo atual dá suporte a até 15 KB de texto.

A velocidade de processamento típica das funções de IA é de 20 a 100 linhas por segundo. Se você experimentar desempenho mais lento, relate a consulta problemática como uma questão.

Prerequisites

Verifique os pré-requisitos das funções de IA para obter pré-requisitos adicionais.

Analisar sentimento

A AI_ANALYZE_SENTIMENT(text) função analisa o sentimento da entrada text e retorna um dos seguintes valores: positive, , negative, mixedou neutral.

Exemplo:

SELECT AI_ANALYZE_SENTIMENT('This hotel was great!') AS sentiment;

Resultado esperado:positive

Para obter mais informações, consulte AI_ANALYZE_SENTIMENT (Transact-SQL).

Classificar textos

A AI_CLASSIFY(text, class1, class2, ...) função classifica a entrada text em uma das categorias fornecidas.

Exemplo:

SELECT AI_CLASSIFY('Room was dirty', 'service','dirt','food') AS classification;

Resultado esperado:dirt

Para obter mais informações, consulte AI_CLASSIFY (Transact-SQL).

Extrair entidades do texto

A AI_EXTRACT(text, class1, class2, ...) função extrai entidades da entrada text com base nas classes especificadas.

Exemplo:

SELECT AI_EXTRACT('Check-in was late and room dirty', 'sentiment','problem') AS extraction;

Resultado esperado:{"sentiment":"Negative","problem":"Dirty room"}

Para obter mais informações, consulte AI_EXTRACT (Transact-SQL).

Gerar resposta

A função AI_GENERATE_RESPONSE(prompt, data) gera uma resposta com base em um prompt fornecido e um data opcional.

Exemplo:

SELECT AI_GENERATE_RESPONSE('Reply in 20 words:', 'The room was noisy.') AS response;

Resultado esperado: "Pedimos sinceras desculpas pelo inconveniente causado pelo barulho e estamos comprometidos em melhorar nossas medidas à prova de som."

Para obter mais informações, consulte AI_GENERATE_RESPONSE (Transact-SQL).

Resumir textos

A AI_SUMMARIZE(text) função resume a entrada text em uma versão concisa.

Exemplo:

SELECT AI_SUMMARIZE('The hotel was clean and staff were friendly.') AS summary;

Resultado esperado: "Hotel limpo, pessoal amigável."

Para obter mais informações, consulte AI_SUMMARIZE (Transact-SQL).

Traduzir o texto

A função AI_TRANSLATE(text, lang_code) traduz text para o idioma especificado usando lang_code.

Os códigos de idioma com suporte são de (alemão), en (inglês), fr (francês), it (italiano), es (espanhol), el (grego), pl (polonês), sv (sueco), fi (finlandês) e cs (tcheco).

Exemplo:

SELECT AI_TRANSLATE('The hotel was great','de') AS translation_de;

Resultado esperado: "Das Hotel war großartig."

Para obter mais informações, consulte AI_TRANSLATE (Transact-SQL).

Corrigir gramática

A AI_FIX_GRAMMAR(text) função corrige a gramática na entrada text.

Exemplo:

SELECT AI_FIX_GRAMMAR('Th room are clean and staff were nice') AS fixed_text;

Resultado esperado: "Os quartos estão limpos, e os funcionários foram legais."

Para obter mais informações, consulte AI_FIX_GRAMMAR (Transact-SQL).

Tratamento de erros

As funções de IA retornam NULL quando ocorre um erro durante o processamento de texto. Erros podem ser causados por verificações de segurança da IA responsável que detectam conteúdo não permitido, entrada que ultrapassa os limites de tokens, problemas de serviço transitório ou outras falhas de processamento.

Por padrão, as funções de IA usam um modelo de execução de melhor esforço e retornam NULL para solicitações falhadas. Esse comportamento foi projetado para evitar que erros que afetam linhas individuais falhem em uma consulta inteira. Ao processar milhares de linhas por meio de um grande modelo de linguagem (LLM) externo, uma falha em um único valor não deve impedir que resultados bem-sucedidos sejam retornados para as linhas restantes. Esse comportamento também garante que as solicitações processadas com sucesso não sejam perdidas e não precisem ser repetidas.

Inspecione as linhas que retornaram NULL, determine o motivo da falha e tente novamente apenas esses valores específicos.

Você pode sobrescrever o comportamento padrão especificando uma ON ERROR cláusula em cada chamada de função:

  • NULL ON ERROR (padrão) retorna NULL quando a função não consegue processar um valor.
  • ERROR ON ERROR faz com que toda a consulta falhe se ocorrer um erro em qualquer chamada de função.
  • DEFAULT <value> ON ERROR retorna o valor padrão especificado em vez de NULL quando ocorre um erro.

O exemplo a seguir demonstra as opções disponíveis para lidar com erros:

SELECT
    *,
    AI_FIX_GRAMMAR(review_text NULL ON ERROR) AS fixed_text,
    AI_EXTRACT(review_text, 'sentiment', 'problem' ERROR ON ERROR) AS info*
    AI_CLASSIFY(review_text, 'service', 'dirt', 'food' DEFAULT 'Other' ON ERROR) AS classification
FROM hotel_reviews;

Neste exemplo:

  • AI_FIX_GRAMMAR retorna NULL valores que não consegue processar. Como retornar NULL é o comportamento padrão de tratamento de erros, a NULL ON ERROR cláusula é opcional.
  • AI_EXTRACT falha toda a consulta se alguma célula encontrar um erro.
  • AI_CLASSIFY retorna Other para as células que ele não consegue classificar.

Remarks

As funções de IA podem retornar erros ou experimentar um desempenho mais lento do que o esperado por vários motivos:

  • Verifique se você atende a todos os pré-requisitos necessários antes de usar funções de IA. Se um pré-requisito estiver ausente, a função retornará um erro.
  • Se o texto de entrada não puder ser processado - por exemplo, porque ele excede os limites de token, contém conteúdo restrito ou ofensivo ou viola as políticas de serviço - a função retorna NULL. Sempre verifique se o valor retornado é NULL e manipule esse caso adequadamente em suas consultas, aplicativos ou pipelines de processamento de dados.
  • O desempenho depende do tamanho da entrada, da complexidade de entrada e da carga geral do serviço. Os valores de texto individuais normalmente são processados em alguns segundos, enquanto lotes maiores podem obter uma taxa de transferência de aproximadamente 10 a 30 valores de texto por segundo. Se você experimentar consistentemente um desempenho mais lento do que o esperado, pode haver um problema de serviço ou configuração que afeta a taxa de transferência de processamento.

Se você encontrar um problema com funções de IA em Fabric Data Warehouse ou em um endpoint de análise SQL:

Exemplos

A. Importar dados e transformar coluna de texto usando funções de IA

Este exemplo carrega dados de um arquivo Lakehouse na tabela hotel_reviews do armazém. Ele seleciona em um arquivo na /Files seção e aplica as funções de IA para enriquecer os dados:

CREATE TABLE HotelDW.dbo.hotel_reviews
AS
SELECT
    city, latitude, longitude, name, reviews_rating, reviews_text,
    AI_SUMMARIZE(reviews_text) AS reviews_summary,
    AI_CLASSIFY( reviews_text, 'service', 'dirt', 'food', 'air conditioning', 'other') AS reviews_classification,
    AI_ANALYZE_SENTIMENT(reviews_text) AS reviews_sentiment,
    AI_TRANSLATE(reviews_text, 'de') AS reviews_text_de,
    AI_TRANSLATE(reviews_text, 'es') AS reviews_text_es,
    AI_TRANSLATE(reviews_text, 'fr') AS reviews_text_fr,
    AI_TRANSLATE(reviews_text, 'it') AS reviews_text_it
FROM OPENROWSET( BULK '/Files/csv/hotel_reviews_demo.csv', DATA_SOURCE = 'TextLakehouse', HEADER_ROW = TRUE);

B. Atualizar coluna de texto usando a função de IA

reviews_text O exemplo seguinte corrige os erros de gramática na coluna:

UPDATE HotelDW.dbo.hotel_reviews
SET reviews_text = ISNULL(AI_FIX_GRAMMAR(reviews_text), reviews_text);

As funções de IA poderão retornar NULL se ocorrer um erro, portanto, evite substituir valores existentes com NULL.

Use o ISNULL(<ai function>, <original value>) padrão para preservar o texto original quando as funções de IA não puderem retornar resultados.

C. Extrair valores do texto

Neste exemplo, a AI_EXTRACT função analisa o texto de revisão e retorna um objeto JSON que contém as propriedades sentimente time_reportedproblem. A função OPENJSON então analisa esse JSON e mapeia essas propriedades em colunas separadas, facilitando a consulta e análise.

Esse script de exemplo insere os valores extraídos como colunas separadas na tabela de destino.

INSERT INTO gold.hotel_reviews
SELECT sentiment, time_reported, problem
FROM hotel_reviews
CROSS APPLY 
OPENJSON(
    AI_EXTRACT(reviews_text, 'sentiment', 'time_reported', 'problem')
) WITH ( sentiment VARCHAR(1000), time_reported VARCHAR(100), problem VARCHAR(1000) );

A AI_EXTRACT função aplica regras contextuais difusas para identificar e extrair tópicos do texto sem exigir análise manual ou expressões regulares complexas. Essa abordagem simplifica a análise de texto usando a compreensão semântica orientada por IA em vez de uma correspondência de padrões rígida, tornando-a mais robusta e adaptável às variações de linguagem natural.