Använda AI Builder-modeller i Power Apps
Med hjälp av Power Fx lågkodsformel med öppen källkod kan du lägga till kraftfullare och flexiblare integreringar av AI-modeller i Power App. Prediktionsformler med AI-modeller kan integreras med alla kontroller i arbetsyteappen. Du kan till exempel identifiera språket i texten i en textinmatningskontroll och mata ut resultatet till en etikettkontroll, vilket du kan se i avsnittet Använd en modell med kontroller nedan.
Behov
För att kunna använda Power Fx i AI Builder-modeller måste du ha:
Åtkomst till en Microsoft Power Platform-miljö med en databas.
AI Builder licens (provversion eller betald). Mer information finns i AI Builder-licensiering.
Välja en modell i arbetsyteappar
För att kunna använda en AI-modell med Power Fx måste du skapa en arbetsyteapp, välja en kontroll och tilldela uttryck till kontrollegenskaperna.
Kommentar
En lista med AI Builder-modeller som du kan använda finns på AI-modeller och affärsscenarier. Du kan också använda modeller som är byggda i Microsoft Azure Machine Learning med funktionen ta med din egen modell.
Skapa en app. Mer information: Skapa en tom arbetsyteapp från grunden.
Välj Data>Lägg till data>AI-modeller.
Välj en eller flera modeller som ska läggas till.
Om modellen inte visas i den här listan kanske du inte har behörighet att använda den i Power Apps. Kontakta administratören för att åtgärda problemet.
Använda i en modell i kontroller
Nu när du har lagt till AI-modellen i arbetsyteappen ser du hur du anropar en AI Builder-modell från en kontroll.
I följande exempel bygger vi en app som kan identifiera språket som användaren har angett i appen.
Skapa en app. Mer information: Skapa en tom arbetsyteapp från grunden.
Välj Data>Lägg till data>AI-modeller.
Sök efter och välj en AI-modell för språkidentifiering.
Kommentar
Du måste manuellt lägga till modellen i appen igen i den nya miljön när du flyttar appen mellan miljöer.
Välj + i det vänstra fönstret och välj kontrollen Textinmatning.
Upprepa föregående steg om du vill lägga till en kontroll för textetikett.
Byt namn på textetiketten till Språk.
Lägg till en annan textetikett bredvid etiketten Språk.
Välj textetiketten som lades till i föregående steg.
Ange följande formel i formelfältet för textetikettens egenskap Text.
'Language detection'.Predict(TextInput1.Text).Language
Etiketten ändras till språkkoden baserat på språkspråket. I detta exempel en (engelska).
Förhandsgranska appen genom att välja knappen Spela upp längst upp till höger på skärmen.
Ange i textrutan
bonjour
. Observera att språket för franska språket (fr) visas nedanför textrutan.På samma sätt kan du prova annan språktext. Du kan till exempel ange
guten tag
ändringar i det identifierade språket till de för tyska.
Regelverk
Prova att utlösa prediktion från åtgärder som OnClick med en knapp i stället för OnChange-åtgärden i en textinmatning för att säkerställa en effektiv användning av AI Builder-krediter.
Spara tid och resurser genom att spara resultatet av ett modellanrop så att du kan använda det på flera platser. Du kan spara utdata i en global variabel. När du har sparat modellresultatet kan du använda språket i andra delar av appen för att visa det identifierade språket och dess konfidenspoäng på två olika etiketter.
Set(lang, 'Language detection'.Predict("bonjour").Language)
Indata och utdata efter modelltyp
Det här avsnittet innehåller indata och utdata för anpassade och färdiga modeller efter modelltyp.
Anpassade modeller
Modelltyp | Syntax | Utdata |
---|---|---|
Kategoriklassificering | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
Entitetsextrahering | '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, }]} |
Objektidentifiering | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
Inbyggda modeller
Kommentar
Fördefinierade modellnamn visas i miljöns språkmiljöer. I följande exempel visas modellnamnen för engelska (en).
Modelltyp | Syntax | Utdata |
---|---|---|
Visitkortsläsare | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
Kategoriklassificering | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
ID-handlingsläsare | ‘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 }}}}} |
Fakturabearbetning | ‘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 } } } }[] } }} |
Extrahering av diskussionsämne | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
Språkidentifiering | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
Kvittobearbetning | ‘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 } } } }[] } } } |
Sentimentanalys | '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 } }[]} |
Textidentifiering | '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översättning | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
Exempel
Alla modeller anropas med verbet förutse. En språkidentifieringsmodell använder till exempel text som indata och returnerar en tabell med möjliga språk, sorterade efter språkets poäng. Poängen visar hur säker modellen är på sin prediktion.
Indata | Utdata |
---|---|
'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 } } ] } |