Usar funções de IA (pré-visualização)

Aplica-se a:✅ endpoint de análise SQL e armazém de dados no Microsoft Fabric

Importante

Este recurso está em pré-visualização.

O Fabric Data Warehouse e o endpoint de análise SQL fornecem funções de IA integradas que pode usar para analisar, classificar, resumir e transformar texto diretamente dentro de consultas SQL. Ao utilizar estas funções, pode realizar processamento avançado de texto sem sair do seu ambiente de dados. Neste tutorial, aprenda a usar funções de IA para transformar texto.

Função Purpose Exemplo de Sintaxe
AI_ANALYZE_SENTIMENT Detetar sentimento do texto de entrada AI_ANALYZE_SENTIMENT(<text>)
AI_CLASSIFY Classificar texto com base nas etiquetas fornecidas AI_CLASSIFY(<text>, <class1>, <class2>, ...)
AI_EXTRACT Extrair entidades como propriedades JSON AI_EXTRACT(<text>, <class1>, <class2>, ...)
AI_SUMMARIZE Resumir texto AI_SUMMARIZE(<text>)
AI_GENERATE_RESPONSE Gerar resposta com base no prompt AI_GENERATE_RESPONSE(<prompt>, <data>)
AI_TRANSLATE Traduzir o texto de entrada para a língua de destino especificada AI_TRANSLATE(<text>, <lang_code>)
AI_FIX_GRAMMAR Corrigir a gramática no texto AI_FIX_GRAMMAR(<text>)

Estas 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 repetitivas de texto dentro SELECT de consultas no mesmo conjunto de dados. Em vez disso, pré-calcule e materialize os resultados das funções de IA como colunas separadas ou em tabelas de staging.

Advertência

As funções retornam NULL se o modelo de IA não conseguir processar o texto. Motivos comuns:

  • As regras de IA responsável bloqueiam conteúdos inadequados no texto de entrada.
  • O texto de entrada ultrapassa os limites de tokens. O modelo atual suporta até 15 KB de texto.

A velocidade típica de processamento das funções de IA é de 20 a 100 linhas por segundo. Se tiver um desempenho mais lento, reporte a consulta problemática como um problema.

Prerequisites

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

Analise o sentimento

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

Exemplo:

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

Resultado esperado:positive

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

Classificar texto

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

Exemplo:

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

Resultado esperado:dirt

Para 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 mais informações, consulte AI_EXTRACT (Transact-SQL).

Gerar resposta

A AI_GENERATE_RESPONSE(prompt, data) função gera uma resposta baseada num dado prompt e opcional data.

Exemplo:

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

Resultado esperado: 'Pedimos sinceras desculpas pelo incómodo causado pelo barulho e estamos comprometidos em reforçar as nossas medidas de isolamento acústico.'

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

Resumir texto

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

Exemplo:

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

Resultado esperado: 'Hotel limpo, pessoal simpático.'

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

Traduzir texto

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

Os códigos linguísticos suportados são de (alemão), en (inglês), fr (francês), it italiano ( es espanhol), el (grego), pl (polaco), sv (sueco), fi finlandês e cs (checo).

Exemplo:

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

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

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

Corrigir a 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 o pessoal foi simpático.'

Para 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. Os erros podem ser causados por verificações de segurança da IA responsável que detetam conteúdos não permitidos, entradas que excedem os limites dos tokens, problemas de serviço transitórios ou outras falhas de processamento.

Por defeito, as funções de IA utilizam um modelo de execução de melhor esforço e retornam NULL para pedidos falhados. Este comportamento foi concebido para evitar que erros que afetam linhas individuais falhem uma consulta inteira. Ao processar milhares de linhas através de um grande modelo de linguagem (LLM) externo, uma falha num único valor não deve impedir que resultados bem-sucedidos sejam devolvidos para as linhas restantes. Este comportamento também garante que os pedidos processados com sucesso não se percam nem precisam de ser repetidos.

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

Pode substituir o comportamento predefinido especificando a cláusula ON ERROR 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 devolve o valor padrão especificado em vez de NULL quando ocorre um erro.

O exemplo seguinte demonstra as opções disponíveis para o tratamento de 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 o retorno 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 células que não consegue classificar.

Remarks

As funções de IA podem devolver erros ou apresentar desempenho mais lento do que o esperado por várias razões:

  • Certifique-se de que cumpre todos os pré-requisitos necessários antes de usar funções de IA. Se faltar um pré-requisito, a função devolve um erro.
  • Se o texto de entrada não puder ser processado – por exemplo, porque ultrapassa os limites de tokens, contém conteúdo restrito ou ofensivo, ou viola de outra forma políticas de serviço – a função devolve NULL. Verifique sempre se o valor de retorno é NULL válido e trate este caso de forma adequada nas suas consultas, aplicações ou pipelines de processamento de dados.
  • O desempenho depende do tamanho da entrada, da complexidade da entrada e da carga global do serviço. Os valores de texto individuais são normalmente processados em poucos segundos, enquanto lotes maiores podem atingir uma taxa de processamento de aproximadamente 10–30 valores de texto por segundo. Se tiver, de forma consistente, um desempenho mais lento do que o esperado, poderá haver um problema no serviço ou na configuração a afetar a capacidade de processamento.

Se encontrares um problema com funções de IA no Fabric Data Warehouse ou num endpoint de análise SQL:

Exemplos

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

Esta amostra carrega dados de um ficheiro Lakehouse para a tabela hotel_reviews do armazém. Seleciona a partir de um ficheiro na /Files secção e depois 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

O exemplo seguinte corrige os erros gramaticais na reviews_text coluna:

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

As funções de IA podem devolver NULL se ocorrer um erro, por isso evite sobrescrever valores existentes por NULL.

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

C. Extrair valores do texto

Neste exemplo, a AI_EXTRACT função analisa o texto de revisão e devolve um objeto JSON contendo as propriedades sentiment, time_reported, e problem. A OPENJSON função então analisa este JSON e mapeia estas propriedades em colunas separadas para facilitar a consulta e análise.

Este 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 necessidade de análise manual ou expressões regulares complexas. Esta abordagem simplifica a análise de texto ao utilizar a compreensão semântica impulsionada por IA em vez de correspondência rígida de padrões, tornando-a mais robusta e adaptável a variações da linguagem natural.