Tutorial: Usa le funzioni di IA in un magazzino

si applica a:✅ Magazzino di dati in Microsoft Fabric

In questo tutorial, impari a usare funzioni di IA integrate in T-SQL per ragionare sui dati delle tabelle warehouse in linguaggio naturale. Usa la dbo.fact_sale tabella per esplorare le funzioni di IA in semplici query SELECT, usarle in query di analisi più avanzate e salvarne i risultati nelle colonne.

Note

Questa esercitazione fa parte di uno scenario completo . Per completare questo tutorial, devi prima completare questi tutorial:

  1. Creare un'area di lavoro
  2. Creare un magazzino
  3. Inserire dati in un warehouse

Esplora i dati con funzioni di IA

In questo compito, impara a usare alcune delle funzioni di IA integrate in semplici SELECT query per esplorare cosa restituiscono, senza cambiare la tabella.

Assicurarsi che l'area di lavoro creata nel prima esercitazione sia aperta.

Estrazione delle categorie dalla descrizione

  1. Nella barra multifunzione Home, selezionare Nuova query SQL.

  2. Nell'editor di query incollare il codice seguente. Il codice serve AI_EXTRACT a estrarre colore e dimensione da descrizioni come Alien officer hoodie (Black) XXL. AI_EXTRACT restituisce un oggetto JSON, quindi usa OPENJSON per trasformare gli attributi in colonne separate.

    -- 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. Esegui la query.

  4. Al termine dell'esecuzione, rinominare la query come Color & Size Extraction. Verifica che Color e Size siano popolati in colonne separate.

Formatta la descrizione come HTML

  1. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice usa AI_GENERATE_RESPONSE per riscrivere Description come un riepilogo del prodotto in HTML con un elenco degli attributi chiave, pronto per essere visualizzato su una pagina web.

    -- 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. Rinominare la query come Short Catalog Description Generation. Ispeziona CatalogDescription e conferma che includa gli elementi richiesti <p>, <dl>, <dt> e <dd>.

Riassumi le informazioni sugli articoli di vendita

  1. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice usa AI_GENERATE_RESPONSE per trasformare le colonne numeriche, invece di Description, in un riepilogo in testo semplice dell'articolo di vendita.

    -- 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. Rinominare la query come Sales Item Summary Generation. Leggi alcuni SalesItemSummary valori e conferma che riflettono le colonne numeriche della stessa riga.

Determina la priorità di ogni articolo di vendita

In questo compito, utilizza AI_GENERATE_RESPONSE una query più avanzata che combina più colonne per supportare una decisione aziendale, invece di ragionare su una singola colonna.

  1. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice combina la data della fattura, la data di consegna, una data di riferimento, il totale delle righe, il profitto e il numero di articoli del refrigeratore che necessitano di essere trattati in refrigerazione in un unico input, poi chiede all'IA di restituire un punteggio di priorità che fonde questi segnali in un unico numero. fact_sale contiene i dati storici di vendita, quindi @AsOfDate funge da data operativa corrente da utilizzare in una coda di evasione in tempo reale.

    -- 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. Rinominare la query come Sales Item Fulfillment Priority Scoring. I valori di conferma PriorityScore sono tra 1 e 100, con i punteggi più alti che vengono ordinati per primi.

Risultati di Persist AI

Gli esempi finora restituiscono risultati di IA in un SELECT. Per riutilizzare quei risultati senza ricalcolarli ogni volta, scrivili con UPDATE.

Correggere errori grammaticali nella descrizione

  1. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice usa AI_FIX_GRAMMAR per correggere Description direttamente, mantenendo il testo originale quando l'IA non ha nulla da correggere.

    -- 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. Rinominare la query come Grammar Correction Update. Confronta alcune righe dove Description sono state modificate e conferma che la correzione sia corretta.

Generare nuove colonne

Questo compito aggiunge prima due colonne di destinazione, poi le popola in un unico aggiornamento.

  1. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice aggiunge colonne per una descrizione tradotta e una categoria di prodotto.

    -- 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. Rinominare la query come Add Translation & Category Columns.

  3. Crea una nuova query, incolla il codice seguente ed eseguila. Il codice popola entrambe le colonne in un unico aggiornamento, usando AI_TRANSLATE per Description e AI_CLASSIFY per ordinare ogni riga in un insieme fisso di categorie di prodotto che corrispondono a quanto effettivamente presente in questa tabella, come tazze di novità, abbigliamento e forniture per il packaging.

    -- 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. Rinominare la query come Populate Translation & Category Columns. Conferma DescriptionFr e ProductCategory sono popolati per ogni riga.

Passo successivo