Handledning: Använd AI-funktioner i ett lager

gäller för:✅ Warehouse i Microsoft Fabric

I denna handledning lär du dig hur man använder inbyggda AI-funktioner i T-SQL för att resonera kring lagertabelldata på naturligt språk. Använd dbo.fact_sale tabellen för att utforska AI-funktioner i enkla SELECT frågor, använd dem i en mer avancerad analysfråga och spara deras resultat i kolumner.

Note

Den här självstudien är en del av ett heltäckande scenario . För att slutföra denna handledning måste du först genomföra dessa handledningar:

  1. Skapa en arbetsyta
  2. Skapa ett lager
  3. ladda in data i ett datalager

Utforska data med AI-funktioner

I denna uppgift lär du dig hur du använder några av de inbyggda AI-funktionerna i enkla SELECT frågor för att utforska vad de returnerar, utan att ändra tabellen.

Kontrollera att arbetsytan som du skapade i den första handledningen är öppen.

Extrahera kategorier från beskrivningen

  1. I menyfliksområdet Start väljer du Ny SQL-fråga.

  2. Klistra in följande kod i frågeredigeraren. Koden används AI_EXTRACT för att dra ut färg och storlek ur beskrivningar såsom Alien officer hoodie (Black) XXL. AI_EXTRACT returnerar ett JSON-objekt, så använd OPENJSON för att omvandla attributen till separata kolumner.

    -- Extract color and size attributes.
    SELECT
        SaleKey,
        Description,
        extracted.Color,
        extracted.Size
    FROM dbo.fact_sale
    CROSS APPLY OPENJSON(AI_EXTRACT(Description, 'Color', 'Size'))
        WITH (Color varchar(50), Size varchar(20)) AS extracted;
    
  3. Kör sökningen.

  4. När körningen är klar byter du namn på sökfrågan till Color & Size Extraction. Verifiera att Color och Size fylls i separata kolumner.

Formatbeskrivning som HTML

  1. Skapa en ny fråga, klistra in följande kod och kör den. Koden använder AI_GENERATE_RESPONSE för att omvandla Description till en HTML-produktsammanfattning med en lista över viktiga attribut, klar att renderas på en webbsida.

    -- Generate a catalog description formatted as HTML, with a summary and an attribute list.
    SELECT
        SaleKey,
        Description,
        AI_GENERATE_RESPONSE(
            'Rewrite as a short e-commerce catalog description. Format the result as HTML: wrap the summary in a <p> tag, then list key attributes as a <dl>, with each <dt> label bolded using <strong> and followed by its <dd> value.',
            Description
        ) AS CatalogDescription
    FROM dbo.fact_sale;
    
  2. Byt namn på frågan till Short Catalog Description Generation. Inspektera CatalogDescription och bekräfta att den inkluderar de begärda <p>, <dl>, <dt>, och <dd> elementen.

Sammanfatta information om försäljningsartiklar

  1. Skapa en ny fråga, klistra in följande kod och kör den. Koden används AI_GENERATE_RESPONSE för att omvandla numeriska kolumner istället för Description, till en klartextsammanfattning av försäljningsartikeln.

    -- Summarize each sales item in plain text, based on numeric columns only.
    DECLARE @prompt nvarchar(max) = N'Summarize this sales item in one short sentence for a business report.';
    
    SELECT
        *,
        AI_GENERATE_RESPONSE(
            @prompt,
            CONCAT(
                'Package: ', Package,
                '. Quantity: ', Quantity,
                '. Dry items: ', TotalDryItems,
                '. Chiller items: ', TotalChillerItems,
                '. Unit price: ', UnitPrice,
                '. Tax rate: ', TaxRate,
                '. Profit: ', Profit,
                '. Total including tax: ', TotalIncludingTax
            )
        ) AS SalesItemSummary
    FROM dbo.fact_sale;
    
  2. Byt namn på frågan till Sales Item Summary Generation. Läs några SalesItemSummary värden och bekräfta att de speglar de numeriska kolumnerna i samma rad.

Bestäm prioritet för varje försäljningsartikel

