Útmutató: Használd az AI funkciókat raktárban

A következőkre vonatkozik:✅ Raktár a Microsoft Fabricben

Ebben az oktatóban megtanulod, hogyan lehet beépített AI funkciókat használni T-SQL-ben a raktári tábla adataival való természetes nyelven történő gondolkodáshoz. Használja a dbo.fact_sale táblát az AI-funkciók egyszerű SELECT lekérdezésekben való feltérképezésére, fejlettebb analitikai lekérdezésekben való használatukra, valamint az eredményeik oszlopokban való tárolására.

Megjegyzés:

Ez az oktatóanyag egy teljes körű forgatókönyv része. A tutorial teljesítéséhez először ezeket az oktatóanyagokat kell teljesítened:

  1. Munkaterület létrehozása
  2. Raktár létrehozása
  3. Adatok betöltése raktárba

Fedezd fel az adatokat AI funkciókkal

Ebben a feladatban tanuld meg, hogyan használhatod néhány beépített MI függvényt egyszerű SELECT lekérdezésekben, hogy felfedezd, mit adnak vissza, anélkül, hogy megváltoztatnád a táblát.

Győződjön meg arról, hogy az első oktatóanyagban létrehozott munkaterület nyitva van.

Kategóriák kivonata a leírásból

  1. A Kezdőlap menüszalagján válassza Új SQL-lekérdezéslehetőséget.

  2. A lekérdezésszerkesztőben illessze be a következő kódot. A kód AI_EXTRACT a színt és méretet kihúzza a leírásokból, például Alien officer hoodie (Black) XXL. AI_EXTRACT JSON-objektumot ad vissza, ezért az attribútumok külön oszlopokba bontásához használja a OPENJSON elemet.

    -- 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. Futtassa a lekérdezést.

  4. A végrehajtás befejezésekor nevezze át a lekérdezést Color & Size Extraction. Ellenőrizze, hogy a(z) Color és a(z) Size külön oszlopokban vannak kitöltve.

Formátumleírás HTML-ként

  1. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód a AI_GENERATE_RESPONSE használatával a(z) Description elemet egy HTML-es termékösszefoglalóvá írja át, egy kulcsfontosságú attribútumokat tartalmazó listával, amely készen áll arra, hogy megjelenjen egy weboldalon.

    -- 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. Nevezze át a lekérdezést Short Catalog Description Generationnéven. Ellenőrizd CatalogDescription és ellenőrizd, hogy tartalmazza a kért <p>, <dl>, <dt>, és <dd> elemeket.

Összefoglalja az eladási tétel adatait

  1. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód a numerikus oszlopokat AI_GENERATE_RESPONSE az értékesítési tétel egyszerű szöveges összefoglalójává alakítja, Description helyett.

    -- 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. Nevezze át a lekérdezést Sales Item Summary Generationnéven. Olvass el néhány SalesItemSummary értéket, és győződj meg róla, hogy azok tükrözik a számoszlopokat ugyanabban a sorban.

Határozza meg az egyes eladási tételek prioritását

Ebben a feladatban egy üzleti döntés támogatására használj AI_GENERATE_RESPONSE egy összetettebb lekérdezést, amely több oszlopot kombinál, ahelyett, hogy egyetlen oszlop alapján következtetnél.

  1. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód egyesíti a számla dátumát, a kézbesítési dátumot, a referencia dátumot, a vonal összértékét, a nyereséget és a hűtő termékek számát, amelyeket hűtött kezelésre szorul, majd az MI-t kéri, hogy adjon vissza egy prioritási pontszámot, amely ezeket a jeleket egy számba egyesíti. fact_sale Történelmi eladásokat tart, így @AsOfDate helyettesíti a jelenlegi üzleti dátumot, amit egy élő teljesítési sorban használnál.

    -- 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. Nevezze át a lekérdezést Sales Item Fulfillment Priority Scoringnéven. A megerősítő PriorityScore értékek 1 és 100 között vannak, a legmagasabb pontszámokat rendezik először.

Tartós AI eredmények

Az eddigi példák az AI-eredményeket egy SELECT adták vissza. Ahhoz, hogy ezeket az eredményeket újra felhasználd anélkül, hogy minden alkalommal újra kiszámolnánk, írd vissza őket.UPDATE

Javítsd meg a nyelvtani hibákat a leírásban

  1. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód a AI_FIX_GRAMMAR használja a Description helyben történő javítására, és megtartja az eredeti szöveget, ha az AI-nak nincs mit javítania.

    -- 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. Nevezze át a lekérdezést Grammar Correction Updatenéven. Hasonlíts össze néhány sort, ahol Description megváltozott, és győződj meg róla, hogy a korrekció pontos.

Új oszlopok generálása

Ez a feladat először két céloszlopot ad hozzá, majd egyetlen frissítésben tölti fel őket.

  1. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód oszlopokat ad hozzá a fordított leíráshoz és egy termékkategóriához.

    -- 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. Nevezze át a lekérdezést Add Translation & Category Columnsnéven.

  3. Hozz létre egy új lekérdezést, illesztsd be a következő kódot, és futtasd le. A kód mindkét oszlopot egyetlen frissítésben tölti fel, és AI_TRANSLATEDescriptionAI_CLASSIFY minden sort egy fix termékkategóriába rendez, amely megfelel a táblázatban szereplőknek, például újdonságos bögrek, ruházat és csomagolási kellékek.

    -- 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. Nevezze át a lekérdezést Populate Translation & Category Columnsnéven. Győződjön meg róla, hogy a(z) DescriptionFr és ProductCategory minden sorban ki van töltve.

Következő lépés