Tutorial: Używaj funkcji AI w magazynie

Dotyczy:✅ Magazyn w systemie Microsoft Fabric

W tym tutorialu nauczysz się, jak korzystać z wbudowanych funkcji AI w T-SQL do rozumowania w danych tabel magazynowych w języku naturalnym. Użyj tabeli dbo.fact_sale do eksploracji funkcji AI w prostych SELECT zapytaniach, użyj ich w bardziej zaawansowanym zapytaniu analitycznym i zapisuj wyniki w kolumnach.

Note

Ten samouczek stanowi część kompleksowego scenariusza . Aby ukończyć ten samouczek, najpierw musisz wykonać następujące tutoriale:

  1. Tworzenie obszaru roboczego
  2. Tworzenie magazynu
  3. Wprowadzanie danych do magazynu danych

Eksploruj dane z funkcjami AI

W tym zadaniu naucz się, jak używać kilku wbudowanych funkcji AI w prostych SELECT zapytaniach, aby sprawdzić, co zwracają, bez zmiany tabeli.

Upewnij się, że obszar roboczy utworzony w pierwszym samouczku jest otwarty.

Kategorie wyodrębnione z opisu

  1. Na wstążce Narzędzia główne wybierz pozycję Nowe zapytanie SQL.

  2. W edytorze zapytań wklej następujący kod. Kod używa AI_EXTRACT do wyodrębniania koloru i rozmiaru z opisów, takich jak Alien officer hoodie (Black) XXL. AI_EXTRACT zwraca obiekt JSON, więc używamy OPENJSON do przekształcenia atrybutów w osobne kolumny.

    -- 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. Uruchamianie zapytania.

  4. Po zakończeniu wykonywania zmień nazwę zapytania na Color & Size Extraction. Sprawdź, czy Color i Size znajdują się w oddzielnych kolumnach.

Sformatuj opis jako HTML

  1. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Kod wykorzystuje AI_GENERATE_RESPONSE, aby przekształcić Description w podsumowanie produktu w formacie HTML z listą kluczowych atrybutów, gotowe do wyświetlenia na stronie internetowej.

    -- 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. Zmień nazwę zapytania na Short Catalog Description Generation. Sprawdź CatalogDescription i potwierdź, że zawiera żądane elementy <p>, <dl>, <dt> oraz <dd>.

Podsumuj informacje o produktach sprzedażowych

  1. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Ten kod używa AI_GENERATE_RESPONSE, aby przekształcić kolumny liczbowe, zamiast Description, w podsumowanie pozycji sprzedaży w postaci zwykłego tekstu.

    -- 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. Zmień nazwę zapytania na Sales Item Summary Generation. Przeczytaj kilka SalesItemSummary wartości i upewnij się, że odzwierciedlają kolumny numeryczne w tym samym wierszu.

Określ priorytet każdego produktu sprzedażowego

W tym zadaniu użyj AI_GENERATE_RESPONSE w bardziej zaawansowanym zapytaniu, które łączy kilka kolumn, aby wesprzeć podjęcie decyzji biznesowej, zamiast opierać rozumowanie na pojedynczej kolumnie.

  1. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Kod łączy datę faktury, datę dostawy, datę odniesienia, łączną liczbę linii, zysk oraz liczbę produktów chłodniczych wymagających obsługi w lodówce w jednym wejściu, a następnie prosi AI o zwrócenie wyniku priorytetu, który łączy te sygnały w jedną liczbę. fact_sale zawiera historyczne dane sprzedażowe, więc @AsOfDate pełni funkcję bieżącej daty operacyjnej używanej w produkcyjnej kolejce realizacji.

    -- 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. Zmień nazwę zapytania na Sales Item Fulfillment Priority Scoring. Wartości potwierdzeń PriorityScore mieszczą się w przedziale od 1 do 100, a najwyższe wyniki są posortowane jako pierwsze.

Zachowywanie wyników AI

Dotychczasowe przykłady zwracają wyniki SI w elemencie SELECT. Aby wykorzystać te wyniki bez ich ponownego obliczania za każdym razem, zapisz je z powrotem za pomocą UPDATE.

Naprawa błędów gramatycznych w opisie

  1. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Kod używa AI_FIX_GRAMMAR, aby poprawiać Description na miejscu, zachowując oryginalny tekst, gdy AI nie ma nic do poprawienia.

    -- 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. Zmień nazwę zapytania na Grammar Correction Update. Porównaj kilka wierszy, gdzie Description zostały zmienione, i popewnij, że korekta jest poprawna.

Generuj nowe kolumny

To zadanie najpierw dodaje dwie kolumny docelowe, a następnie wypełnia je w jednej aktualizacji.

  1. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Kod dodaje kolumny dla przetłumaczonego opisu oraz kategorii produktu.

    -- 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. Zmień nazwę zapytania na Add Translation & Category Columns.

  3. Stwórz nowe zapytanie, wklej poniższy kod i uruchom je. Kod wypełnia obie kolumny w ramach jednej aktualizacji, używając AI_TRANSLATE dla Description oraz AI_CLASSIFY, aby przyporządkować każdy wiersz do ustalonego zestawu kategorii produktów, które odpowiadają temu, co rzeczywiście znajduje się w tej tabeli, takich jak kubki okolicznościowe, odzież i materiały opakowaniowe.

    -- 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. Zmień nazwę zapytania na Populate Translation & Category Columns. Upewnij się, że DescriptionFr i ProductCategory są wypełnione w każdym wierszu.

Następny krok