I denna uppgift använder AI_GENERATE_RESPONSE du en mer avancerad fråga som kombinerar flera kolumner för att stödja ett affärsbeslut, istället för att resonera kring en enda kolumn.

  1. Skapa en ny fråga, klistra in följande kod och kör den. Koden kombinerar fakturadatum, leveransdatum, referensdatum, linjetotal, vinst och antal kylartiklar som behöver kylas i en och samma ingång, och ber sedan AI att returnera en prioritetspoäng som blandar dessa signaler till ett nummer. fact_sale innehåller historiska försäljningar, så @AsOfDate motsvarar det aktuella affärsdatum som du skulle använda i en aktiv leveranskö.

    -- Score sales items for fulfillment priority based on invoice-to-delivery time, line total, profit, and chiller items.
    DECLARE @AsOfDate date = '2016-05-01';
    DECLARE @prompt nvarchar(max) = N'Given the invoice date, delivery date, reference date, line total, profit, and number of chiller items below, return a single integer priority score from 1 (low) to 100 (urgent) for sales-item fulfillment. Consider how much time was allowed from invoice to delivery, and how close the delivery date is to the reference date. Larger line totals, closer delivery dates, higher profit, and more chiller items should raise the score. Return only the number.';
    
    SELECT
        SaleKey,
        InvoiceDateKey,
        DeliveryDateKey,
        TotalIncludingTax,
        Profit,
        TotalChillerItems,
        TRY_CAST(AI_GENERATE_RESPONSE(
            @prompt,
            CONCAT(
                'Invoice date: ', CONVERT(char(10), InvoiceDateKey, 23),
                '. Delivery date: ', CONVERT(char(10), DeliveryDateKey, 23),
                '. Reference date: ', CONVERT(char(10), @AsOfDate, 23),
                '. Line total: ', TotalIncludingTax,
                '. Profit: ', Profit,
                '. Chiller items: ', TotalChillerItems
            )
        ) AS int) AS PriorityScore
    FROM dbo.fact_sale
    ORDER BY PriorityScore DESC;
    
  2. Byt namn på frågan till Sales Item Fulfillment Priority Scoring. Kontrollera att PriorityScore-värden ligger mellan 1 och 100, sorterade med de högsta värdena först.

Spara AI-resultat

Exemplen hittills returnerar AI-resultat i en SELECT. För att återanvända dessa resultat utan att behöva räkna om dem varje gång, skriv tillbaka dem med UPDATE.

Rätta grammatiska fel i beskrivningen

  1. Skapa en ny fråga, klistra in följande kod och kör den. Koden använder AI_FIX_GRAMMAR för att korrigera Description direkt i texten och behåller den ursprungliga texten när AI inte har något att rätta.

    -- Fix grammar issues in the description, in place.
    UPDATE dbo.fact_sale
    SET Description = ISNULL(AI_FIX_GRAMMAR(Description), Description)
    WHERE Description IS NOT NULL;
    
  2. Byt namn på frågan till Grammar Correction Update. Jämför några rader där Description har ändrats och bekräfta att korrigeringen är korrekt.

Generera nya kolumner

Denna uppgift lägger först till två destinationskolumner och fyller sedan i dem i en enda uppdatering.

  1. Skapa en ny fråga, klistra in följande kod och kör den. Koden lägger till kolumner för en översatt beskrivning och en produktkategori.

    -- Add columns for the translated description and the product category.
    ALTER TABLE dbo.fact_sale ADD DescriptionFr nvarchar(max) NULL, ProductCategory nvarchar(50) NULL;
    
  2. Byt namn på frågan till Add Translation & Category Columns.

  3. Skapa en ny fråga, klistra in följande kod och kör den. Koden fyller båda kolumnerna i en enda uppdatering, med AI_TRANSLATE för Description och AI_CLASSIFY för att sortera varje rad i en fast uppsättning produktkategorier som motsvarar det som faktiskt finns i den här tabellen, såsom presentmuggar, klädartiklar och förpackningsmaterial.

    -- Populate the translated description and product category columns.
    UPDATE dbo.fact_sale
    SET
        DescriptionFr = AI_TRANSLATE(Description, 'fr'),
        ProductCategory = AI_CLASSIFY(
            Description,
            'Apparel', 'Footwear', 'Novelty & Gifts', 'Packaging Materials', 'Toys & Costumes', 'Office Supplies'
        )
    WHERE Description IS NOT NULL;
    
  4. Byt namn på frågan till Populate Translation & Category Columns. Kontrollera att DescriptionFr och ProductCategory är ifyllda för varje rad.

Nästa steg