Korišćenje AI Builder modela u usluzi Power Apps
Korišćenjem Power Fx formula otvorenog koda sa nisko kodiranje, možete dodati moćnije i fleksibilnije integracije AI modela u vašu Pover App. Formule za predviđanje AI modela mogu se integrisati sa bilo kojim kontrolama u aplikaciji platna. Na primer, možete otkriti jezik teksta u kontroli unosa teksta i iznijeti rezultate u kontrolu oznake kao što se može videti u Odeljku Koristite model sa kontrolama ispod.
Zahtevi
Da biste koristili Power Fx u AI Builder modelima, morate imati:
Pristup Microsoft Power Platform okruženju sa bazom podataka.
AI Builder licenca (probna ili plaćena). Da biste saznali više, idite na AI Builder licenciranje.
Izaberite model u aplikacijama platna
Da biste konzumirali AI model Power Fx, moraćete da kreirate aplikaciju platna, izaberete kontrolu i dodelite izraze za kontrolne osobine.
Belešku
Za listu AI Builder modela koje možete konzumirati, pogledajte AI modeli i poslovni scenariji. Takođe možete konzumirati modele ugrađene u Microsoft Azure Mašinsko učenje sa funkcijom donesite svoj model .
Kreiranje aplikacije. Dodatne informacije: Kreirajte praznu aplikaciju platna od nule.
Izaberite podatke>Dodajte AI modele> podataka.
Izaberite jedan ili više modela za dodavanje.
Ako ne vidite svoj model na listi, možda nećete imati dozvole da ga koristite Power Apps. Obratite se svom administratoru da reši ovaj problem.
Koristite model sa kontrolama
Sada kada ste dodali AI model u aplikaciju platna, da vidimo kako da pozovete AI Builder model iz kontrole.
U sledećem primeru ćemo izgraditi aplikaciju koja može da otkrije jezik koji je korisnik unio u aplikaciju.
Kreiranje aplikacije. Dodatne informacije: Kreirajte praznu aplikaciju platna od nule.
Izaberite podatke>Dodajte AI modele> podataka.
Potražite i izaberite AI model za otkrivanje jezika.
Belešku
Moraćete da ručno dodate model u aplikaciju ponovo u novom okruženju nakon premeštanja aplikacije preko okruženja.
Izaberite + iz levog okna, a zatim izaberite Kontrola unosa teksta.
Ponovite prethodni korak da biste dodali kontrolu tekstualne oznake .
Preimenujte tekstualnu oznaku u Jezik.
Dodajte još jednu tekstualnu oznaku pored oznake "Jezik".
Izaberite tekstualnu oznaku dodatu u prethodnom koraku.
Unesite sledeću formulu u traci formule za tekstualnu oznaku Tekst osobina.
'Language detection'.Predict(TextInput1.Text).Language
Oznaka se menja u kod jezika na osnovu vašeg jezika. Za ovaj primer, sr (engleski).
Verzija za pregled aplikacije tako što ćete izabrati Dugme za reprodukciju u gornjem desnom uglu ekrana.
U polje za tekst unesite
bonjour
. Obratite pažnju da se jezik za francuski jezik (fr) pojavljuje ispod tekstualnog okvira.Slično tome, probajte tekst na drugom jeziku. Na primer, unos
guten tag
menja otkriveni jezik u de za nemački jezik.
Najbolji primeri iz prakse
Pokušajte da pokrenete predviđanje modela iz pojedinačnih akcija kao što je OnClick pomoću dugmeta, a ne akcije OnChange na tekstualnom unosu kako biste osigurali efikasno korišćenje kredita AI Builder .
Da biste uštedeli vreme i resurse, sačuvajte rezultat poziva modela tako da možete da ga koristite na više mesta. Možete sačuvati izlaz u globalnu promenljivu. Nakon što sačuvate rezultat modela, možete koristiti jezik na drugom mestu u vašoj aplikaciji da biste prikazali identifikovani jezik i njegovu ocenu pouzdanosti u dve različite oznake.
Set(lang, 'Language detection'.Predict("bonjour").Language)
Ulaz i izlaz po tipu modela
Ovaj odeljak pruža ulaze i izlaze za prilagođene i unapred izgrađene modele po tipu modela.
Prilagođeni modeli
Tip modela | Sintaksa | Izlaz |
---|---|---|
Klasifikacija kategorija | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
Izdvajanje entiteta | '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, }]} |
Prepoznavanje objekata | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
Unapred izgrađeni modeli
Belešku
Unapred izgrađena imena modela su prikazana u lokalu vašeg okruženja. Sledeći primeri prikazuju imena modela za engleski jezik (sr).
Tip modela | Sintaksa | Izlaz |
---|---|---|
Čitač vizitkarti | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
Klasifikacija kategorija | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
Čitač ličnih dokumenata | ‘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 }}}}} |
Obrada faktura | ‘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 } } } }[] } }} |
Izdvajanje ključnih fraza | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
Otkrivanje jezika | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
Obrada priznanica | ‘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 } } } }[] } } } |
Analiza raspoloženja | '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 } }[]} |
Prepoznavanje teksta | 'Text recognition'.Predict( Document: Base64 encoded image) |
{Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]} |
Prevod teksta | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
Primeri
Svaki model se poziva pomoću glagola predviđanja. Na primer, model detekcije jezika uzima tekst kao ulaz i vraća tabelu mogućih jezika, poredanih po rezultatu tog jezika. Rezultat pokazuje koliko je model siguran u svoje predviđanje.
Ulaz | Izlaz |
---|---|
'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 } } ] } |