ใช้โมเดล AI Builder ใน Power Apps

ด้วยการใช้ Power Fx สูตรที่ใช้โค้ดน้อยแบบโอเพนซอร์ส คุณสามารถเพิ่มการผสานรวมของโมเดล AI ที่มีประสิทธิภาพและยืดหยุ่นยิ่งขึ้นลงใน Power App ของคุณได้ สูตรการคาดคะเนของโมเดล AI สามารถรวมเข้ากับตัวควบคุมใดๆ ในแอปพื้นที่ทำงาน ตัวอย่างเช่น คุณสามารถตรวจจับภาษาของข้อความในตัวควบคุม text input และส่งออกผลลัพธ์ไปยังตัวควบคุม label ดังที่เห็นในส่วน ใช้โมเดลกับตัวควบคุม ด้านล่าง

ข้อกำหนด

การใช้ Power Fx ในโมเดล AI Builder คุณต้องมี:

เลือกโมเดลในแอปพื้นที่ทำงาน

ในการใช้โมเดล AI กับ Power Fx คุณจะต้องสร้างแอปพื้นที่ทำงาน เลือกตัวควบคุม และกำหนดนิพจน์ให้กับคุณสมบัติของตัวควบคุม

หมายเหตุ

สำหรับรายการของโมเดล AI Builder ที่คุณสามารถใช้ได้ ดูที่ โมเดล AI และสถานการณ์ทางธุรกิจ นอกจากนี้ คุณยังสามารถใช้โมเดลที่สร้างขึ้นใน Microsoft Azure Machine Learning กับคุณลักษณะ นำโมเดลของคุณมาเอง

  1. สร้างแอป ข้อมูลเพิ่มเติม: สร้างแอปพื้นที่ทำงานว่างเปล่าตั้งแต่เริ่มต้น

  2. เลือก ข้อมูล>เพิ่มข้อมูล>โมเดล AI

    ภาพหน้าจอของวิธีการเลือกโมเดลของคุณ

  3. เลือกโมเดลอย่างน้อยหนึ่งรายการเพื่อเพิ่ม

    หากคุณไม่เห็นโมเดลของคุณในรายการ คุณอาจไม่มีสิทธิ์ให้ใช้ใน Power Apps ติดต่อผู้ดูแลระบบของคุณเพื่อแก้ไขปัญหานี้

ใช้โมเดลกับตัวควบคุม

เมื่อคุณได้เพิ่มโมเดล AI ลงในแอปพื้นที่ทำงานแล้ว มาดูวิธีการเรียกโมเดล AI Builder จากตัวควบคุมกัน

ในตัวอย่างต่อไปนี้ เราจะสร้างแอปที่สามารถตรวจจับภาษาที่ผู้ใช้ป้อนในแอป

  1. สร้างแอป ข้อมูลเพิ่มเติม: สร้างแอปพื้นที่ทำงานว่างเปล่าตั้งแต่เริ่มต้น

  2. เลือก ข้อมูล>เพิ่มข้อมูล>โมเดล AI

  3. ค้นหาและเลือกโมเดล AI สำหรับ การตรวจหาภาษา

    ภาพหน้าจอของโมเดลการตรวจหาภาษา

    หมายเหตุ

    คุณจะต้องเพิ่มโมเดลไปยังแอปด้วยตนเองอีกครั้งในสภาพแวดล้อมใหม่เมื่อย้ายแอปข้ามสภาพแวดล้อม

  4. เลือก + จากบานหน้าต่างด้านซ้าย และเลือกตัวควบคุม Text input

  5. ทำซ้ำขั้นตอนก่อนหน้าเพื่อเพิ่มตัวควบคุม Text label

  6. เปลี่ยนชื่อป้ายชื่อข้อความเป็น ภาษา

  7. เพิ่มป้ายชื่อข้อความข้างป้ายชื่อ "ภาษา"

    ตัวควบคุมของแอปรวมถึงตัวควบคุม text และ label ทั้งคู่

  8. เลือกป้ายชื่อข้อความที่เพิ่มในขั้นตอนก่อนหน้า

  9. ป้อนสูตรต่อไปนี้ในแถบสูตรสำหรับคุณสมบัติ Text ของป้ายชื่อข้อความ

    'Language detection'.Predict(TextInput1.Text).Language
    

    ป้ายชื่อจะเปลี่ยนเป็นรหัสภาษาตามสถานที่ตั้งของคุณ ตัวอย่างเช่น en (อังกฤษ)

    สูตรภาษาเปลี่ยนข้อความป้ายชื่อ

  10. แสดงตัวอย่างแอปโดยเลือกปุ่ม เล่น จากมุมบนขวาของหน้าจอ

    แสดงตัวอย่างแอป

  11. ในกล่องข้อความ ให้ป้อน bonjour สังเกตว่าภาษาสำหรับภาษาฝรั่งเศส (fr) ปรากฏอยู่ใต้กล่องข้อความ

    ตัวอย่างของการตรวจหาภาษาฝรั่งเศส

  12. ในทำนองเดียวกัน ให้ลองใช้ข้อความภาษาอื่น ตัวอย่างเช่น การป้อน 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 } } ] }

ดูเพิ่มเติม