Bruge AI Builder-modeller i Power Apps
Med brugen af Power Fx, formlerne med åben kildekode og lav kode, kan du tilføje mere effektive og fleksible integrationer af AI-modeller i din Power App. Formler for AI-modellen til forudsigelse kan integreres med alle kontrolelementer i en lærredapp. Du kan f.eks. registrere sproget for tekst i et tekstinputkontrolelement og udskrive resultaterne til et etiketkontrolelement, som det kan ses i afsnittet Bruge en model med kontrolelementer nedenfor.
For at kunne bruge Power Fx i AI Builder-modeller, skal du have:
Adgang til et Microsoft Power Platform-miljø med en database.
AI Builder-licens (prøve eller betalt). Få mere at vide ved at gå til AI Builder-licenser.
Hvis du vil bruge en AI-model med Power Fx, skal du oprette en lærredapp, vælge et kontrolelement og tildele udtryk for at styre egenskaber.
Bemærk
Du kan se en liste over AI Builder-modeller, du kan forbruge, ved at gå til AI-modeller og forretningsscenarier. Du kan også bruge indbyggede modeller i Microsoft Azure Machine Learning med funktionen Bring Your Own Model.
Opret en app. Flere oplysninger: Oprette en tom lærredapp fra bunden.
Vælg Data>Tilføj data>AI-modeller.
Vælg en eller flere modeller, der skal tilføjes.
Hvis du ikke kan se modellen på listen, har du muligvis ikke tilladelse til at bruge den i Power Apps. Kontakt administratoren for at få løse dette problem.
Nu, hvor du har føjet AI-modellen til din lærredapp, kan du se, hvordan du kalder en AI Builder-model fra et kontrolelement.
I følgende eksempel bygger vi en app, der kan registrere det sprog, en bruger har angivet i appen.
Opret en app. Flere oplysninger: Oprette en tom lærredapp fra bunden.
Vælg Data>Tilføj data>AI-modeller.
Søg efter og vælg AI-modellen Sprogregistrering.
Bemærk
Du skal manuelt føje modellen til appen igen i det nye miljø, når du har flyttet app på tværs af miljøer.
I venstre rude skal du vælge + og derefter kontrolelementet Tekstinput.
Gentag det forrige trin for at tilføje et kontrolelement af typen Tekstetiket.
Omdøb tekstetiketten til Sprog.
Tilføj en anden tekstetiket ud for etiketten "Sprog".
Vælg den tekstetiket, der er tilføjet i forrige trin.
Angiv følgende formel i formellinjen for tekstetikettens egenskab Tekst.
'Language detection'.Predict(TextInput1.Text).Language
Etiketten ændres til den sprogkode, der er baseret på din landestandard. I dette eksempel er det en (engelsk).
Gennemse appen ved at vælge knappen Afspil i øverste højre hjørne af skærmen.
Angiv
bonjour
i tekstfeltet. Bemærk, at sproget for det franske sprog (fr) vises under tekstfeltet.På samme måde kan du prøve en anden sprogtekst. Hvis du f.eks. skriver
guten tag
, ændres det registrerede sprog til de for det tyske sprog.
Prøv at udløse modelforudsigelse fra entalshandlinger, f.eks. OnClick, ved hjælp af en knap i stedet for handlingen OnChange for et tekstinput for at sikre en effektiv brug af AI Builder-kreditter.
Du kan spare tid og ressourcer ved at gemme resultatet af et modelopkald, så du kan bruge det flere steder. Du kan gemme et output i en global variabel. Når du har gemt modellens resultat, kan du bruge sproget andre steder i appen, f.eks. til at vise det identificerede sprog og dens konfidensscore i to forskellige etiketter.
Set(lang, 'Language detection'.Predict("bonjour").Language)
Dette afsnit indeholder input og output til brugerdefinerede og forudindstillede modeller efter modeltype.
Modeltype | Syntaks | Output |
---|---|---|
Kategoriklassifikation | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
Udtrækning af objekt | '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, }]} |
Objektregistrering | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
Bemærk
Forudbyggede modelnavne vises i landestandarden for dit miljø. I følgende eksempler vises modelnavnene for engelsk (en).
Modeltype | Syntaks | Output |
---|---|---|
Visitkortlæser | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
Kategoriklassifikation | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
Læser til identitetsdokument | ‘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 }}}}} |
Fakturabehandling | ‘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 } } } }[] } }} |
Udtrækning af nøgleudtryk | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
Sprogregistrering | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
Behandling af kvittering | ‘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 } } } }[] } } } |
Synspunktsanalyse | '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 } }[]} |
Tekstbesked | 'Text recognition'.Predict( Document: Base64 encoded image) |
{Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]} |
Tekstoversættelse | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
Alle modeller aktiveres ved hjælp af forudsigelsesverbet. En model til registrering af sprog tager f.eks. tekst som et input og returnerer en tabel over mulige sprog, sorteret efter det pågældende sprogs resultat. Resultatet indikerer, hvor selvsikker modellen er med sin forudsigelse.
Input | Output |
---|---|
'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 } } ] } |