Partajați prin


Utilizarea modelelor AI Builder în Power Apps

Cu ajutorul Power Fx, formulele open source cu cod redus, puteți adăuga integrări mai puternice și mai flexibile ale modelelor AI în aplicația dvs. Power. Formulele modelului AI predicție pot fi integrate cu orice comenzi din aplicație creată pe planșă. De exemplu, puteți detecta limba textului într-un control de introducere a textului și puteți scoate rezultatele într-un control etichetă, așa cum se poate vedea în secțiunea Utilizați un model cu controale de mai jos.

Cerințe

Pentru a utiliza Power Fx în AI Builder modele, trebuie să aveți:

Selectați un model în aplicațiile planșă de lucru

Pentru a utiliza un model AI cu Power Fx, va trebui să creați un aplicație creată pe planșă, să alegeți un control și să atribuiți expresii proprietăților controlului.

Notă

Pentru o listă de AI Builder modele pe care le puteți consuma, consultați Modele AI și scenarii de afaceri. De asemenea, puteți utiliza modele încorporate în Microsoft Azure învățare programată cu funcția aduceți propriul model .

  1. Creați o aplicație. Mai multe informații: Creați un aplicație creată pe planșă necompletat de la zero.

  2. Selectați Date>Adăugați date>Modele AI.

    Captură de ecran despre cum să vă selectați modelul.

  3. Selectați unul sau mai multe modele de adăugat.

    Dacă nu vedeți modelul dvs. în listă, este posibil să nu aveți permisiunea de a-l folosi în Power Apps. Contactați administratorul pentru a rezolva această problemă.

Utilizați un model cu comenzi

Acum că ați adăugat modelul AI la aplicație creată pe planșă dvs., să vedem cum să apelați un AI Builder model dintr-un control.

În exemplul următor, vom construi o aplicație care poate detecta limba introdusă de un utilizator în aplicație.

  1. Creați o aplicație. Mai multe informații: Creați un aplicație creată pe planșă necompletat de la zero.

  2. Selectați Date>Adăugați date>Modele AI.

  3. Căutați și selectați Modelul de detectare a limbii AI.

    Captură de ecran a modelului de detectare a limbii.

    Notă

    Va trebui să adăugați manual modelul la aplicație din nou în noul mediu la mutarea aplicației în medii.

  4. Selectați + din panoul din stânga, apoi selectați Introducere text control.

  5. Repetați pas anterior pentru a adăuga un control Etichetă text .

  6. Redenumiți eticheta textului în Limbă.

  7. Adăugați o altă etichetă text lângă eticheta „Limbă”.

    Comenzi pentru aplicații, inclusiv text și ambele comenzi pentru etichete.

  8. Selectați eticheta text adăugată în pas precedent.

  9. Introduceți următoarea formulă în bara de formule pentru proprietatea Text a etichetei de text.

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

    Eticheta se schimbă în codul de limbă în funcție de localitatea dvs. Pentru acest exemplu, en (engleză).

    Formula de limbă modifică textul etichetei.

  10. Versiune preliminară aplicația selectând butonul Reda din colțul din dreapta sus al ecranului.

    Previzualizarea aplicației.

  11. În caseta text, introduceți bonjour. Observați că limba pentru limba franceză (fr) apare sub caseta de text.

    Exemplu de detectare a limbii franceze.

  12. În mod similar, încercați un text în altă limbă. De exemplu, introducerea guten tag se schimbă limba detectată în de pentru limba germană.

Cele mai bune practici

  • Încercați să declanșați modelul predicție din acțiuni singulare, cum ar fi OnClick folosirea unui buton în loc de acțiunea OnChange pe un text intrare pentru a asigura utilizarea eficientă a AI Builder creditelor.

  • Pentru a economisi timp și resurse, salvați rezultatul unui apel model, astfel încât să îl puteți utiliza în mai multe locuri. Puteți salva o ieșire într-o variabilă globală. După ce salvați rezultatul modelului, puteți utiliza limba în altă parte a aplicației pentru a afișa limba identificată și scor de încredere în două etichete diferite.

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

Intrare și ieșire în funcție de tipul de model

Această secțiune oferă intrări și ieșiri pentru modele personalizate și prefabricate în funcție de tipul de model.

Modele particularizate

Tipul de model Sintaxă Ieșire
Clasificarea categoriilor 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Extragerea de entități '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, }]}
Detectarea obiectelor 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Modele prefabricate

Notă

Numele modelelor prefabricate sunt afișate în localitatea mediului dumneavoastră. Următoarele exemple arată numele modelului pentru limba engleză (en).

Tipul de model Sintaxă Ieșire
Cititor de cărți de vizită ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Clasificarea categoriilor 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Cititor de documente de identitate ‘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 }}}}}
Procesarea facturilor ‘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 } } } }[] } }}
Extragerea expresiilor cheie 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Detectarea limbii 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Procesarea chitanțelor ‘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 } } } }[] } } }
Analiză sentimente '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 } }[]}
Recunoașterea textului 'Text recognition'.Predict( Document: Base64 encoded image) {Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]}
Traducere de text 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Exemple

Fiecare model este invocat folosind verbul predict. De exemplu, un model de detectare a limbii ia text ca intrare și returnează un tabel de limbi posibile, ordonate după scorul limbii respective. Scorul indică cât de încrezător este modelul cu predicție.

Intrare Ieșire
'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 } } ] }