Bruk AI-funksjoner (forhåndsvisning)

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

Viktig!

Denne funksjonen er i forhåndsversjon.

Fabric datalager og SQL-analyse-endpoint tilbyr innebygde AI-funksjoner som du kan bruke til å analysere, klassifisere, oppsummere og transformere tekst direkte i SQL-spørringer. Ved å bruke disse funksjonene kan du utføre avansert tekstbehandling uten å forlate datamiljøet ditt. I denne veiledningen lærer du hvordan du bruker AI-funksjoner for å transformere tekst.

Funksjon Formål Syntakseksempel
AI_ANALYZE_SENTIMENT Oppdag sentiment i inndatateksten AI_ANALYZE_SENTIMENT(<text>)
AI_CLASSIFY Klassifiser tekst basert på oppgitte etiketter AI_CLASSIFY(<text>, <class1>, <class2>, ...)
AI_EXTRACT Trekk ut enheter som JSON-egenskaper AI_EXTRACT(<text>, <class1>, <class2>, ...)
AI_SUMMARIZE Oppsummer tekst AI_SUMMARIZE(<text>)
AI_GENERATE_RESPONSE Generer svar basert på prompt AI_GENERATE_RESPONSE(<prompt>, <data>)
AI_TRANSLATE Oversett inndatatekst til det angitte målspråket AI_TRANSLATE(<text>, <lang_code>)
AI_FIX_GRAMMAR Korriger grammatikk i teksten AI_FIX_GRAMMAR(<text>)

Disse funksjonene kaller eksterne AI-API-er for å behandle tekst, noe som kan påvirke spørringsytelsen. For å optimalisere effektiviteten, unngå å bruke repeterende teksttransformasjoner i SELECT spørringer på samme datasett. I stedet, forhåndsberegne og materialisere resultatene av AI-funksjoner som separate kolonner eller i staging-tabeller.

Advarsel!

Funksjonene returneres NULL hvis AI-modellen ikke kan behandle teksten. Vanlige grunner inkluderer:

  • Ansvarlige AI-regler blokkerer upassende innhold i inndatateksten.
  • Inndatateksten overskrider tokengrensene. Den nåværende modellen støtter opptil 15 KB tekst.

Typisk prosesseringshastighet for AI-funksjoner er 20–100 rader per sekund. Hvis du opplever tregere ytelse, rapporter den problematiske søken som et spørsmål.

Forutsetninger

Sjekk AI-funksjonens forutsetninger for flere forutsetninger.

Analyser sentiment

Funksjonen AI_ANALYZE_SENTIMENT(text) analyserer sentiment fra inputen text og returnerer en av følgende verdier: positive, negative, , mixedeller neutral.

Eksempel:

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

Forventet resultat:positive

For mer informasjon, se AI_ANALYZE_SENTIMENT (Transact-SQL).

Klassifisere tekst

Funksjonen AI_CLASSIFY(text, class1, class2, ...) klassifiserer inputen text i en av de oppgitte kategoriene.

Eksempel:

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

Forventet resultat:dirt

For mer informasjon, se AI_CLASSIFY (Transact-SQL).

Trekk ut entiteter fra tekst

Funksjonen AI_EXTRACT(text, class1, class2, ...) trekker ut enheter fra input text basert på de spesifiserte klassene.

Eksempel:

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

Forventet resultat:{"sentiment":"Negative","problem":"Dirty room"}

For mer informasjon, se AI_EXTRACT (Transact-SQL).

Generer respons

Funksjonen AI_GENERATE_RESPONSE(prompt, data) genererer et svar basert på en gitt prompt og valgfri data.

Eksempel:

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

Forventet resultat: 'Vi beklager oppriktig ulempen støyen har forårsaket, og er forpliktet til å forbedre våre lydisoleringstiltak.'

For mer informasjon, se AI_GENERATE_RESPONSE (Transact-SQL).

Oppsummer tekst

Funksjonen AI_SUMMARIZE(text) oppsummerer inputen text i en konsis versjon.

Eksempel:

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

Forventet resultat: 'Rent hotell, vennlig personale.'

For mer informasjon, se AI_SUMMARIZE (Transact-SQL).

Oversette tekst

Funksjonen AI_TRANSLATE(text, lang_code) oversettes text til det angitte språket ved hjelp av lang_code.

Støttede språkkoder er de (tysk), en (engelsk), fr (fransk), it (italiensk), (spansk), esel (gresk), pl (polsk), sv (svensk), fi (finsk) og cs (tsjekkisk).

Eksempel:

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

Forventet resultat: 'Das Hotel war großartig.'

For mer informasjon, se AI_TRANSLATE (Transact-SQL).

Korriger grammatikk

Funksjonen AI_FIX_GRAMMAR(text) korrigerer grammatikk i inngangen text.

Eksempel:

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

Forventet resultat: 'Rommene er rene, og personalet var hyggelig.'

