Compartir a través de


Usar modelos de AI Builder en Power Apps

Con el uso de Power Fx, las fórmulas de código bajo de código abierto, puede agregar integraciones más poderosas y flexibles de modelos de IA en su Power App. Las fórmulas del modelo de IA predicción se pueden integrar con cualquier control en la aplicación de lienzo. Por ejemplo, puede detectar el idioma del texto en un control de entrada de texto y enviar los resultados a un control de etiqueta como se puede ver en la sección Usar un modelo con controles a continuación.

Requisitos

Para usar Power Fx en modelos de AI Builder, debe tener:

Seleccionar un modelo en aplicaciones de lienzo

Para consumir un modelo de IA con Power Fx, deberá crear una aplicación de lienzo, elegir un control y asignar expresiones para controlar las propiedades.

Nota

Para obtener una lista de modelos de AI Builder que puede consumir, vea Modelos de IA y escenarios empresariales. También puede consumir modelos integrados en el aprendizaje automático de Microsoft Azure con la característica Trae tu propio modelo.

  1. Crear una aplicación. Más información: Crear una aplicación de lienzo en blanco desde cero.

  2. Seleccione Datos>Agregar datos>Modelos de IA.

    Captura de pantalla de cómo seleccionar su modelo.

  3. Seleccione uno o más modelos para agregarlos.

    Si no ve su modelo en la lista, es posible que no tenga permisos para usarlo en Power Apps. Póngase en contacto con el administrador para resolver este problema.

Usar un modelo con controles

Ahora que ha agregado el modelo de IA a su aplicación de lienzo, veamos cómo llamar a un modelo de AI Builder desde un control.

En el siguiente ejemplo, crearemos una aplicación que pueda detectar el idioma ingresado por un usuario en la aplicación.

  1. Crear una aplicación. Más información: Crear una aplicación de lienzo en blanco desde cero.

  2. Seleccione Datos>Agregar datos>Modelos de IA.

  3. Busque y seleccione el modelo de IA Detección de idioma.

    Captura de pantalla del modelo de detección de idioma.

    Nota

    Tendrá que agregar manualmente el modelo a la aplicación de nuevo en el entorno nuevo tras mover la aplicación por entornos.

  4. En el panel izquierdo, seleccione + y después el control Entrada de texto.

  5. Repita el paso anterior para agregar un control Etiqueta de texto.

  6. Cambie el nombre de la etiqueta de texto a Idioma.

  7. Agregue otra etiqueta de texto junto a la etiqueta "Idioma".

    Controles de aplicaciones que incluyen texto y ambos controles de etiquetas.

  8. Seleccione la etiqueta de texto agregada en el paso anterior.

  9. Introduzca la siguiente fórmula en la barra de fórmulas para la propiedad Text de la etiqueta de texto.

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

    La etiqueta cambia al código de idioma según su configuración regional. En este ejemplo, en (Inglés).

    La fórmula de idioma cambia el texto de la etiqueta.

  10. Haga una vista previa de la aplicación con el botón Reproducir en la esquina superior derecha de la pantalla.

    Obtenga una versión preliminar de la aplicación.

  11. En el cuadro de texto, introduzca bonjour. Vea que el código del idioma francés (fr) aparece debajo del cuadro de texto.

    Ejemplo de detección de idioma francés.

  12. Del mismo modo, pruebe con texto en otro idioma. Por ejemplo, introducir guten tag cambia el idioma detectado a de para el idioma alemán.

Procedimientos recomendados

  • Intente activar el modelo predicción a partir de acciones singulares como OnClick utilizando un botón en lugar de la acción OnChange en una entrada de texto para asegurar el uso eficiente de créditos de AI Builder.

  • Para ahorrar tiempo y recursos, guarde el resultado de una llamada de modelo para usarlo en varios lugares. Puede guardar una salida en una variable global. Tras guardar el resultado del modelo, puede usar el idioma en cualquier lugar de su aplicación para mostrar el idioma identificado y su puntuación de confianza en dos etiquetas distintas.

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

Entrada y salida por tipo de modelo

Esta sección proporciona entradas y salidas para modelos personalizados y prediseñados por tipo de modelo.

Modelos personalizados

Tipo de modelo Sintaxis Salida
Clasificación de categorías 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Extracción de entidades '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ón de objetos 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Modelos precompilados

Nota

Los nombres de modelos predefinidos se muestran en la configuración regional de su entorno. Los siguientes ejemplos muestran los nombres de modelo para el idioma inglés (en).

Tipo de modelo Sintaxis Salida
Lector de tarjetas de presentación ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Clasificación de categorías 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Lector de documentos de identidad ‘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 }}}}}
Procesamiento de facturas ‘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ón de frases clave 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Detección de idiomas 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Procesamiento de recibos ‘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álisis de sentimiento '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 } }[]}
Reconocimiento de texto '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ón de texto 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Ejemplos

Cada modelo se invoca mediante la predicción de verbo. Por ejemplo, un modelo de detección de idioma toma texto como entrada y devuelve una tabla de posibles idiomas, ordenados por la puntuación de ese idioma. La puntuación indica la confianza que tiene el modelo con su predicción.

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