Comparteix a través de


Utilitzar AI Builder models en Power Apps

Amb l'ús de les fórmules de codi baix de codi obert, podeu afegir integracions més potents i flexibles de Power Fx models d'IA al Power App. Les fórmules predicció del model d'IA es poden integrar amb qualsevol control de l'aplicació del llenç. Per exemple, podeu detectar l'idioma del text en un control d'entrada de text i emetre els resultats a un control d'etiqueta com es pot veure a la secció Utilitza un model amb controls de més avall.

Requisits

Per utilitzar-lo Power Fx en AI Builder models, heu de tenir:

Seleccionar un model a les aplicacions del llenç

Per consumir un model d'IA Power Fx, haureu de crear una aplicació de llenç, triar un control i assignar expressions per controlar les propietats.

Nota

Per obtenir una llista dels models que podeu consumir, vegeu models d'IA AI Builder i escenaris empresarials . També podeu consumir models integrats Microsoft Azure Aprenentatge automàtic amb la funció de portar el vostre propi model .

  1. Crear una aplicació. Més informació: Crear una aplicació de llenç en blanc des de zero.

  2. Seleccioneu Dades>, Afegeix models> d'IA de dades.

    Captura de pantalla de com seleccionar el model.

  3. Seleccioneu un o més models que vulgueu afegir.

    Si no veus el model a la llista, és possible que no tinguis permisos per utilitzar-lo Power Apps. Contacteu amb l'administrador per resoldre aquest problema.

Utilitzar un model amb controls

Ara que heu afegit el model d'IA a l'aplicació del llenç, vegem com trucar a un model des d'un AI Builder control.

En l'exemple següent, crearem una aplicació que pugui detectar l'idioma introduït per un usuari a l'aplicació.

  1. Crear una aplicació. Més informació: Crear una aplicació de llenç en blanc des de zero.

  2. Seleccioneu Dades>, Afegeix models> d'IA de dades.

  3. Cerqueu i seleccioneu Model d'IA de detecció d'idioma.

    Captura de pantalla del model de detecció d'idioma.

    Nota

    Haureu de tornar a afegir manualment el model a l'aplicació a l'entorn nou quan moveu l'aplicació entre entorns.

  4. Seleccioneu + a la subfinestra esquerra i, a continuació, seleccioneu Control d'entrada de text.

  5. Repetiu el pas anterior per afegir un control Etiqueta de text.

  6. Canvieu el nom de l'etiqueta de text a Idioma.

  7. Afegiu una altra etiqueta de text al costat de l'etiqueta "Idioma".

    Controls d'aplicacions, inclosos el text i els dos controls d'etiquetes.

  8. Seleccioneu l'etiqueta de text afegida al pas anterior.

  9. Introduïu la fórmula següent a la barra de fórmules per a la propietat Text de l'etiqueta de text.

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

    L'etiqueta canvia al codi d'idioma en funció de la vostra configuració regional. Per a aquest exemple,en (anglès).

    La fórmula d'idioma canvia el text de l'etiqueta.

  10. Previsualitza l'aplicació seleccionant el botó Reproduir a l'extrem superior dret de la pantalla.

    Feu una visualització prèvia de l'aplicació.

  11. Al quadre de text, introduïu-lo bonjour. Tingueu en compte que l'idioma de la llengua francesa (fr) apareix a sota del quadre de text.

    Exemple de detecció de llengua francesa.

  12. De la mateixa manera, proveu un text en altres idiomes. Per exemple, la introducció guten tag canvia l'idioma detectat a de per a l'idioma alemany.

Procediments recomanats

  • Proveu d'activar el model predicció a partir d'accions singulars, com ara OnClick , mitjançant un botó en lloc de l'acció OnChange en una entrada de text per garantir un ús eficient dels AI Builder crèdits.

  • Per estalviar temps i recursos, deseu el resultat d'una trucada de model perquè pugueu utilitzar-la en diversos llocs. Podeu desar una sortida en una variable global. Després de desar el resultat del model, podeu utilitzar l'idioma en altres llocs de l'aplicació per mostrar l'idioma identificat i la seva puntuació de confiança en dues etiquetes diferents.

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

Entrada i sortida per tipus de model

Aquesta secció proporciona entrades i sortides per a models personalitzats i preconstruïts per tipus de model.

Models personalitzats

Tipus de model Sintaxi Sortida
Classificació de categories 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Extracció d'entitats '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, }]}
Detecció d'objectes 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Models preconstruïts

Nota

Els noms de model predefinits es mostren a la configuració regional de l'entorn. Els exemples següents mostren els noms dels models per a la llengua anglesa (en).

Tipus de model Sintaxi Sortida
Lector de targetes empresarials ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Classificació de categories 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Lector de documents d'identitat ‘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 }}}}}
Processament de factures ‘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 } } } }[] } }}
Extracció de frases clau 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Detecció de llengua 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Processament de rebuts ‘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 } } } }[] } } }
Anàlisi de l'opinió '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 } }[]}
Reconeixement de text 'Text recognition'.Predict( Document: Base64 encoded image) {Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]}
Traducció de text 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Exemples

Cada model s'invoca amb el verb predir. Per exemple, un model de detecció d'idioma pren text com a entrada i retorna una taula de possibles idiomes, ordenats per la puntuació d'aquest idioma. La puntuació indica la confiança del model amb la seva predicció.

Entrada Sortida
'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 } } ] }

Consulteu també