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ó.
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 de pagament). Per obtenir més informació, aneu a AI Builder llicències.
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 .
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 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.
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ó.
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ó de llengua .
Nota
Haureu d'afegir manualment el model a l'aplicació de nou al nou entorn en moure 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 d'etiqueta de text.
Canvieu el nom de l'etiqueta de text a Idioma.
Afegeix 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 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).
Versió preliminar de l'aplicació seleccionant el botó Botó de reproducció des de l'extrem superior dret de la pantalla.
Al quadre de text, introduïu
bonjour
. Observeu que la llengua del francès (fr) apareix a sota del quadre de text.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.
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)
Aquesta secció proporciona entrades i sortides per a models personalitzats i predefinits per tipus de model.
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 }}[]} |
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} } |
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 } } ] } |