Power Apps und Flow – Per Spracheingabe KI-Text in PDF umwandeln und Datei als E-Mail Anlage empfangen

Diese App ist eine ausgezeichnete Lösung, um für eigene Bedürfnisse KI gesteuert mittels Spracheingabe eine fertige Antwort in Form einer PDF Datei per Email zu empfangen. Es klingt möglicherweise trivial, das ist es jedoch nicht.

In diesem Blog beschreibe ich die Vorgehensweise zur Umsetzung dieses Projekts.

Die Ausgangslage ist eine relativ einfach gehaltene Canvas App in Power Apps.

Um das Projekt umzusetzen, ist ein benutzerdefinierter Connector notwendig, der mit dem von Azure OpenAI – Speech To Text Modell „Whisper“ es erlaubt, eine Spracheingabe in Text zu konvertieren, diesen Text per KI Modell anzusprechen um die Antwort letztendlich in Text konvertieren zu können, um abschließend eine Textausgabe in PDF Format zu erhalten.

Hierzu bedarf es eines Projekts inkl. des API Schlüssels. Ich habe mir diesen auf der Plattform OpenAI erstellt.

Link zur OpenAI Plattform: https://platform.openai.com/

Schritt 1: Benutzerdefinierter Connector

In Power Automate rufen wir zunächst „Benutzerdefinierte Connectors“ auf, oben rechts dann „+ Neuer benutzerdefinierter Connector“ -> „Ohne Vorlage neu erstellen“ (Name „Whisper“)

Ein Bild, das Text, Screenshot, Reihe, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

Im Ersten Schritt der oberen Leiste (1. Allgemein) tragen wir unter Host „api.openai.com“ ein.

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

KI-generierte Inhalte können fehlerhaft sein.

Registerkarte 2. Sicherheit, siehe Screenshot:

Ein Bild, das Text, Screenshot, Software, Display enthält.

KI-generierte Inhalte können fehlerhaft sein.

Unter Authentifizierungstyp:

API-Schlüssel

Parameterbezeichnung:

API Key

Parametername:

Authorization

Registerkarte 3. Definition:

Unter Definition wird links per Klick auf „Neue Aktion“ folgendes konfiguriert:

Zusammenfassung:

Speech to Text

Vorgangs-ID:

Speech2Text

  • Unter Anforderung, wählen wir „+ Aus Beispiel importieren“ aus.

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

Verb: „POST“

URL: https://api.openai.com/v1/audio/transcriptions

Header: Content-Type multipart/form-data

Bitte folgende Werte in das geöffnete Fenster eingeben, siehe Screenshot:

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

Klicke auf „Importieren

Oben im Menü befindet sich der „Swagger-Editor“, diesen schalten wir ein.

In den geöffneten Editor wir nun der nachfolgende Code eingefügt, bzw. der dort befindliche durch diesen ersetzt:

swagger: '2.0'

info:

title: Whisper

description: ''

version: '1.0'

host: api.openai.com

basePath: /

schemes:

- https

consumes: []

produces: []

paths:

/v1/audio/transcriptions:

post:

responses:

default:

description: default

schema:

type: object

properties:

text:

type: string

description: text

summary: Speech to Text

operationId: Speech2Text

consumes:

- multipart/form-data

parameters:

- name: Content-Type

in: header

required: false

type: string

- name: file

in: formData

type: file

required: true

- name: filename

in: formData

type: string

required: true

- name: model

in: formData

type: string

required: true

definitions: {}

parameters: {}

responses: {}

securityDefinitions:

API Key:

type: apiKey

in: header

name: Authorization

security:

- API Key: []

tags: []

Das sieht wie folgt aus:

Ein Bild, das Text, Screenshot, Karte Menü enthält.

KI-generierte Inhalte können fehlerhaft sein.

Nach diesem Schritt, schalten wir oben den Schalter „Swagger-Editor“ wieder aus.

Im unteren Bereich befindet sich der Abschnitt „Antwort

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

Ein Klick auf „default“ und im Dialogfenster oben rechts bitte ein Klick auf „+ Aus Beispiel importieren

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

Im Dialogfenster kommt im Bereich „Text“ hinein, Klick auf „Importieren“, siehe Screenshot:

{"text":""}

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

Der letzte Schritt ist ein Klick im oberen Bildschirmbereich „Connector erstellen“

Wir sehen oben, dass der Connector erstellt wird.

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

Schritt 2: App erstellen

1. Erstelle dir eine leere Canvas App.

Füge deiner App den gerade eben erstellten Connector hinzu, indem du ihn unter „Daten hinzufügen „suchst und auswählst (Whisper).

Ein Bild, das Text, Software, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