For mer informasjon, se AI_FIX_GRAMMAR (Transact-SQL).

Håndtere feil

AI-funksjoner returnerer NULL når en feil oppstår under tekstbehandling. Feil kan skyldes at Responsible AI-sikkerhetssjekker oppdager forbudt innhold, inndata som overskrider tokengrenser, transient-tjenesteproblemer eller andre behandlingsfeil.

Som standard bruker AI-funksjoner en best-effort utførelsesmodell og returnerer NULL ved mislykkede forespørsler. Denne oppførselen er designet for å forhindre at feil som påvirker enkeltrader får en hel spørring til å feile. Når man behandler tusenvis av rader gjennom en ekstern stor språkmodell (LLM), bør en feil på én verdi ikke hindre at vellykkede resultater returneres for de gjenværende radene. Denne oppførselen sikrer også at velbehandlede forespørsler ikke går tapt og ikke trenger å gjentas.

Inspiser rader som returnerte NULL, finn årsaken til feilen, og prøv kun de spesifikke verdiene på nytt.

Du kan overstyre standardoppførselen ved å spesifisere en ON ERROR klausul i hvert funksjonskall:

  • NULL ON ERROR (default) returnerer NULL når funksjonen ikke kan behandle en verdi.
  • ERROR ON ERROR får hele spørringen til å feile hvis en feil oppstår i et funksjonskall.
  • DEFAULT <value> ON ERROR returnerer den angitte standardverdien i stedet for NULL når en feil oppstår.

Følgende eksempel demonstrerer de tilgjengelige feilbehandlingsmulighetene:

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;

I dette eksemplet:

  • AI_FIX_GRAMMAR Returnerer NULL verdier som den ikke kan behandle. Siden returnering NULL er standard feilhåndteringsatferd, er klausulen NULL ON ERROR valgfri.
  • AI_EXTRACT hele spørringen feiler hvis en celle får en feil.
  • AI_CLASSIFY Avkastning Other for celler den ikke kan klassifisere.

Merknader

AI-funksjoner kan returnere feil eller oppleve lavere ytelse enn forventet av flere grunner:

  • Sørg for at du oppfyller alle nødvendige forutsetninger før du bruker AI-funksjoner. Hvis en forutsetning mangler, returnerer funksjonen en feil.
  • Hvis inndatateksten ikke kan behandles – for eksempel fordi den overskrider tokengrenser, inneholder begrenset eller støtende innhold, eller på annen måte bryter tjenestepolicyer – returnerer NULLfunksjonen . Sjekk alltid om returverdien er riktig NULL og håndter dette tilfellet riktig i dine spørringer, applikasjoner eller databehandlingspipelines.
  • Ytelsen avhenger av inputstørrelse, inputkompleksitet og total tjenestebelastning. Individuelle tekstverdier behandles vanligvis i løpet av noen sekunder, mens større partier kan oppnå en gjennomstrømning på omtrent 10–30 tekstverdier per sekund. Hvis du konsekvent opplever lavere ytelse enn forventet, kan det være et tjeneste- eller konfigurasjonsproblem som påvirker prosesseringsgjennomstrømningen.

Hvis du støter på et problem med AI-funksjoner i Fabric datalager eller et SQL-analyseendepunkt:

Eksempler

A. Importer data og transformér tekstkolonnen ved hjelp av AI-funksjoner

Dette eksempelet laster data fra en Lakehouse-fil inn i hotel_reviews tabellen i lageret. Den velger fra en fil i seksjonen /Files , og anvender deretter AI-funksjonene for å berike dataene:

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. Oppdater tekstkolonnen ved hjelp av AI-funksjonen

Følgende eksempel retter grammatikkfeilene i kolonnen reviews_text :

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

AI-funksjonene kan returnere NULL hvis en feil oppstår, så unngå å overskrive eksisterende verdier med NULL.

Bruk mønsteret ISNULL(<ai function>, <original value>) for å bevare originalteksten når AI-funksjoner ikke kan returnere resultater.

C. Trekk ut verdier fra tekst

I dette eksempelet AI_EXTRACT analyserer funksjonen gjennomgangsteksten og returnerer et JSON-objekt som inneholder egenskapene sentiment, time_reported, og problem. Funksjonen OPENJSON parser deretter denne JSON-en og mapper disse egenskapene til separate kolonner for enkel spørring og analyse.

Dette eksempelskriptet setter inn de uttrukne verdiene som separate kolonner i måltabellen.

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) );

Funksjonen AI_EXTRACT anvender uklare kontekstuelle regler for å identifisere og trekke ut temaer fra tekst uten å kreve manuell parsing eller komplekse regulære uttrykk. Denne tilnærmingen forenkler tekstanalyse ved å bruke AI-drevet semantisk forståelse i stedet for rigid mønstergjenkjenning, noe som gjør den mer robust og tilpasningsdyktig til naturlige språkvariasjoner.