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

С использованием Power Fx, формул с малым объемом кода с открытым исходным кодом, вы можете добавить более мощную и гибкую интеграцию моделей ИИ в свое приложение Power App. Формулы прогноза модели ИИ можно интегрировать с любыми элементами управления в приложении на основе холста. Например, вы можете определить язык текста в элементе управления text input и вывести результаты в элемент управления label, как показано в разделе Использование модели с элементами управления ниже.

Требования

Чтобы использовать Power Fx в моделях AI Builder, у вас должно быть следующее:

Выберите модель в приложениях на основе холста

Чтобы использовать модель ИИ с Power Fx, вам необходимо создать приложение на основе холста, выбрать элемент управления и назначить выражения для свойств элемента управления.

Заметка

Список моделей AI Builder, которые вы можете использовать, см. в разделе Модели ИИ и бизнес-сценарии. Вы также можете использовать модели, встроенные машинное обучение Microsoft Azure, с функцией Использовать свою собственную модель.

  1. Создание приложения. Дополнительные сведения: Создание пустого приложения на основе холста с нуля.

  2. Выберите Данные>Добавить данные>Модели ИИ.

    Снимок экрана, как выбрать вашу модель.

  3. Выберите одну или несколько моделей для добавления.

    Если вы не видите свою модель в списке, возможно, у вас нет прав на ее использование в Power Apps. Обратитесь к администратору, чтобы решить эту проблему.

Использование модели с элементами управления

Теперь, когда вы добавили модель ИИ в свое приложение на основе холста, давайте посмотрим, как вызвать модель AI Builder из элемента управления.

В следующем примере мы создадим приложение, которое может определять язык, введенный пользователем в приложении.

  1. Создание приложения. Дополнительные сведения: Создание пустого приложения на основе холста с нуля.

  2. Выберите Данные>Добавить данные>Модели ИИ.

  3. Найдите и выберите модель ИИ Определение языка.

    Снимок экрана модели распознавания языка.

    Заметка

    Вам придется вручную снова добавить модель в приложение в новой среде после перемещения приложения между средами.

  4. В левой области выберите +, затем выберите элемент управления Text input.

  5. Повторите предыдущий шаг, чтобы добавить элемент управления Text label.

  6. Переименуйте текстовую метку в Язык.

  7. Добавьте еще одну текстовую метку рядом с меткой «Язык».

    Элементы управления приложени, включая текст и оба элемента управления label.

  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 ‘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 } } ] }

См. также