2. Die App hat im Beispiel folgenden zweckgebundenen Aufbau:

  • Erstelle demnach die drei relevanten Steuerelemente:
  • Mikrofon
  • Zwei Schaltflächen (Sprache zur Text und Löschen)
  • Beschriftung (für die Ausgabe des gesprochenen Textes)
  • Ggf. Eine Menüleiste oben und Schaltfläche unten, um zu anderen Bildschirmen navigieren zu können

3. Nachdem die Steuerelemente hinzugefügt worden sind, wird für die Schaltfläche „Sprache zu Text“ über deren Eigenschaft „OnSelect“ folgende Funktion hinzugefügt:

  • Set(varResponse; Whisper.Speech2Text( Microphone1.Audio;"audio.wbmp";"whisper-1";{'Content-Type':"multipart/form-data"}))

4. Für die Beschrifung wird die Variable „varResponse“ verwendet.

Die Variable gilt es mit der Eigenschaft der Beschriftung Text vorzunehmen:

Erläuterung der Funktion:

Die Syntax wird verwendet, um die Whisper.Speech2Text-Funktion aufzurufen, um Sprache in Text umzuwandeln. Nachflogend eine Erklärung der einzelnen Teile:

  • Set(varResponse; ...): Dieser Teil der Formel weist der Variablen varResponse einen Wert zu. In diesem Fall wird die Funktion Whisper.Speech2Text verwendet, um den Text aus gesprochener Sprache zu erhalten.
  • Whisper.Speech2Text( ... ): Dies ist die Funktion, die die Spracherkennung durchführt. Sie erwartet bestimmte Parameter, um richtig zu funktionieren.
  • Microphone1.Audio: Dies könnte eine Referenz auf den Audioeingang (Mikrofon) in deiner Power App sein, von dem die Sprache erfasst wird.
  • "audio.wbmp": Dies ist der Dateityp oder das Format der Audiodaten, die an die Speech-to-Text-Funktion übergeben werden.
  • "whisper-1": Dies könnte ein spezifischer Identifier oder ein Schlüssel sein, der möglicherweise für die Whisper-Plattform relevant ist, die hier verwendet wird.
  • {'Content-Type':"multipart/form-data"}: Dies ist ein Header-Parameter, der angibt, dass die Daten im multipart/form-data-Format gesendet werden.

Zusammengefasst ruft diese Syntax also die Whisper.Speech2Text-Funktion auf, um gesprochene Audioeingaben von Microphone1 in Text umzuwandeln und speichert das Ergebnis in der Variablen varResponse. Dies ist nützlich, wenn du in deiner Power App Spracheingaben verarbeiten möchtest, z.B. für Sprachbefehle oder -notizen.

5. Als nächstes wird ein KI Modell verwendet. Es wird eine Eingabeaufforderung erstellt.

Ein Bild, das Text, Schrift, Webseite, Software enthält.

KI-generierte Inhalte können fehlerhaft sein.

Die Eingabeaufforderung enthält folgene Konfiguration:

Ein Bild, das Text, Screenshot, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

Im oben genannten Text, wird die Eingabe des Triggers „Inputtext“ hinzugefügt, gelogt von einigen Anweisungen, wahlweise auf englisch, da die Ergebnisse besser ausfallen. Die KI Modelle können inzwischen sogar bestens auch mit einer Kombination aus Deutscher und Englischer Sprachen umgehen.

Hier die Eingabeparameter als Eingabeaufforderung zum Kopieren:

Unterstützen Sie mich beim Verfassen eines Blogbeitrags über <Textinput>.

Try to create a blog post on the topic below.

The blog post, if any, shoud be less than one page and is intended for nontechnical people.

It schould be energize and motivate the audience.

The blog post must be in HTML format with HTML table and inline styling if applicable.

Schritt 3: Flow erstellen

Jetzt wird ein Flow benötigt, um den gespochenen Text an das KI Modell zu übergeben, damit daraus letztlich ein Blog erstellt und in eine PDF Datei konvertiert und abschließend per Mail versendet werden kann.

Der Flow hat folgenden Aufbau, nachfolgend die einzelnen Aktionen mit Erläuterung:

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.

KI-generierte Inhalte können fehlerhaft sein.

1. Aktion „Trigger

Hier werden zwei Eingabeparameter benötig, siehe Screenshot.

Ein Bild, das Text, Screenshot, Schrift, Reihe enthält.

KI-generierte Inhalte können fehlerhaft sein.

2. Aktion „ Create text with GPT using a prompt

Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

Das gewählte KI Modell übernimmt den Prompt als Input der zuvor erstellten Eingabeaufforderung, um daraus den Blog zu erstellen.

3. Aktion „Create file

Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

Create file erstellt basierend auf dem vorherigen Vorgang des KI Modells auf OneDrive for Business eine HTML Datei, hierbei handelt es sich um die KI Antwort des gesprochenen Textes als Audio Aufnahme.

