Споделяне чрез


Използване на модели от AI Builder в Power Apps

С използването на Power Fx формули с малко код с отворен код можете да добавите по-мощни и гъвкави интеграции на AI модели във вашето Power App. Формулите за прогнозиране на AI модели могат да бъдат интегрирани с всякакви контроли в приложението за платно. Например можете да откриете езика на текста в контрола за въвеждане на текст и да изведете резултатите към контрола на етикета, както може да се види в раздела Използване на модел с контроли по-долу.

Изисквания

За да използвате Power Fx в AI Builder модели, трябва да имате:

Изберете модел в приложения за платно

За да използвате AI модел с Power Fx, ще трябва да създадете приложение за платно, да изберете контрола и да зададете изрази на свойствата на контролата.

Бележка

За списък с AI Builder модели, които можете да използвате, вижте AI модели и бизнес сценарии. Можете също така да използвате модели, вградени в Microsoft Azure машинно обучение с функцията за донесете свой собствен модел .

  1. Създаване на приложение. Повече информация: Създайте празно приложение за платно от нулата.

  2. Изберете Добавяне>на данни>AI модели.

    Екранна снимка на това как да изберете вашия модел.

  3. Изберете един или повече модели, които да добавите.

    Ако не виждате модела си в списъка, може да нямате разрешения за използването му Power Apps. Свържете се с администратора си, за да разрешите този проблем.

Използване на модел с контроли

Сега, след като добавихте AI модела към вашето приложение за платно, нека видим как да извикате AI Builder модел от контрола.

В следващия пример ще създадем приложение, което може да открие езика, въведен от потребител в приложението.

  1. Създаване на приложение. Повече информация: Създайте празно приложение за платно от нулата.

  2. Изберете Добавяне>на данни>AI модели.

  3. Потърсете и изберете Модел на AI за откриване на език.

    Екранна снимка на модела за откриване на език.

    Бележка

    Ще трябва ръчно да добавите модела към приложението отново в новата среда при преместване на приложението в различни среди.

  4. Изберете + от левия прозорец и след това изберете Контрола за въвеждане на текст.

  5. Повторете предишната стъпка, за да добавите контрола Текстов етикет .

  6. Преименувайте текстовия етикет на Език.

  7. Добавете друг текстов етикет до етикета "Език".

    Контроли на приложението, включително текст и двете контроли на етикета.

  8. Изберете текстовия етикет, добавен в предишната стъпка.

  9. Въведете следната формула в лентата за формули за свойството Текст на текстовия етикет.

    '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} }

Примери

Всеки модел се извиква с помощта на глагола predict. Например моделът за откриване на език приема текст като вход и връща таблица с възможни езици, подредени според резултата на този език. Резултатът показва колко уверен е моделът в своята прогноза.

Въвеждане Резултат
'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 } } ] }