Llegeix en anglès

Comparteix a través de


Utilitzar models de l'AI Builder al Power Apps

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

Requisits

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

Seleccionar un model a les aplicacions de llenç

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

Nota

Per obtenir una llista dels models que podeu consumir, vegeu Models d'IA AI Builder i escenaris empresarials . També podeu consumir models integrats a Microsoft Azure Aprenentatge automàtic amb la funció Porta el teu 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 teu model.

  3. Seleccioneu un o més models per afegir-los.

    Si no veieu el vostre model a la llista, és possible que no tingueu permisos per utilitzar-lo Power Apps. Poseu-vos en contacte amb l'administrador per resoldre aquest problema.

Utilitzar un model amb controls

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

A l'exemple següent, crearem una aplicació que pugui detectar la llengua introduïda 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ó de llengua .

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

    Nota

    Haureu d'afegir manualment el model a l'aplicació de nou al nou entorn en moure 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 d'etiqueta de text.

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

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

    Els controls de l'app inclouen text i els dos controls d'etiqueta.

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

  9. Introduïu la fórmula següent a la barra de fórmules de 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 lingüística canvia el text de l'etiqueta.

  10. Versió preliminar de l'aplicació seleccionant el botó Botó de reproducció des de l'extrem superior dret de la pantalla.

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

  11. Al quadre de text, introduïu bonjour. Observeu que la llengua del francès (fr) apareix a sota del quadre de text.

    Exemple de detecció de llengua francesa.

  12. De la mateixa manera, proveu el text en un altre idioma. Per exemple, si introduïu guten tag es canvia l'idioma detectat a de per a l'alemany.

Procediments recomanats

  • Proveu d'activar la predicció del model a partir d'accions singulars, com ara OnClick , utilitzant 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 crida de model per poder utilitzar-lo en diversos llocs. Podeu desar una sortida en una variable global. Després de desar el resultat del model, pots utilitzar l'idioma en un altre lloc 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 predefinits 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 models 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 utilitzant el verb predict. Per exemple, un model de detecció d'idiomes pren text com a entrada i retorna una taula de llengües possibles, ordenades per la puntuació d'aquesta llengua. 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 } } ] }