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:
Accés a un Microsoft Power Platform entorn amb base de dades.
AI Builder Llicència (de prova o pagada). Per obtenir més informació, aneu a llicències AI Builder .
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 .
Crear una aplicació. Més informació: Crear una aplicació de llenç en blanc des de zero.
Seleccioneu Dades>, Afegeix models> d'IA de dades.
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ó.
Crear una aplicació. Més informació: Crear una aplicació de llenç en blanc des de zero.
Seleccioneu Dades>, Afegeix models> d'IA de dades.
Cerqueu i seleccioneu Model d'IA 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.
Seleccioneu + a la subfinestra esquerra i, a continuació, seleccioneu Control d'entrada de text.
Repetiu el pas anterior per afegir un control Etiqueta de text.
Canvieu el nom de l'etiqueta de text a Idioma.
Afegiu una altra etiqueta de text al costat de l'etiqueta "Idioma".
Seleccioneu l'etiqueta de text afegida al pas anterior.
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).
Previsualitza l'aplicació seleccionant el botó Reproduir a l'extrem superior dret de la pantalla.
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.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 } } ] } |