หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric
สำคัญ
คุณลักษณะนี้อยู่ใน แสดงตัวอย่าง
Fabric คลังข้อมูล และตําแหน่งข้อมูลการวิเคราะห์ SQL มีฟังก์ชัน AI ในตัวที่คุณสามารถใช้เพื่อวิเคราะห์ จําแนก สรุป และแปลงข้อความได้โดยตรงภายในคิวรี SQL เมื่อใช้ฟังก์ชันเหล่านี้ คุณสามารถดําเนินการประมวลผลข้อความขั้นสูงได้โดยไม่ต้องออกจากสภาพแวดล้อมข้อมูลของคุณ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้ฟังก์ชัน AI เพื่อแปลงข้อความ
| ฟังก์ชัน | จุดประสงค์ | ตัวอย่างไวยากรณ์ |
|---|---|---|
AI_ANALYZE_SENTIMENT |
ตรวจหาความคิดเห็นของข้อความที่ป้อน | AI_ANALYZE_SENTIMENT(<text>) |
AI_CLASSIFY |
จําแนกข้อความตามป้ายกํากับที่ให้มา | AI_CLASSIFY(<text>, <class1>, <class2>, ...) |
AI_EXTRACT |
แยกเอนทิตีเป็นคุณสมบัติ JSON | AI_EXTRACT(<text>, <class1>, <class2>, ...) |
AI_SUMMARIZE |
สรุปข้อความ | AI_SUMMARIZE(<text>) |
AI_GENERATE_RESPONSE |
สร้างการตอบสนองตามข้อความแจ้ง | AI_GENERATE_RESPONSE(<prompt>, <data>) |
AI_TRANSLATE |
แปลข้อความที่ป้อนเป็นภาษาเป้าหมายที่ระบุ | AI_TRANSLATE(<text>, <lang_code>) |
AI_FIX_GRAMMAR |
แก้ไขไวยากรณ์ในข้อความ | AI_FIX_GRAMMAR(<text>) |
ฟังก์ชันเหล่านี้เรียก AI API ภายนอกเพื่อประมวลผลข้อความ ซึ่งอาจส่งผลต่อประสิทธิภาพของคิวรี เพื่อเพิ่มประสิทธิภาพ ให้หลีกเลี่ยงการใช้การแปลงข้อความซ้ําๆ ภายใน SELECT คิวรีในชุดข้อมูลเดียวกัน ให้คํานวณล่วงหน้าและทําให้ผลลัพธ์ของฟังก์ชัน AI เป็นคอลัมน์แยกต่างหากหรือในตารางการจัดเตรียมแทน
คำเตือน
ฟังก์ชันจะส่งคืน NULL หากโมเดล AI ไม่สามารถประมวลผลข้อความได้ สาเหตุทั่วไป ได้แก่
- กฎ AI ที่มีความรับผิดชอบจะบล็อกเนื้อหาที่ไม่เหมาะสมในข้อความที่ป้อน
- ข้อความที่ป้อนเกินขีดจํากัดโทเค็น รุ่นปัจจุบันรองรับข้อความสูงสุด 15 KB
ความเร็วในการประมวลผลโดยทั่วไปของฟังก์ชัน AI คือ 20-100 แถวต่อวินาที หากคุณพบว่าประสิทธิภาพการทํางานช้าลง ให้รายงานคิวรีที่มีปัญหาว่าเป็นปัญหา
Prerequisites
- หากต้องการใช้ฟังก์ชัน AI กับจุดสิ้นสุด AI ในตัวใน Fabric ผู้ดูแลระบบของคุณต้องเปิดใช้งานสวิตช์ผู้เช่าสําหรับ Copilot และคุณลักษณะอื่นๆ ที่ขับเคลื่อนโดย Azure OpenAI
- คุณอาจต้องเปิดใช้งานการตั้งค่าผู้เช่าสําหรับการประมวลผลข้ามภูมิศาสตร์ ทั้งนี้ขึ้นอยู่กับตําแหน่งที่ตั้งของคุณ เรียนรู้เพิ่มเติมเกี่ยวกับภูมิภาคที่พร้อมใช้งานสําหรับบริการ Azure OpenAI
- คุณต้องมีความจุ Fabric แบบชําระเงิน (F2 หรือสูงกว่า หรือรุ่น P ใดก็ได้)
- คุณสามารถใช้ฟังก์ชัน AI ได้เฉพาะใน ภูมิภาคที่รองรับเท่านั้น
ตรวจสอบข้อกําหนด เบื้องต้นของฟังก์ชัน AI สําหรับข้อกําหนดเบื้องต้นเพิ่มเติม
วิเคราะห์ความคิดเห็น
ฟังก์ชันจะAI_ANALYZE_SENTIMENT(text)วิเคราะห์ความคิดเห็นจากอินพุตtextและส่งคืนค่าใดค่าหนึ่งต่อไปนี้: positive, negative, หรือ mixedneutral
ตัวอย่าง:
SELECT AI_ANALYZE_SENTIMENT('This hotel was great!') AS sentiment;
ผลลัพธ์ที่คาดหวัง:positive
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_ANALYZE_SENTIMENT (Transact-SQL)
จัดประเภทข้อความ
ฟังก์ชันจะ AI_CLASSIFY(text, class1, class2, ...) จําแนกอินพุต text ออกเป็นหมวดหมู่ใดประเภทหนึ่งที่ให้มา
ตัวอย่าง:
SELECT AI_CLASSIFY('Room was dirty', 'service','dirt','food') AS classification;
ผลลัพธ์ที่คาดหวัง:dirt
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_CLASSIFY (Transact-SQL)
แยกเอนทิตีออกจากข้อความ
ฟังก์ชันจะ AI_EXTRACT(text, class1, class2, ...) แยกเอนทิตีจากอินพุต text ตามคลาสที่ระบุ
ตัวอย่าง:
SELECT AI_EXTRACT('Check-in was late and room dirty', 'sentiment','problem') AS extraction;
ผลลัพธ์ที่คาดหวัง:{"sentiment":"Negative","problem":"Dirty room"}
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_EXTRACT (Transact-SQL)
สร้างการตอบสนอง
ฟังก์ชันสร้างAI_GENERATE_RESPONSE(prompt, data)การตอบสนองตามpromptที่กําหนดและไม่บังคับdata
ตัวอย่าง:
SELECT AI_GENERATE_RESPONSE('Reply in 20 words:', 'The room was noisy.') AS response;
ผลลัพธ์ที่คาดหวัง: 'เราขออภัยอย่างจริงใจสําหรับความไม่สะดวกที่เกิดจากเสียงรบกวน และมุ่งมั่นที่จะปรับปรุงมาตรการป้องกันเสียงรบกวนของเรา'
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_GENERATE_RESPONSE (Transact-SQL)
สรุปข้อความ
ฟังก์ชันจะ AI_SUMMARIZE(text) สรุปอินพุต text เป็นเวอร์ชันที่กระชับ
ตัวอย่าง:
SELECT AI_SUMMARIZE('The hotel was clean and staff were friendly.') AS summary;
ผลลัพธ์ที่คาดหวัง: "โรงแรมสะอาด พนักงานเป็นกันเอง"
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_SUMMARIZE (Transact-SQL)
แปลข้อความ
ฟังก์ชันจะ AI_TRANSLATE(text, lang_code) แปล text เป็นภาษาที่ระบุโดยใช้ lang_code.
รหัสภาษาที่รองรับคือ de (เยอรมัน) en (อังกฤษ) fr (ฝรั่งเศส) it (อิตาลี) es (สเปน) el (กรีก) pl (โปแลนด์) sv (สวีเดน) fi (ฟินแลนด์) และ cs (เช็ก)
ตัวอย่าง:
SELECT AI_TRANSLATE('The hotel was great','de') AS translation_de;
ผลลัพธ์ที่คาดหวัง: 'Das Hotel สงคราม großartig'
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_TRANSLATE (Transact-SQL)
แก้ไขไวยากรณ์
AI_FIX_GRAMMAR(text)ฟังก์ชันจะแก้ไขไวยากรณ์ในการป้อนข้อมูลtext
ตัวอย่าง:
SELECT AI_FIX_GRAMMAR('Th room are clean and staff were nice') AS fixed_text;
ผลลัพธ์ที่คาดหวัง: "ห้องพักสะอาด และพนักงานก็น่ารัก"
สําหรับข้อมูลเพิ่มเติม โปรดดู AI_FIX_GRAMMAR (Transact-SQL)
การจัดการข้อผิดพลาด
ฟังก์ชัน AI จะกลับมาเมื่อ NULL เกิดข้อผิดพลาดขณะประมวลผลข้อความ ข้อผิดพลาดอาจเกิดจากการตรวจสอบความปลอดภัยของ AI อย่างรับผิดชอบ ที่ตรวจพบเนื้อหาที่ไม่อนุญาต อินพุตเกินขีดจํากัดโทเค็น ปัญหาบริการชั่วคราว หรือความล้มเหลวในการประมวลผลอื่น ๆ
โดยค่าเริ่มต้น ฟังก์ชัน AI จะใช้โมเดลการดําเนินการแบบ best-effort และคืนค่า NULL เมื่อคําขอล้มเหลว พฤติกรรมนี้ออกแบบมาเพื่อป้องกันข้อผิดพลาดที่ส่งผลต่อแถวแต่ละแถวไม่ให้ล้มเหลวทั้งคิวรี เมื่อประมวลผลแถวนับพันผ่านโมเดลภาษาขนาดใหญ่ภายนอก (LLM) ความล้มเหลวในค่าเดียวไม่ควรเป็นอุปสรรคต่อผลลัพธ์ที่สําเร็จสําหรับแถวที่เหลือ พฤติกรรมนี้ยังช่วยให้คําขอที่ดําเนินการสําเร็จไม่สูญหายและไม่จําเป็นต้องทําซ้ํา
ตรวจสอบแถวที่ส่งคืน NULLหาสาเหตุของความล้มเหลว และลองใหม่เฉพาะค่าที่ระบุเท่านั้น
คุณสามารถแทนที่พฤติกรรมเริ่มต้นได้โดยระบุ ON ERROR clause ในแต่ละการเรียกฟังก์ชัน:
-
NULL ON ERROR(ค่าเริ่มต้น) จะคืนค่าNULLเมื่อฟังก์ชันไม่สามารถประมวลผลค่าได้ -
ERROR ON ERRORจะทําให้คําสั่งทั้งหมดล้มเหลวหากเกิดข้อผิดพลาดในการเรียกใช้ฟังก์ชันใด ๆ -
DEFAULT <value> ON ERRORคืนค่าเริ่มต้นที่ระบุแทนNULLเมื่อเกิดข้อผิดพลาด
ตัวอย่างต่อไปนี้แสดงตัวเลือกการจัดการข้อผิดพลาดที่มีอยู่:
SELECT
*,
AI_FIX_GRAMMAR(review_text NULL ON ERROR) AS fixed_text,
AI_EXTRACT(review_text, 'sentiment', 'problem' ERROR ON ERROR) AS info*
AI_CLASSIFY(review_text, 'service', 'dirt', 'food' DEFAULT 'Other' ON ERROR) AS classification
FROM hotel_reviews;
ในตัวอย่างนี้:
-
AI_FIX_GRAMMARคืนค่าNULLสําหรับค่าที่ไม่สามารถประมวลผลได้ เนื่องจากการNULLคืนค่าเป็นพฤติกรรมการจัดการข้อผิดพลาดเริ่มต้น คลอสนี้NULL ON ERRORจึงเป็นทางเลือก -
AI_EXTRACTจะล้มเหลวในการสืบค้นทั้งหมดหากเซลล์ใดพบข้อผิดพลาด -
AI_CLASSIFYคืนค่าOtherสําหรับเซลล์ที่ไม่สามารถจัดประเภทได้
หมายเหตุ
ฟังก์ชัน AI สามารถส่งคืนข้อผิดพลาดหรือพบประสิทธิภาพการทํางานที่ช้ากว่าที่คาดไว้ด้วยเหตุผลหลายประการ:
- ตรวจสอบให้แน่ใจว่าคุณมีคุณสมบัติตรงตาม ข้อกําหนดเบื้องต้น ที่จําเป็นทั้งหมดก่อนที่จะใช้ฟังก์ชัน AI หากไม่มีข้อกําหนดเบื้องต้น ฟังก์ชันจะส่งกลับข้อผิดพลาด
- หากไม่สามารถประมวลผลข้อความที่ป้อนได้ เช่น เนื่องจากเกินขีดจํากัดของโทเค็น มีเนื้อหาที่ถูกจํากัดหรือไม่เหมาะสม หรือละเมิดนโยบายการบริการ ฟังก์ชันจะส่งคืน
NULLตรวจสอบเสมอว่าค่าที่ส่งคืนเป็นค่าNULLหรือไม่ และจัดการกรณีนี้อย่างเหมาะสมในคิวรี แอปพลิเคชัน หรือไปป์ไลน์การประมวลผลข้อมูลของคุณ - ประสิทธิภาพขึ้นอยู่กับขนาดอินพุต ความซับซ้อนของอินพุต และภาระงานบริการโดยรวม โดยทั่วไปค่าข้อความแต่ละค่าจะได้รับการประมวลผลภายในไม่กี่วินาที ในขณะที่ชุดงานขนาดใหญ่สามารถบรรลุปริมาณงานได้ประมาณ 10-30 ค่าข้อความต่อวินาที หากคุณประสบกับประสิทธิภาพการทํางานที่ช้ากว่าที่คาดไว้อย่างสม่ําเสมอ อาจมีปัญหาการบริการหรือการกําหนดค่าที่ส่งผลต่อปริมาณการประมวลผล
หากคุณพบปัญหาเกี่ยวกับฟังก์ชัน AI ใน Fabric คลังข้อมูล หรือตําแหน่งข้อมูลการวิเคราะห์ SQL:
- สร้างตั๋วการสนับสนุนผ่านฝ่ายสนับสนุนของ Microsoft หรือ
- แบ่งปันข้อเสนอแนะ ถามคําถาม หรือพูดคุยเกี่ยวกับปัญหากับชุมชนในฟังก์ชัน AI ใน subreddit Microsoft Fabric คลังข้อมูล
ตัวอย่าง
ตอบ นําเข้าข้อมูลและแปลงคอลัมน์ข้อความโดยใช้ฟังก์ชัน AI
ตัวอย่างนี้จะโหลดข้อมูลจากไฟล์ Lakehouse ลงใน hotel_reviews ตารางในคลังสินค้า
เลือกจากไฟล์ในส่วน /Files จากนั้นใช้ฟังก์ชัน AI เพื่อเพิ่มข้อมูล:
CREATE TABLE HotelDW.dbo.hotel_reviews
AS
SELECT
city, latitude, longitude, name, reviews_rating, reviews_text,
AI_SUMMARIZE(reviews_text) AS reviews_summary,
AI_CLASSIFY( reviews_text, 'service', 'dirt', 'food', 'air conditioning', 'other') AS reviews_classification,
AI_ANALYZE_SENTIMENT(reviews_text) AS reviews_sentiment,
AI_TRANSLATE(reviews_text, 'de') AS reviews_text_de,
AI_TRANSLATE(reviews_text, 'es') AS reviews_text_es,
AI_TRANSLATE(reviews_text, 'fr') AS reviews_text_fr,
AI_TRANSLATE(reviews_text, 'it') AS reviews_text_it
FROM OPENROWSET( BULK '/Files/csv/hotel_reviews_demo.csv', DATA_SOURCE = 'TextLakehouse', HEADER_ROW = TRUE);
B. อัปเดตคอลัมน์ข้อความโดยใช้ฟังก์ชัน AI
ตัวอย่างต่อไปนี้แก้ไขข้อผิดพลาดทางไวยากรณ์ใน reviews_text คอลัมน์:
UPDATE HotelDW.dbo.hotel_reviews
SET reviews_text = ISNULL(AI_FIX_GRAMMAR(reviews_text), reviews_text);
ฟังก์ชัน AI อาจส่งคืนNULLหากเกิดข้อผิดพลาด ดังนั้นหลีกเลี่ยงการเขียนทับค่าที่มีอยู่ด้วยNULL
ใช้รูปแบบเพื่อ ISNULL(<ai function>, <original value>) รักษาข้อความต้นฉบับเมื่อฟังก์ชัน AI ไม่สามารถส่งคืนผลลัพธ์ได้
C. แยกค่าจากข้อความ
ในตัวอย่างนี้ ฟังก์ชันจะ AI_EXTRACT วิเคราะห์ข้อความรีวิวและส่งคืนออบเจ็กต์ JSON ที่มีคุณสมบัติ sentiment, time_reported, และ problem. จากนั้นฟังก์ชันจะ OPENJSON แยกวิเคราะห์ JSON นี้และแมปคุณสมบัติเหล่านี้เป็นคอลัมน์แยกต่างหากเพื่อให้การสืบค้นและวิเคราะห์ง่ายดาย
สคริปต์ตัวอย่างนี้จะแทรกค่าที่แยกออกมาเป็นคอลัมน์แยกต่างหากในตารางเป้าหมาย
INSERT INTO gold.hotel_reviews
SELECT sentiment, time_reported, problem
FROM hotel_reviews
CROSS APPLY
OPENJSON(
AI_EXTRACT(reviews_text, 'sentiment', 'time_reported', 'problem')
) WITH ( sentiment VARCHAR(1000), time_reported VARCHAR(100), problem VARCHAR(1000) );
ฟังก์ชันนี้ AI_EXTRACT ใช้กฎบริบทที่คลุมเครือเพื่อระบุและแยกหัวข้อออกจากข้อความโดยไม่ต้องแยกวิเคราะห์ด้วยตนเองหรือนิพจน์ทั่วไปที่ซับซ้อน วิธีการนี้ช่วยลดความยุ่งยากในการวิเคราะห์ข้อความโดยใช้ความเข้าใจเชิงความหมายที่ขับเคลื่อนด้วย AI แทนการจับคู่รูปแบบที่เข้มงวด ทําให้มีประสิทธิภาพมากขึ้นและปรับให้เข้ากับรูปแบบภาษาธรรมชาติ