AI Builder-modellen in Power Apps gebruiken
Met gebruik van Power Fx, de open-source low-code formules kunt u krachtigere en flexibelere integraties van AI-modellen toevoegen aan uw Power App. Voorspellingsformules van AI-modellen kunnen worden geïntegreerd met alle besturingselementen in de canvas-app. U kunt bijvoorbeeld de taal van tekst detecteren in een besturingselement voor tekstinvoer en de resultaten uitvoeren naar een labelbesturingselement, zoals te zien is in het gedeelte Een model met besturingselementen gebruiken hieronder.
Vereisten
Als u Power Fx in AI Builder-modellen wilt gebruiken, moet u:
Toegang hebben tot een Microsoft Power Platform-omgeving met een database.
AI Builder-licentie (proefversie of betaald). Ga voor meer informatie naar Licenties voor AI Builder.
Een model in canvas-apps selecteren
Als u een AI-model met Power Fx wilt gebruiken, moet u een canvas-app maken, een besturingselement kiezen en expressies aan eigenschappen van het besturingselement toewijzen.
Notitie
Zie voor een lijst met AI Builder-modellen die u kunt gebruiken AI-modellen en bedrijfsscenario's. U kunt ook modellen gebruiken die in Microsoft Azure Machine Learning zijn geïntegreerd met de functie Uw eigen AI-model meenemen.
Een app maken. Meer informatie: Een nieuwe lege canvas-app maken.
Selecteer Gegevens>Gegevens toevoegen>AI-modellen.
Selecteer een of meer modellen die u wilt toevoegen.
Als u uw model niet in de lijst ziet, hebt u mogelijk geen toestemming om het model in Power Apps te gebruiken. Neem contact op met uw beheerder om dit probleem op te lossen.
Een model met besturingselementen gebruiken
Nu u het AI-model aan uw canvas-app hebt toegevoegd, gaan we eens kijken hoe u een AI Builder-model vanuit een besturingselement kunt aanroepen.
In het volgende voorbeeld bouwen we een app die de taal kan detecteren die door een gebruiker in de app is ingevoerd.
Een app maken. Meer informatie: Een nieuwe lege canvas-app maken.
Selecteer Gegevens>Gegevens toevoegen>AI-modellen.
Zoek naar en selecteer Taaldetectie.
Notitie
U moet het model handmatig opnieuw toevoegen aan de app in de nieuwe omgeving bij het verplaatsen van de app in omgevingen.
Selecteer + in het linkerdeelvenster en selecteer vervolgens het besturingselement Tekstinvoer.
Herhaal de vorige stap om een Tekstlabel-besturingselement toe te voegen.
Wijzig de naam van het tekstlabel in Taal.
Voeg nog een tekstlabel toe naast het label 'Taal'.
Selecteer het tekstlabel dat is toegevoegd in de vorige stap.
Voer de volgende formule op de formulebalk in voor de eigenschap Tekst van het tekstlabel.
'Language detection'.Predict(TextInput1.Text).Language
Het label verandert in de taalcode op basis van uw landinstelling. Voor dit voorbeeld en (Engels).
Bekijk een voorbeeld van de app door de knop Afspelen in de rechterbovenhoek van het scherm te selecteren.
Voer
bonjour
in het tekstvak in. U ziet dat de taal voor de Franse taal (fr) onder het tekstvak verschijnt.Probeer op dezelfde manier tekst in een andere taal. Als u bijvoorbeeld
guten tag
invoert, verandert de gedetecteerde taal in de voor de Duitse taal.
Aanbevolen procedures
Probeer modelvoorspelling te activeren vanuit enkelvoudige acties zoals OnClick met een knop in plaats van de actie OnChange in een tekstinvoer om efficiënt gebruik van AI Builder-tegoeden te garanderen.
Om tijd en middelen te besparen, slaat u het resultaat van een modelaanroep op zodat u dit op meerdere plaatsen kunt gebruiken. U kunt uitvoer opslaan in een globale variabele. Nadat u het modelresultaat hebt opgeslagen, kunt u de taal ergens anders in uw app gebruiken, bijvoorbeeld om de geïdentificeerde taal en de betrouwbaarheidsscore in twee verschillende labels weer te geven.
Set(lang, 'Language detection'.Predict("bonjour").Language)
Invoer en uitvoer per modeltype
Deze sectie biedt invoer en uitvoer voor aangepaste en vooraf samengestelde modellen per modeltype.
Aangepaste modellen
Modeltype | Syntaxis | Uitvoer |
---|---|---|
Categorieclassificatie | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
Extractie van entiteiten | '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, }]} |
Objectdetectie | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
Vooraf samengestelde modellen
Notitie
Vooraf gemaakte modelnamen worden weergegeven in de landinstelling van uw omgeving. De volgende voorbeelden tonen de modelnamen voor de Engelse taal (en).
Modeltype | Syntaxis | Uitvoer |
---|---|---|
Visitekaartjeslezer | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
Categorieclassificatie | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
Lezer van identiteitsdocumenten | ‘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 }}}}} |
Factuurverwerking | ‘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 } } } }[] } }} |
Sleuteltermextractie | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
Taaldetectie | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
Verwerking van aankoopbewijzen | ‘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 } } } }[] } } } |
Gevoelsanalyse | '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 } }[]} |
Tekstherkenning | 'Text recognition'.Predict( Document: Base64 encoded image) |
{Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]} |
Vertalen van tekst | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
Voorbeelden
Elk model wordt aangeroepen met het werkwoord voorspellen. Een taaldetectiemodel neemt bijvoorbeeld tekst als invoer en retourneert een tabel met mogelijke talen, geordend op de score van die taal. De score geeft aan hoe betrouwbaar het model is met de voorspelling.
Invoer | Uitvoer |
---|---|
'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 } } ] } |