ใช้โมเดล AI Builder ใน Power Apps
ด้วยการใช้ Power Fx สูตรที่ใช้โค้ดน้อยแบบโอเพนซอร์ส คุณสามารถเพิ่มการผสานรวมของโมเดล AI ที่มีประสิทธิภาพและยืดหยุ่นยิ่งขึ้นลงใน Power App ของคุณได้ สูตรการคาดคะเนของโมเดล AI สามารถรวมเข้ากับตัวควบคุมใดๆ ในแอปพื้นที่ทำงาน ตัวอย่างเช่น คุณสามารถตรวจจับภาษาของข้อความในตัวควบคุม text input และส่งออกผลลัพธ์ไปยังตัวควบคุม label ดังที่เห็นในส่วน ใช้โมเดลกับตัวควบคุม ด้านล่าง
ข้อกำหนด
การใช้ Power Fx ในโมเดล AI Builder คุณต้องมี:
การเข้าถึงไปยัง สภาพแวดล้อม Microsoft Power Platform ที่มีฐานข้อมูล
สิทธิการใช้งาน AI Builder (แบบทดลองใช้หรือชำระเงิน) หากต้องการเรียนรู้เพิ่มเติม ไปที่ การให้สิทธิการใช้งาน AI Builder
เลือกโมเดลในแอปพื้นที่ทำงาน
ในการใช้โมเดล AI กับ Power Fx คุณจะต้องสร้างแอปพื้นที่ทำงาน เลือกตัวควบคุม และกำหนดนิพจน์ให้กับคุณสมบัติของตัวควบคุม
หมายเหตุ
สำหรับรายการของโมเดล AI Builder ที่คุณสามารถใช้ได้ ดูที่ โมเดล AI และสถานการณ์ทางธุรกิจ นอกจากนี้ คุณยังสามารถใช้โมเดลที่สร้างขึ้นใน Microsoft Azure Machine Learning กับคุณลักษณะ นำโมเดลของคุณมาเอง
สร้างแอป ข้อมูลเพิ่มเติม: สร้างแอปพื้นที่ทำงานว่างเปล่าตั้งแต่เริ่มต้น
เลือก ข้อมูล>เพิ่มข้อมูล>โมเดล AI
เลือกโมเดลอย่างน้อยหนึ่งรายการเพื่อเพิ่ม
หากคุณไม่เห็นโมเดลของคุณในรายการ คุณอาจไม่มีสิทธิ์ให้ใช้ใน Power Apps ติดต่อผู้ดูแลระบบของคุณเพื่อแก้ไขปัญหานี้
ใช้โมเดลกับตัวควบคุม
เมื่อคุณได้เพิ่มโมเดล AI ลงในแอปพื้นที่ทำงานแล้ว มาดูวิธีการเรียกโมเดล AI Builder จากตัวควบคุมกัน
ในตัวอย่างต่อไปนี้ เราจะสร้างแอปที่สามารถตรวจจับภาษาที่ผู้ใช้ป้อนในแอป
สร้างแอป ข้อมูลเพิ่มเติม: สร้างแอปพื้นที่ทำงานว่างเปล่าตั้งแต่เริ่มต้น
เลือก ข้อมูล>เพิ่มข้อมูล>โมเดล AI
ค้นหาและเลือกโมเดล AI สำหรับ การตรวจหาภาษา
หมายเหตุ
คุณจะต้องเพิ่มโมเดลไปยังแอปด้วยตนเองอีกครั้งในสภาพแวดล้อมใหม่เมื่อย้ายแอปข้ามสภาพแวดล้อม
เลือก + จากบานหน้าต่างด้านซ้าย และเลือกตัวควบคุม Text input
ทำซ้ำขั้นตอนก่อนหน้าเพื่อเพิ่มตัวควบคุม Text label
เปลี่ยนชื่อป้ายชื่อข้อความเป็น ภาษา
เพิ่มป้ายชื่อข้อความข้างป้ายชื่อ "ภาษา"
เลือกป้ายชื่อข้อความที่เพิ่มในขั้นตอนก่อนหน้า
ป้อนสูตรต่อไปนี้ในแถบสูตรสำหรับคุณสมบัติ Text ของป้ายชื่อข้อความ
'Language detection'.Predict(TextInput1.Text).Language
ป้ายชื่อจะเปลี่ยนเป็นรหัสภาษาตามสถานที่ตั้งของคุณ ตัวอย่างเช่น en (อังกฤษ)
แสดงตัวอย่างแอปโดยเลือกปุ่ม เล่น จากมุมบนขวาของหน้าจอ
ในกล่องข้อความ ให้ป้อน
bonjour
สังเกตว่าภาษาสำหรับภาษาฝรั่งเศส (fr) ปรากฏอยู่ใต้กล่องข้อความในทำนองเดียวกัน ให้ลองใช้ข้อความภาษาอื่น ตัวอย่างเช่น การป้อน
guten tag
จะเปลี่ยนภาษาที่ตรวจพบเป็น de สำหรับภาษาเยอรมัน
แนวทางปฏิบัติ
ลองทริกเกอร์การคาดคะเนของโมเดลจากการดำเนินการเดียว เช่น OnClick โดยใช้ปุ่มแทนการดำเนินการ OnChange กับการป้อนข้อความเพื่อให้แน่ใจว่ามีการใช้เครดิตของ AI Builder อย่างมีประสิทธิภาพ
เพื่อประหยัดเวลาและทรัพยากร ให้บันทึกผลลัพธ์ของการเรียกโมเดล เพื่อให้คุณสามารถใช้งานได้ในหลายที่ คุณสามารถบันทึกผลลัพธ์ลงในตัวแปรส่วนกลางได้ หลังจากที่คุณบันทึกผลลัพธ์ของโมเดลแล้ว คุณสามารถใช้ภาษาที่อื่นในแอปของคุณเพื่อแสดงภาษาที่ระบุและคะแนนความเชื่อมั่นในป้ายชื่อสองป้ายที่แตกต่างกัน
Set(lang, 'Language detection'.Predict("bonjour").Language)
อินพุทและเอาท์พุทตามชนิดโมเดล
ส่วนนี้ให้อินพุทและเอาท์พุทสำหรับโมเดลแบบกำหนดเองและที่สร้างไว้ล่วงหน้าตามชนิดโมเดล
โมเดลที่กำหนดเอง
ชนิดโมเดล | ไวยากรณ์ | เอาท์พุท |
---|---|---|
การจำแนกประเภท | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
การแยกเอนทิตี | 'Custom entity extraction model name’.Predict(Text: String,Language?:String(Optional)) |
{Entities:[{Type: "name",Value: "Bill", StartIndex: 22, Length: 4, Confidence: .996, }, { Type: "name", Value: "Gwen", StartIndex: 6, Length: 4, Confidence: .821, }]} |
การตรวจหาวัตถุ | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
โมเดลที่สร้างล่วงหน้า
หมายเหตุ
ชื่อโมเดลที่สร้างไว้ล่วงหน้าจะแสดงในภาษาของสภาพแวดล้อมของคุณ ตัวอย่างต่อไปนี้แสดงชื่อโมเดลสำหรับภาษาอังกฤษ (en)
ชนิดโมเดล | ไวยากรณ์ | เอาท์พุท |
---|---|---|
ตัวอ่านนามบัตร | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
การจำแนกการจัดประเภท | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
ตัวอ่านเอกสารข้อมูลประจำตัว | ‘Identity document reader’.Predict( Document: Base64 encoded image ) |
{ Context: { Type: String, TypeConfidence: Number }, Fields: { FieldName: { FieldType: "text", Confidence: Number, Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
การประมวลผลใบแจ้งหนี้ | ‘Invoice processing’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number,Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }, Tables: { Items: { Rows: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Key: { Name: String, }, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }[] } }} |
การแยกวลีสำคัญ | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
การตรวจหาภาษา | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
การประมวลผลใบเสร็จ | ‘Receipt processing’.Predict( Document: Base64 encoded image) |
{ Context: { Type: String, TypeConfidence: Number }, Fields: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }, Tables: {Items: {Rows: {FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Key: { Name: String, }, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }[] } } } |
การวิเคราะห์ความคิดเห็น | 'Sentiment analysis'.Predict( Text: String, Language?: Optional String ) |
{ Document: { AllSentiments: [ { Name: "Positive", Confidence: Number }, { Name: "Neutral", Confidence: Number }, { Name: "Negative", Confidence: Number } ], TopSentiment: { Name: "Positive" | "Neutral" | "Negative", Confidence: Number } } Sentences: { StartIndex: Number, Length: Number, AllSentiments: [ { Name: "Positive", Confidence: Number }, { Name: "Neutral", Confidence: Number }, { Name: "Negative", Confidence: Number } ], TopSentiment: { Name: "Positive" | "Neutral" | "Negative", Confidence: Number } }[]} |
การรู้จำข้อความ | 'Text recognition'.Predict( Document: Base64 encoded image) |
{Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]} |
การแปลข้อความ | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
ตัวอย่าง
โมเดลทั้งหมดจะถูกเรียกใช้โดยใช้การกระทำคาดคะเน ตัวอย่างเช่น โมเดลการตรวจหาภาษาใช้ข้อความเป็นอินพุตและส่งคืนตารางของภาษาที่เป็นไปได้ ซึ่งเรียงตามคะแนนของภาษานั้น คะแนนแสดงให้เห็นว่าโมเดลมีความมั่นใจเพียงใดกับการคาดคะเน
การป้อนข้อมูล | เอาท์พุท |
---|---|
'Language detection'.Predict("bonjour") |
{ Language: “fr”, Confidence: 1} |
‘Text Recognition’.Predict(Image1.Image) |
{ Pages: [ {Page: 1, Lines: [ { Text: "Contoso account", BoundingBox: { Left: .15, Top: .05, Width: .8, Height: .10 }, Confidence: .97 }, { Text: "Premium service", BoundingBox: { Left: .15, Top: .20, Width: .8, Height: .10 }, Confidence: .96 }, { Text: "Paid in full", BoundingBox: { Left: .15, Top: .35, Width: .8, Height: .10 }, Confidence: .99 } } ] } |