AI-functies gebruiken (preview)

Van toepassing op:✅ SQL Analytics-eindpunt en -magazijn in Microsoft Fabric

Belangrijk

Deze functie is beschikbaar als preview-versie.

Fabric Data Warehouse en SQL Analytics-eindpunt bieden ingebouwde AI-functies die u kunt gebruiken om tekst rechtstreeks in SQL-query's te analyseren, classificeren, samenvatten en transformeren. Met deze functies kunt u geavanceerde tekstverwerking uitvoeren zonder uw gegevensomgeving te verlaten. In deze zelfstudie leert u hoe u AI-functies gebruikt om tekst te transformeren.

Function Purpose Voorbeeld van syntaxis
AI_ANALYZE_SENTIMENT Gevoel van invoertekst detecteren AI_ANALYZE_SENTIMENT(<text>)
AI_CLASSIFY Tekst classificeren op basis van opgegeven labels AI_CLASSIFY(<text>, <class1>, <class2>, ...)
AI_EXTRACT Entiteiten extraheren als JSON-eigenschappen AI_EXTRACT(<text>, <class1>, <class2>, ...)
AI_SUMMARIZE Tekst samenvatten AI_SUMMARIZE(<text>)
AI_GENERATE_RESPONSE Antwoord genereren op basis van prompt AI_GENERATE_RESPONSE(<prompt>, <data>)
AI_TRANSLATE Invoertekst vertalen naar de opgegeven doeltaal AI_TRANSLATE(<text>, <lang_code>)
AI_FIX_GRAMMAR Grammatica in de tekst herstellen AI_FIX_GRAMMAR(<text>)

Deze functies roepen externe AI-API's aan om tekst te verwerken, wat van invloed kan zijn op de queryprestaties. Om de efficiëntie te optimaliseren, vermijdt u het toepassen van terugkerende teksttransformaties binnen SELECT query's op dezelfde gegevensset. In plaats daarvan kunt u de resultaten van AI-functies vooraf compileren en materialiseren als afzonderlijke kolommen of in faseringstabellen.

Waarschuwing

De functies retourneren NULL als het AI-model de tekst niet kan verwerken. Veelvoorkomende redenen zijn onder meer:

  • Verantwoordelijke AI-regels blokkeren ongepaste inhoud in de invoertekst.
  • Invoertekst overschrijdt tokenlimieten. Het huidige model ondersteunt maximaal 15 kB tekst.

Typische verwerkingssnelheid van AI-functies is 20-100 rijen per seconde. Als u tragere prestaties ondervindt, meldt u de problematische query als een probleem.

Prerequisites

Controleer de vereisten voor AI-functies op aanvullende vereisten.

Sentiment analyseren

De AI_ANALYZE_SENTIMENT(text) functie analyseert het gevoel van de invoer text en retourneert een van de volgende waarden: positive, negative, mixedof neutral.

Voorbeeld:

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

Verwacht resultaat:positive

Zie AI_ANALYZE_SENTIMENT (Transact-SQL)voor meer informatie.

Tekst classificeren

De AI_CLASSIFY(text, class1, class2, ...) functie classificeert de invoer text in een van de opgegeven categorieën.

Voorbeeld:

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

Verwacht resultaat:dirt

Zie AI_CLASSIFY (Transact-SQL) voor meer informatie.

Entiteiten extraheren uit tekst

De AI_EXTRACT(text, class1, class2, ...) functie extraheert entiteiten uit de invoer text op basis van de opgegeven klassen.

Voorbeeld:

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

Verwacht resultaat:{"sentiment":"Negative","problem":"Dirty room"}

Zie AI_EXTRACT (Transact-SQL)voor meer informatie.

Antwoord genereren

De AI_GENERATE_RESPONSE(prompt, data) functie genereert een antwoord op basis van een gegeven prompt en optioneel data.

Voorbeeld:

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

Verwacht resultaat: 'Onze excuses voor het ongemak veroorzaakt door het lawaai en zijn toegewijd aan het verbeteren van onze geluidsisolatiemaatregelen.'

Zie AI_GENERATE_RESPONSE (Transact-SQL) voor meer informatie.

Tekst samenvatten

De AI_SUMMARIZE(text) functie geeft een overzicht van de invoer text in een beknopte versie.

Voorbeeld:

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

Verwacht resultaat: 'Schoon hotel, vriendelijk personeel.'

Zie AI_SUMMARIZE (Transact-SQL) voor meer informatie.

Tekst vertalen

De AI_TRANSLATE(text, lang_code) functie vertaalt text in de opgegeven taal met behulp van lang_code.

Ondersteunde taalcodes zijn de (Duits), en (Engels), fr (Frans), it (Italiaans), es (Spaans), (Grieks), el (Pools), pl (Zweeds), sv (Fins) fi en cs (Tsjechisch).

Voorbeeld:

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

Verwacht resultaat: 'Das Hotel war großartig.'

Zie AI_TRANSLATE (Transact-SQL) voor meer informatie.

Grammatica herstellen

De AI_FIX_GRAMMAR(text) functie corrigeert de grammatica in de invoer text.

Voorbeeld:

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

Verwacht resultaat: 'De kamers zijn schoon en het personeel was leuk.'

