บทเรียน: การใช้ฟังก์ชัน AI ในคลังสินค้า

นําไปใช้กับ:✅ Warehouse ใน Microsoft Fabric

ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีใช้ ฟังก์ชัน AI ที่มีอยู่ใน T-SQL เพื่อวิเคราะห์ข้อมูลตารางคลังสินค้าในภาษาธรรมชาติ ใช้ตารางเพื่อ dbo.fact_sale สํารวจฟังก์ชัน AI ใน SELECT คําสั่งง่าย ๆ ใช้ในคําสั่งวิเคราะห์ขั้นสูง และเก็บผลลัพธ์ไว้ในคอลัมน์

หมายเหตุ

บทช่วยสอนนี้เป็นส่วนหนึ่งของสถานการณ์แบบครอบคลุม เพื่อทําบทเรียนนี้ให้สําเร็จ คุณต้องทําบทเรียนเหล่านี้ให้สําเร็จก่อน:

  1. สร้าง พื้นที่ทํางาน
  2. สร้าง คลังสินค้า
  3. การนําเข้าข้อมูลลงใน คลังสินค้า

สํารวจข้อมูลด้วยฟังก์ชัน AI

ในงานนี้ เรียนรู้วิธีใช้ฟังก์ชัน SELECT AI ที่มีอยู่ในตัวในคําสั่งง่าย ๆ เพื่อสํารวจสิ่งที่พวกมันส่งกลับมาโดยไม่ต้องเปลี่ยนตาราง

ตรวจสอบให้แน่ใจว่าพื้นที่ทํางานที่คุณสร้างขึ้นในบทช่วยสอน เปิดอยู่

ดึงหมวดหมู่จากคําอธิบาย

  1. บนแถบเครื่องมือ home ให้เลือก คิวรี SQL ใหม่

  2. ในตัวแก้ไขคิวรี ให้วางโค้ดต่อไปนี้ โค้ดใช้ AI_EXTRACT ดึงสีและขนาดออกจากคําอธิบาย เช่น Alien officer hoodie (Black) XXL. AI_EXTRACT คืนค่าวัตถุ JSON ดังนั้นใช้เพื่อ OPENJSON เปลี่ยนแอตทริบิวต์เป็นคอลัมน์แยกกัน

    -- 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. เรียกใช้คิวรี

  4. เมื่อการดําเนินการเสร็จสมบูรณ์ ให้เปลี่ยนชื่อคิวรีเป็น Color & Size Extraction ตรวจสอบว่า Color และ Size ได้ถูกเติมในคอลัมน์แยกกัน

จัดรูปแบบคําอธิบายเป็น HTML

  1. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น โค้ดนี้ใช้ AI_GENERATE_RESPONSE ในการเขียน Description ใหม่เป็นสรุปผลิตภัณฑ์ HTML พร้อมรายการแอตทริบิวต์สําคัญ พร้อมแสดงผลบนหน้าเว็บ

    -- 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. เปลี่ยนชื่อคิวรีเป็น Short Catalog Description Generation ตรวจสอบCatalogDescriptionและยืนยันว่ามีองค์ประกอบที่<p>ร้องขอ , <dl>, <dt>, และ<dd>

สรุปข้อมูลสินค้าขาย

  1. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น โค้ดนี้ใช้ AI_GENERATE_RESPONSE เปลี่ยนคอลัมน์ตัวเลขแทน Description, ให้กลายเป็นสรุปข้อความธรรมดาของสินค้าขาย

    -- 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. เปลี่ยนชื่อคิวรีเป็น Sales Item Summary Generation อ่านค่าบางค่า SalesItemSummary และยืนยันว่าค่าเหล่านั้นสะท้อนคอลัมน์ตัวเลขในแถวเดียวกัน

กําหนดลําดับความสําคัญของแต่ละรายการขาย

ในงานนี้ ให้ใช้ AI_GENERATE_RESPONSE ในคําสั่งขั้นสูงที่รวมหลายคอลัมน์เพื่อสนับสนุนการตัดสินใจทางธุรกิจ แทนที่จะใช้เหตุผลจากคอลัมน์เดียว

  1. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น รหัสนี้จะรวมวันที่ออกใบแจ้งหนี้ วันที่จัดส่ง วันที่อ้างอิง ยอดรวมของรายการ กําไร และจํานวนสินค้าชิลเลอร์ที่ต้องจัดการในตู้เย็นให้เป็นข้อมูลเดียว จากนั้นจะขอให้ AI ส่งคะแนนลําดับความสําคัญที่รวมสัญญาณเหล่านี้เป็นตัวเลขเดียว fact_sale ถือยอดขายในอดีต ดังนั้น @AsOfDate จะแทนวันที่ธุรกิจปัจจุบันที่คุณใช้ในคิวการจัดส่งแบบสด

    -- 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. เปลี่ยนชื่อคิวรีเป็น Sales Item Fulfillment Priority Scoring ค่ายืนยัน PriorityScore อยู่ระหว่าง 1 ถึง 100 โดยคะแนนสูงสุดจะถูกจัดเรียงก่อน

คงผลลัพธ์ AI

ตัวอย่างที่ผ่านมาให้ผลลัพธ์ AI เป็น SELECT. หากต้องการนําผลลัพธ์เหล่านั้นกลับมาใช้ใหม่โดยไม่ต้องคํานวณซ้ําทุกครั้ง ให้เขียนกลับพร้อมUPDATE

แก้ไขข้อผิดพลาดทางไวยากรณ์ในคําอธิบาย

  1. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น โค้ดจะใช้ AI_FIX_GRAMMAR เพื่อแก้ไข Description ต้นฉบับ โดยเก็บข้อความต้นฉบับไว้ทุกครั้งที่ AI ไม่มีอะไรต้องแก้ไข

    -- 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. เปลี่ยนชื่อคิวรีเป็น Grammar Correction Update เปรียบเทียบแถว Description ที่เปลี่ยนไปบ้างและยืนยันว่าการแก้ไขถูกต้อง

สร้างคอลัมน์ใหม่

งานนี้จะเพิ่มคอลัมน์ปลายทางสองคอลัมน์ก่อน จากนั้นเติมข้อมูลในการอัปเดตครั้งเดียว

  1. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น โค้ดจะเพิ่มคอลัมน์สําหรับคําอธิบายที่แปลแล้วและหมวดหมู่สินค้า

    -- 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. เปลี่ยนชื่อคิวรีเป็น Add Translation & Category Columns

  3. สร้างคําสั่งค้นหาใหม่ วางโค้ดต่อไปนี้ แล้วรันคําสั่งนั้น โค้ดนี้จะเติมข้อมูลทั้งสองคอลัมน์ในอัปเดตเดียว โดยใช้ AI_TRANSLATE for Description และ AI_CLASSIFY เพื่อจัดเรียงแต่ละแถวเป็นชุดหมวดหมู่สินค้าคงที่ที่ตรงกับข้อมูลในตารางนี้ เช่น แก้วเครื่องดื่มแปลกใหม่ เสื้อผ้า และอุปกรณ์บรรจุภัณฑ์

    -- 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. เปลี่ยนชื่อคิวรีเป็น Populate Translation & Category Columns ยืนยัน DescriptionFr และ ProductCategory ถูกกรอกข้อมูลสําหรับทุกแถว

ขั้นตอนถัดไป