Hola a todos,
Estos días estoy bastante ocupado integrando dataflows en mis aplicaciones, o al menos, dibujado flujos o esquemas de cómo hacerlo de la mejor forma posible.
Pero entre tanto, he construido una app que agrupa tres modelos de IA de AI Builder en Power Apps. Y me encanta!. Se trata de una aplicación que puede extraer frases clave un texto. Pero no sólo eso, sino que es capaz de detectar el idioma, traducirlo y extraer las palabas en el idioma propuesto.
Cómo lo he hecho, vamos a verlo, esta sería la aplicación:

En el ejemplo, he traducido al español y he extraído las frases claves en español.
Pero vamos por pasos, para trabajar con estos modelos es necesario que tengáis licencias premium y créditos en AI Builder. El siguiente paso es conectar la aplicación con estos tres conectores:

Como primer paso vamos a traducir, y para ellos tendremos que elegir el idioma al que queremos pasar nuestro texto. Para hacerlo, creo una colección en la propiedad OnSelect de la lista desplegable:

Y luego, en el botón de traducir.
If(
IsBlank(Dropdown1.SelectedText.Value);
Notify(
"DEBES SELECCIONAR UN IDIOMA";
NotificationType.Information
);
Set(
TextInputTranslation;
'Traducción de texto'.Predict(
TextInput2.Text;
{'Translate To': Dropdown1.Selected.Value}
)
);;
IfError(
TextInputTranslation;
Notify(
FirstError.Message;
NotificationType.Error
)
);;
Set(
ExtractedPhrases;
Blank()
);;
Set(
Idioma;
Blank()
);;
Set(
Confianza;
Blank()
)
)
Como podéis ver, he incluido un condicional para que controle que cuando pulsemos el botón y no esté vacía la lista desplegable de los idiomas.
Una vez que hemos traducido pasamos la traducción al siguiente textInput y lo hacemos con la variable que obtiene los datos del proceso anterior: TextInputTranslation.Text.
Y pulsamos el botón de Analizar y extraer, que va a analizar el text y descubir el idioma en el que está e indicar la precisión de este dato. Además ya va a extraer las frases clave. Este es el código:
//Detectar idioma
Set(TextInputResult; 'Detección de idiomas'.Predict(TextInput1.Text));;
IfError(TextInputResult; Notify(FirstError.Message;NotificationType.Error));;
//analizar frase
Set(ExtractedPhrases; 'Extracción de frases clave'.Predict(TextInput1.Text; {Language: TextInputResult.Language}).Phrases);;
IfError(ExtractedPhrases; Notify(FirstError.Message;NotificationType.Error));;
//Idioma detectado:
Set(Idioma;TextInputResult.Language);;
Set(Confianza;TextInputResult.Confidence)
Fijaos que el resultado de la detección del idioma TextInputResult lo vamos a utilizar en el siguiente paso para extraer la frase:
//analizar frase
Set(ExtractedPhrases; 'Extracción de frases clave'.Predict(TextInput1.Text; {Language: TextInputResult.Language}).Phrases);;
Esto es importante, porque nos va a permitir extraer las frases en el idioma que hayamos traducido.
Y las dos últimas variables las utilizaremos para que se muestre el idioma que ha detectado. Obviamente el resultado lo mostramos en el último textInput (en default) delimitado por punto y coma (podéis usar lo que estiméis):
Concat(ExtractedPhrases; Phrase & "; ")
Ejemplo de texto traducido a Finlandés:

Como veis, es una aplicación que se construye en muy poco tiempo y ofrece unas funcionalidades muy destacables. Espero que os haya resultado interesante.
