Tutorial: Brug AI-funktioner i et lager

Gælder for:✅ Warehouse i Microsoft Fabric

I denne tutorial lærer du, hvordan du bruger indbyggede AI-funktioner i T-SQL til at ræsonnere om warehouse-tabeldata i naturligt sprog. Brug dbo.fact_sale tabellen til at udforske AI-funktioner i simple SELECT forespørgsler, brug dem i en mere avanceret analyseforespørgsel, og lagre deres resultater i kolonner.

Bemærk

Dette selvstudium er en del af et end-to-end-scenarie. For at gennemføre denne vejledning skal du først gennemføre disse vejledninger:

  1. Opret et arbejdsområde
  2. Opret et lager
  3. indfødning af data i et lager

Udforsk data med AI-funktioner

I denne opgave skal du lære, hvordan du bruger nogle af de indbyggede AI-funktioner i simple SELECT forespørgsler for at udforske, hvad de returnerer, uden at ændre tabellen.

Sørg for, at det arbejdsområde, du oprettede i første selvstudium, er åbent.

Udtræk kategorier fra beskrivelsen

  1. På båndet Hjem skal du vælge Ny SQL-forespørgsel.

  2. Indsæt følgende kode i forespørgselseditoren. Koden bruges AI_EXTRACT til at trække farve og størrelse ud af beskrivelser som Alien officer hoodie (Black) XXL. AI_EXTRACT returnerer et JSON-objekt, så brug OPENJSON dem til at omdanne attributterne til separate kolonner.

    -- 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 forespørgslen.

  4. Når udførelsen er fuldført, skal du omdøbe forespørgslen til Color & Size Extraction. Bekræfte, at Color og Size er udfyldt i separate kolonner.

Formatbeskrivelse som HTML

  1. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden bruges AI_GENERATE_RESPONSE til at omskrive Description som et HTML-produktresumé med en nøgleattributliste, klar til at blive vist på en webside.

    -- 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. Omdøb forespørgslen til Short Catalog Description Generation. Inspicer CatalogDescription og bekræft, at den indeholder de ønskede <p>, <dl>, <dt>, og <dd> elementer.

Opsummer salgsoplysninger

  1. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden bruges AI_GENERATE_RESPONSE til at omdanne numeriske kolonner i stedet for Description, til et klartekst-resumé af salgsartiklen.

    -- 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. Omdøb forespørgslen til Sales Item Summary Generation. Læs et par SalesItemSummary værdier og bekræft, at de afspejler de numeriske kolonner i samme række.

Bestem prioritet for hver salgsvare

I denne opgave kan du bruge AI_GENERATE_RESPONSE en mere avanceret forespørgsel, der kombinerer flere kolonner for at understøtte en forretningsbeslutning, i stedet for at ræsonnere ud fra en enkelt kolonne.

  1. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden kombinerer fakturadatoen, leveringsdatoen, en referencedato, linjetotalen, overskuddet og antallet af kølevarer, der skal håndteres i køleskabet, i én input, og beder derefter AI om at returnere en prioritetsscore, der blander disse signaler til ét tal. fact_sale Holder historiske salg, så @AsOfDate det står for den aktuelle forretningsdato, du ville bruge i en live fulfillment-kø.

    -- 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. Omdøb forespørgslen til Sales Item Fulfillment Priority Scoring. Bekræftede PriorityScore værdier ligger mellem 1 og 100, hvor de højeste scores sorteres først.

Persist AI-resultater

Eksemplerne indtil videre returnerer AI-resultater i en SELECT. For at genbruge disse resultater uden at skulle genberegne dem hver gang, skriv dem tilbage med UPDATE.

Ret grammatiske fejl i beskrivelsen

  1. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden bruges AI_FIX_GRAMMAR til at rette Description på stedet, så den oprindelige tekst bevares, når AI'en ikke har noget at rette.

    -- 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. Omdøb forespørgslen til Grammar Correction Update. Sammenlign nogle rækker, hvor Description de er ændret, og bekræft, at korrektionen er korrekt.

Generer nye kolonner

Denne opgave tilføjer først to destinationskolonner og udfylder dem derefter i én opdatering.

  1. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden tilføjer kolonner for en oversat beskrivelse og 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. Omdøb forespørgslen til Add Translation & Category Columns.

  3. Opret en ny forespørgsel, indsæt følgende kode, og kør den. Koden udfylder begge kolonner i én opdatering, hvor AI_TRANSLATE for Description og AI_CLASSIFY sorteres i et fast sæt produktkategorier, der matcher det, der faktisk står i denne tabel, såsom novelty-krus, tøj og emballagematerialer.

    -- 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. Omdøb forespørgslen til Populate Translation & Category Columns. Bekræft DescriptionFr og ProductCategory er fyldt ud for hver række.

Næste trin