Partajați prin


Utilizarea modelelor AI Builder în Power Apps

Cu ajutorul Power Fx formulelor open-source low-code, puteți adăuga integrări mai puternice și mai flexibile ale modelelor AI în Power App. Formulele predicție model AI pot fi integrate cu orice controale din aplicația pânză. De exemplu, puteți detecta limba textului într-un control de introducere a textului și puteți trimite rezultatele într-un control de etichetă, după cum se poate vedea în secțiunea Utilizarea unui 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 proiectate pe pânză

Pentru a consuma un model AI, va trebui să creați o aplicație proiectată pe Power Fx pânză, să alegeți un control și să atribuiți expresii proprietăților de control.

Notă

Pentru o listă de modele pe care le puteți consuma, consultați AI Builder Modele AI și scenarii deafaceri. De asemenea, puteți consuma modele încorporate Microsoft Azure învățare programată cu funcția bring your own model .

  1. Creați o aplicație. Informații suplimentare: Creați o aplicație pânză goală de la zero.

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

    Captură de ecran cu modul de selectare a modelului.

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

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

Utilizarea unui model cu comenzi

Acum că ați adăugat modelul AI la aplicația proiectată pe pânză, să vedem cum să apelați un AI Builder model dintr-un control.

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

  1. Creați o aplicație. Informații suplimentare: Creați o aplicație pânză goală de la zero.

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

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

    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 Control introducere text.

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

  6. Redenumiți eticheta text î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ă la pasul anterior.

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

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

    Eticheta se schimbă în codul de limbă în funcție de setările regionale. Pentru acest exemplu,en (English).

    Formula de limbă modifică textul etichetei.

  10. Previzualizați aplicația selectând butonul Redare 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 textul în altă limbă. De exemplu, introducerea guten tag schimbă limba detectată în de pentru limba germană.

Cele mai bune practici

  • Încercați să declanșați predicție modelului din acțiuni singulare, cum ar fi OnClick , utilizând un buton, mai degrabă decât acțiunea OnChange pe o intrare de text, 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 folosi limba în altă parte a aplicației pentru a afișa limba identificată și scorul său de încredere în două etichete diferite.

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

Intrări și ieșiri în funcție de tipul modelului

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

Modele particularizate

Tip 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 entităților '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).

Tip 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 }[] }[]}
Traducerea textului '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 cu 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 } } ] }

Consultați și