AI Builder-Modelle in Power Apps verwenden

Mit Hilfe von Power Fx, den Open-Source-Low-Code-Formeln, können Sie Ihrer Power App leistungsfähigere und flexiblere Integrationen von KI-Modellen hinzufügen. Formeln der KI-Modell-Vorhersage können in beliebige Steuerelemente in der Canvas-App integriert werden. Beispielsweise können Sie die Sprache des Texts in einem Texteingabesteuerelement erkennen und die Ergebnisse an ein Beschriftungssteuerelement ausgeben, wie im Abschnitt Ein Modell mit Steuerelementen verwenden unten zu sehen ist.

Anforderungen

Um Power Fx in AI Builder-Modellen zu verwenden, benötigen Sie:

Ein Modell in Canvas Apps auswählen

Um ein KI-Modell mit Power Fx zu konsumieren, müssen Sie eine Canvas-App erstellen, ein Steuerelement auswählen und den Steuerelementeigenschaften Ausdrücke zuweisen.

Notiz

Eine Liste der AI Builder-Modelle, die Sie verwenden können, finden Sie unter KI-Modelle und Geschäftsszenarien. Mit der Funktion Eigenes Modell verwenden können Sie auch Modelle verwenden, die in Microsoft Azure Machine Learning erstellt wurden.

  1. App erstellen Mehr Informationen: Erstellen Sie eine Canvas App ohne Vorlage.

  2. Wählen Sie Daten>Daten hinzufügen>KI-Modelle.

    Screenshot zur Auswahl Ihres Modells

  3. Wählen Sie ein oder mehrere Modelle aus, die Sie hinzufügen möchten.

    Wenn Sie Ihr Modell nicht in der Liste sehen, haben Sie möglicherweise keine Berechtigung, es in Power Apps zu verwenden. Wenden Sie sich an Ihren Administrator, um dieses Problem zu lösen.

Ein Modell mit Steuerelementen verwenden

Nachdem Sie Ihrer Canvas-App nun das KI-Modell hinzugefügt haben, sehen wir uns an, wie Sie ein AI Builder-Modell über ein Steuerelement aufrufen.

Im folgenden Beispiel erstellen wir eine App, die die von einem Benutzer in der App eingegebene Sprache erkennen kann.

  1. App erstellen Mehr Informationen: Erstellen Sie eine Canvas App ohne Vorlage.

  2. Wählen Sie Daten>Daten hinzufügen>KI-Modelle.

  3. Suchen Sie das Spracherkennung-KI-Modell und wählen Sie es aus.

    Screenshot des Sprachenerkennungsmodells.

    Notiz

    Wenn Sie die App in Umgebungen verschieben, müssen Sie das Modell in der neuen Umgebung manuell wieder zur App hinzufügen.

  4. Wählen Sie im linken Bereich + und dann das Steuerelement Texteingabe aus.

  5. Wiederholen Sie den vorherigen Schritt, um ein Beschriftung-Steuerelement hinzufügen.

  6. Benennen Sie das Text Label in Language um.

  7. Fügen Sie neben der Beschriftung „Sprache“ eine weitere Beschriftung hinzu.

    App-Steuerelemente einschließlich Text und beiden Beschriftungssteuerelementen.

  8. Wählen Sie die im vorherigen Schritt hinzugefügte Beschriftung aus.

  9. Geben Sie die folgende Formel in der Formelleiste für die Eigenschaft Text der Beschriftung ein.

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

    Die Beschriftung ändert sich in den Sprachcode basierend auf Ihrem Gebietsschema. Für dieses Beispiel en (Englisch).

    Die Sprachformel ändert den Beschriftungstext.

  10. Wählen Sie die Schaltfläche Wiedergabe in der oberen rechten Ecke des Bildschirms aus, um eine Vorschau der App anzuzeigen.

    Vorschau der App.

  11. Geben Sie im Textfeld bonjour ein. Beachten Sie, dass die Sprache für Frankreich (fr) unterhalb des Textfeldes erscheint.

    Beispiel für die Erkennung der französischen Sprache.

  12. Probieren Sie in ähnlicher Weise Text in einer anderen Sprache aus. Wenn Sie zum Beispiel guten tag eingeben, wird die erkannte Sprache in de für deutsche Sprache geändert.

Best Practices

  • Versuchen Sie, die Modellvorhersage durch einzelne Aktionen auszulösen wie z. B. OnClick mit einer Schaltfläche statt der OnChange-Aktion auf eine Texteingabe, um eine effiziente Nutzung der AI Builder-Kredite zu gewährleisten.

  • Um Zeit und Ressourcen zu sparen, speichern Sie das Ergebnis eines Modellaufrufs, damit Sie es an mehreren Stellen verwenden können. Sie können eine Ausgabe in einer globalen Variablen speichern. Nachdem Sie das Modellergebnis gespeichert haben, können Sie die Sprache an anderer Stelle in Ihrer App verwenden, um die identifizierte Sprache und ihre Konfidenzbewertung in zwei verschiedenen Beschriftungen anzuzeigen.

    Set(lang, 'Language detection'.Predict("bonjour").Language)
    

Eingabe und Ausgabe nach Modelltyp

Dieser Abschnitt enthält Eingaben und Ausgaben für angepasste und vorgefertigte Modelle nach Modelltyp.

Benutzerdefinierte Modelle

Modelltyp Syntax Ausgabe
Klassifizierung von Kategorien 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Extraktion von Entitäten '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, }]}
Objekt-Erkennung 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Vordefinierte Modelle

Anmerkung

Vordefinierte Modellnamen werden im Gebietsschema Ihrer Umgebung angezeigt. Die folgenden Beispiele zeigen die Modellnamen für die englische Sprache (en).

Modelltyp Syntax Ausgabe
Visitenkartenleser ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Klassifizierung von Kategorien 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Identitätsbeleg-Leser ‘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 }}}}}
Verarbeitung von Rechnungen ‘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 } } } }[] } }}
Extraktion von Schlüsselwörtern 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Spracherkennung 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Empfangsverarbeitung ‘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-Analyse '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 } }[]}
Texterkennung '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übersetzung 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Beispiele

Jedes Modell wird mit dem Vorhersage-Verb aufgerufen. Ein Beispiel: Ein Spracherkennungsmodell nimmt einen Text als Eingabe und gibt eine Tabelle mit möglichen Sprachen zurück, geordnet nach der Bewertung dieser Sprache. Die Bewertung zeigt an, wie sicher das Modell mit seiner Vorhersage ist.

Eingabe Ausgabe
'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 } } ] }

Siehe auch