استخدام نماذج AI Builder في Power Apps
باستخدام Power Fx، الصيغ المنخفضة التعليمات البرمجية المفتوحة المصدر، يمكنك إضافة عمليات تكامل أكثر قوة ومرونة لنماذج الذكاء الاصطناعي في Power App. يمكن دمج صيغ التنبؤ لنموذج الذكاء الاصطناعي مع أي عناصر تحكم في تطبيق اللوحة. على سبيل المثال، يمكنك اكتشاف لغة نص في عنصر تحكم إدخال النص وإخراج النتائج إلى عنصر تحكم تسمية كما يمكن رؤيته في القسم أدناه استخدام نموذج مع عناصر تحكم.
لاستخدام نماذج Power Fx في AI Builder، يجب أن يكون لديك:
حق الوصول إلى بيئة Microsoft Power Platform مع قاعدة بيانات.
ترخيص AI Builder (إصدار تجريبي أو مدفوع). لمعرفة المزيد، انتقل إلى ترخيص AI Builder.
لاستخدام نموذج الذكاء الاصطناعي مع Power Fx، ستحتاج إلى إنشاء تطبيق لوحة، واختيار عنصر تحكم، وتعيين التعبيرات إلى خصائص عنصر التحكم.
ملاحظة
للحصول على قائمة بنماذج AI Builder التي يمكنك استهلاكها، راجع سيناريوهات الذكاء الاصطناعي والعمل. يمكنك أيضًا استهلاك النماذج المدمجة في التعلم الآلي من Microsoft Azure بواسطة ميزة إحضار نموذجك.
إنشاء تطبيق. مزيد من المعلومات: إنشاء تطبيق لوحة فارغ من البداية.
حدد البيانات>إضافة بيانات>نماذج الذكاء الاصطناعي.
حدد نموذجًا واحدًا أو أكثر لإضافته.
إذا لم يظهر نموذجك في القائمة، فهذا يعني أنك لا تلمك الأذونات لاستخدامه في Power Apps. يُرجى الاتصال بالمسؤول لحل هذه المشكلة.
الآن بعد أن أضفت نموذج الذكاء الاصطناعي إلى تطبيق اللوحة، سنرى كيفية استدعاء نموذج AI Builder من عنصر تحكم.
في المثال التالي، سنبني تطبيقًا يمكنه اكتشاف اللغة التي أدخلها أحد المستخدمين في التطبيق.
إنشاء تطبيق. مزيد من المعلومات: إنشاء تطبيق لوحة فارغ من البداية.
حدد البيانات>إضافة بيانات>نماذج الذكاء الاصطناعي.
ابحث عن نموذج الذكاء الاصطناعي اكتشاف اللغة وحدده.
ملاحظة
ستحتاج إلى إضافة النموذج يدويًا إلى التطبيق مرة أخرى في البيئة الجديدة عند نقل التطبيق عبر البيئات.
حدد + من الجزء الأيسر، ثم حدد عنصر تحكم إدخال النص.
كرر الخطوة السابقة لإضافة عنصر تحكم تسمية النص.
غيّر اسم تسمية النص إلى اللغة.
أضف تسمية نص أخرى بجوار تسمية "اللغة".
حدد تسمية النص المضافة في الخطوة السابقة.
أدخل الصيغة التالية في شريط الصيغة لخاصية النص الخاصة بتسمية النص.
'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 } } ] } |