4. Aktion „Convert file

Ein Bild, das Text, Screenshot, Zahl, Schrift enthält.

KI-generierte Inhalte können fehlerhaft sein.

Die erstellte Datei im HTML Format wird nun in das Format PDF konvertiert.

5. Aktion „Send an Email

Ein Bild, das Text, Screenshot, Zahl, Software enthält.

KI-generierte Inhalte können fehlerhaft sein.

Eine Email wird mit einer Anlage als PDF-Datei versendet an eine beliebige Email-Adresse mit dem KI generierten Blog aufgrund der Eingabeaufforderung.

Schritt 4: Flow in die Power App integrieren

Zurück in der Power App wird der Folw mit dem Namen aufgerufen und als weitere Funktionserweiterung mit der gleichen Schaltfläche „Sprache zu Text“ verknüpft. Die Funktion wird seriell verarbeitet, also muss sie hinzugefügt werden nach der Eingabe von (doppelt Semikolon)

GPTTextToDocument.Run(varResponse.text;User().Email);;Notify("Dokument wird erstellt und per Email zugeschickt";NotificationType.Success)

Die gesamte Syntaxt sieht so aus:

Set(varResponse; Whisper.Speech2Text( Microphone1.Audio;"audio.wbmp";"whisper-1";{'Content-Type':"multipart/form-data"}));;

GPTTextToDocument.Run(varResponse.text;User().Email);;Notify("Dokument wird erstellt und per Email zugeschickt";NotificationType.Success)

Erläuterung der Funktion:

Diese Funktion nutzt den Flow aus Power Automate „GPTTextToDocument.Run“, um einen Prozess zur Dokumentenerstellung zu starten. Nachfolgend die detaillierte Erklärung der einzelnen Bestandteile:

1. GPTTextToDocument.Run(varResponse.text; User().Email)

GPTTextToDocument.Run(...)
Dies ruft einen Power Automate Flow auf, der GPTTextToDocument heißt.
Run(...) ist die Methode, mit der der Flow ausgeführt wird.

  • varResponse.text
    - Dies ist der Text, der an den Flow übergeben wird.
    - varResponse wurde zuvor mit der Whisper.Speech2Text-Funktion gefüllt, sodass varResponse.text vermutlich der transkribierte Text aus einer Sprachaufnahme ist.
  • User().Email
    - Diese Funktion ruft die E-Mail-Adresse des aktuell angemeldeten Nutzers ab.
    - Die E-Mail-Adresse wird an den Flow übergeben, damit das generierte Dokument an den Nutzer gesendet werden kann.

2. Notify("Dokument wird erstellt und per Email zugeschickt"; NotificationType.Success)

  • Notify(...)
    - Diese Funktion zeigt eine Benachrichtigung in Power Apps an.
  • "Dokument wird erstellt und per Email zugeschickt"
    - Dies ist die Nachricht, die dem Nutzer angezeigt wird.
  • NotificationType.Success
    - Das ist der Typ der Benachrichtigung – in diesem Fall eine Erfolgsmeldung.

Zusammenfassung

  • Die Funktion ruft einen Power Automate Flow GPTTextToDocument auf, um ein Dokument aus dem Text (varResponse.text) zu erstellen.
  • Die E-Mail-Adresse des Nutzers (User().Email) wird übergeben, damit das generierte Dokument an ihn gesendet wird.
  • Anschließend wird eine Erfolgsmeldung in Power Apps angezeigt.

Diese Kombination eignet sich z. B. für eine App, in der Nutzer gesprochene Sprache aufnehmen können, die dann automatisch in ein Dokument umgewandelt und per E-Mail zugeschickt wird.

Schritt 5: App mit Flow testen

In der App wird die Schaltfläche Mikrofon geklickt, ein Text gesprochen, die Aufnahme per Klick auf das Mikrofon beendet. Als Nächstes folgt ein Klick auf die Schaltfläche „Sprache zu Text“.

Jetzt folgt der Flowaufruf. Der Benutzer sieht kurze Zeit später einen banner am oberen Bildschirm, dass der Prozess verarbeitet worden ist.

Das Finale lautet, es kommt in Outlook des Users der App eine Email samt Anlage als Antwort an:

Ein Bild, das Text, Screenshot, Schrift, Dokument enthält.

KI-generierte Inhalte können fehlerhaft sein.

Das Ergebnis lässt sich sehen, mit dieser Lösung lassen sich tolle Ergebnisse automatisiert umsetzen.

Praxisnahe Ergänzungen

Wer das Thema strukturiert weiterdenken, praxisnah einordnen oder ähnliche Themen vertiefen möchte, findet in folgenden Trainings passende Anknüpfungspunkte:

Kommentare sind geschlossen