Zie AI_FIX_GRAMMAR (Transact-SQL) voor meer informatie.

Afhandeling van fouten

AI-functies keren terug NULL wanneer er een fout optreedt tijdens het verwerken van tekst. Fouten kunnen worden veroorzaakt door Responsible AI-veiligheidscontroles die niet-toegestane inhoud detecteren, invoer die tokenlimieten overschrijdt, problemen met tijdelijke diensten of andere verwerkingsfouten.

Standaard gebruiken AI-functies een best-effort uitvoeringsmodel en geven ze terug NULL bij mislukte verzoeken. Dit gedrag is ontworpen om te voorkomen dat fouten die individuele rijen beïnvloeden een hele query laten falen. Bij het verwerken van duizenden rijen via een extern groot taalmodel (LLM) zou een fout op één enkele waarde niet moeten voorkomen dat succesvolle resultaten worden teruggegeven voor de resterende rijen. Dit gedrag zorgt er ook voor dat succesvol verwerkte verzoeken niet verloren gaan en niet herhaald hoeven te worden.

Inspecteer rijen die zijn teruggegeven NULL, bepaal de reden van de fout, en probeer alleen die specifieke waarden opnieuw.

Je kunt het standaardgedrag overrulen door in elke functieaanroep een ON ERROR clausule te specificeren:

  • NULL ON ERROR (default) keert terug NULL wanneer de functie een waarde niet kan verwerken.
  • ERROR ON ERROR veroorzaakt dat de hele query faalt als er een fout optreedt in een functieaanroep.
  • DEFAULT <value> ON ERROR geeft de gespecificeerde standaardwaarde terug in plaats van NULL wanneer een fout optreedt.

Het volgende voorbeeld toont de beschikbare opties voor foutafhandeling:

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;

In dit voorbeeld:

  • AI_FIX_GRAMMAR Retourneert NULL voor waarden die het niet kan verwerken. Omdat retourneren NULL het standaard foutafhandelingsgedrag is, is de NULL ON ERROR clausule optioneel.
  • AI_EXTRACT faalt de hele query als een enkele cel een fout tegenkomt.
  • AI_CLASSIFY geeft Other terug voor cellen die niet kunnen worden geclassificeerd.

Opmerkingen

AI-functies kunnen om verschillende redenen fouten retourneren of tragere prestaties ervaren dan verwacht:

  • Zorg ervoor dat u voldoet aan alle vereiste vereisten voordat u AI-functies gebruikt. Als een vereiste ontbreekt, retourneert de functie een fout.
  • Als de invoertekst niet kan worden verwerkt, bijvoorbeeld omdat deze tokenlimieten overschrijdt, beperkte of aanstootgevende inhoud bevat, of anderszins het servicebeleid schendt, retourneert NULLde functie. Controleer altijd of de retourwaarde NULL is en behandel dit geval op de juiste manier in uw query’s, toepassingen of gegevensverwerkingspijplijnen.
  • Prestaties zijn afhankelijk van de invoergrootte, de complexiteit van de invoer en de totale belasting van de service. Afzonderlijke tekstwaarden worden doorgaans binnen een paar seconden verwerkt, terwijl grotere batches een doorvoer van ongeveer 10 tot 30 tekstwaarden per seconde kunnen bereiken. Als u consistent tragere prestaties ondervindt, is er mogelijk een service- of configuratieprobleem dat van invloed is op de verwerkingsdoorvoer.

Als je een probleem ondervindt met AI-functies in Fabric Data Warehouse of een SQL-analyse-endpoint:

Examples

Eén. Gegevens importeren en tekstkolom transformeren met AI-functies

In dit voorbeeld worden gegevens uit een Lakehouse-bestand in de hotel_reviews tabel in het magazijn geladen. Het selecteert een bestand in de /Files sectie en past vervolgens de AI-functies toe om de gegevens te verrijken:

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. Tekstkolom bijwerken met ai-functie

In het volgende voorbeeld worden de grammaticafouten in de reviews_text kolom opgelost:

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

De AI-functies kunnen NULL retourneren als er een fout optreedt, dus vermijd het overschrijven van bestaande waarden met NULL.

Gebruik het ISNULL(<ai function>, <original value>) patroon om de oorspronkelijke tekst te behouden wanneer AI-functies geen resultaten kunnen retourneren.

C. Waarden extraheren uit tekst

In dit voorbeeld analyseert de AI_EXTRACT functie de revisietekst en retourneert een JSON-object met de eigenschappen sentiment, time_reporteden problem. De OPENJSON functie parseert deze JSON vervolgens en wijst deze eigenschappen toe aan afzonderlijke kolommen voor eenvoudige query's en analyses.

Met dit voorbeeldscript worden de geëxtraheerde waarden ingevoegd als afzonderlijke kolommen in de doeltabel.

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

De AI_EXTRACT functie past fuzzy contextuele regels toe om onderwerpen te identificeren en te extraheren uit tekst zonder handmatig parseren of complexe reguliere expressies. Deze aanpak vereenvoudigt tekstanalyse door gebruik te maken van ai-gestuurd semantisch begrip in plaats van starre patroonkoppeling, waardoor het robuuster en beter kan worden aangepast aan variaties in natuurlijke taal.