Tutorial: Verwendung von KI-Funktionen in einem Warehouse

Gilt für:✅ Warehouse in Microsoft Fabric

In diesem Tutorial lernen Sie, wie man integrierte KI-Funktionen in T-SQL verwendet, um über Warehouse-Tabellendaten in natürlicher Sprache zu argumentieren. Verwenden Sie die Tabelle dbo.fact_sale , um KI-Funktionen in einfachen SELECT Abfragen zu erforschen, verwenden Sie sie in einer fortgeschritteneren Analyseanfrage und speichern Sie deren Ergebnisse in Spalten.

Note

Dieses Tutorial ist Teil eines End-to-End-Szenarios. Um dieses Tutorial abzuschließen, müssen Sie zunächst diese Tutorials absolvieren:

  1. Erstellen eines Arbeitsbereichs
  2. Erstellen eines Warehouse
  3. Erfassen von Daten in ein Warehouse

Erkunden Sie Daten mit KI-Funktionen

In dieser Aufgabe lernen Sie, wie Sie einige der integrierten KI-Funktionen in einfachen SELECT Abfragen einsetzen können, um zu erkunden, was sie zurückgeben, ohne die Tabelle zu ändern.

Stellen Sie sicher, dass der Arbeitsbereich, den Sie im ersten Tutorial erstellt haben, geöffnet ist.

Kategorien aus der Beschreibung extrahieren

  1. Wählen Sie im Menüband StartNeue SQL-Abfrage aus.

  2. Fügen Sie im Abfrage-Editor den folgenden Code ein. Der Code verwendet AI_EXTRACT, um die Farbe und die Größe aus Beschreibungen wie Alien officer hoodie (Black) XXL zu extrahieren. AI_EXTRACT gibt ein JSON-Objekt zurück, verwenden Sie also OPENJSON, um die Attribute in separate Spalten umzuwandeln.

    -- 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. Abfrage ausführen.

  4. Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in Color & Size Extraction um. Überprüfen Sie, dass Color und Size in separaten Spalten gefüllt sind.

Formatbeschreibung als HTML

  1. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code verwendet AI_GENERATE_RESPONSE, um Description als HTML-Produktzusammenfassung mit einer Liste der wichtigsten Attribute umzuschreiben, bereit zur Darstellung auf einer Webseite.

    -- 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. Benennen Sie die Abfrage in Short Catalog Description Generationum. Inspizieren CatalogDescription und bestätigen Sie, dass sie die angeforderten <p>, <dl>, <dt>, und <dd> Elemente enthält.

Verkaufsartikelinformationen zusammenfassen

  1. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code verwendet AI_GENERATE_RESPONSE, um numerische Spalten anstelle von Description in eine Zusammenfassung im Klartext des Verkaufsartikels umzuwandeln.

    -- 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. Benennen Sie die Abfrage in Sales Item Summary Generationum. Lesen Sie einige SalesItemSummary Werte und bestätigen, dass sie die numerischen Spalten in derselben Zeile widerspiegeln.

Bestimmen Sie die Priorität jedes Verkaufsartikels

Verwenden Sie in dieser Aufgabe AI_GENERATE_RESPONSE in einer komplexeren Abfrage, die mehrere Spalten kombiniert und als Grundlage für eine Geschäftsentscheidung dient, statt nur eine einzelne Spalte zu betrachten.

  1. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code kombiniert das Rechnungsdatum, das Lieferdatum, ein Referenzdatum, die Positionssumme, den Gewinn und die Anzahl der Kühlartikel, die eine gekühlte Handhabung erfordern, zu einer einzigen Eingabe und fordert dann die KI auf, einen Prioritätswert zurückzugeben, der diese Signale in einer einzigen Zahl zusammenführt. fact_sale enthält historische Verkäufe, daher steht @AsOfDate für das aktuelle Geschäftsdatum, das du in einer Live-Fulfillment-Warteschlange verwenden würdest.

    -- 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. Benennen Sie die Abfrage in Sales Item Fulfillment Priority Scoringum. Die Bestätigungswerte PriorityScore liegen zwischen 1 und 100, wobei die höchsten Punktzahlen zuerst sortiert werden.

KI-Ergebnisse speichern

Die bisherigen Beispiele geben KI-Ergebnisse in einem SELECT zurück. Um diese Ergebnisse wiederzuverwenden, ohne sie jedes Mal neu berechnen zu müssen, schreibe sie mit UPDATEzurück.

Beheben Sie Grammatikfehler in der Beschreibung

  1. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code verwendet AI_FIX_GRAMMAR, um Description direkt im Text zu korrigieren, wobei der ursprüngliche Text beibehalten wird, wenn die KI nichts zu korrigieren hat.

    -- 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. Benennen Sie die Abfrage in Grammar Correction Updateum. Vergleiche einige Zeilen, bei denen sich Description geändert hat, und vergewissere dich, dass die Korrektur korrekt ist.

Neue Spalten generieren

Diese Aufgabe fügt zunächst zwei Zielspalten hinzu und füllt sie dann in einem einzigen Update.

  1. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code fügt Spalten für eine übersetzte Beschreibung und eine Produktkategorie hinzu.

    -- 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. Benennen Sie die Abfrage in Add Translation & Category Columnsum.

  3. Erstelle eine neue Abfrage, füge den folgenden Code ein und führe sie aus. Der Code befüllt beide Spalten in einem einzigen Update, wobei AI_TRANSLATE für Description und AI_CLASSIFY verwendet wird, um jede Zeile einem festen Satz von Produktkategorien zuzuordnen, die dem entsprechen, was sich tatsächlich in dieser Tabelle befindet, z. B. Motivtassen, Bekleidung und Verpackungszubehör.

    -- 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. Benennen Sie die Abfrage in Populate Translation & Category Columnsum. Stellen Sie sicher, dass DescriptionFr und ProductCategory in jeder Zeile ausgefüllt sind.

Nächster Schritt