Warum das praktisch ist
Weil Du immer wieder denselben Satz schreiben musst.
Nur die Zahlen, Orte oder Namen Àndern sich.
Die Struktur bleibt gleich.
Mit der OpenAI Functions API kannst Du Word-Felder an GPT ĂŒbergeben â und bekommst den passenden Textbaustein zurĂŒck.
Automatisch. MaĂgeschneidert. In korrektem Deutsch.
Voraussetzungen
- Word (mit Formularfeldern oder Inhaltssteuerelementen)
- OpenAI API-Key
- VBA (fĂŒr Zugriff + JSON-Kommunikation)
- Funktionen definieren (Name + Parameterstruktur)
Beispiel: ReisebestÀtigung erzeugen
Feldname | Inhalt |
---|---|
zielort | Hamburg |
datum_start | 01.06.2025 |
datum_ende | 04.06.2025 |
zweck | Kundentermin Messebau |
Daraus soll automatisch dieser Satz werden:
âHiermit bestĂ€tigen wir Ihre Dienstreise nach Hamburg vom 01.06.2025 bis 04.06.2025 zum Zweck eines Kundentermins im Bereich Messebau.â
Schritt 1: Felder lesen
Function LeseFormwerte() As String
Dim ziel As String, start As String, ende As String, zweck As String
ziel = ActiveDocument.SelectContentControlsByTitle("zielort")(1).Range.Text
start = ActiveDocument.SelectContentControlsByTitle("datum_start")(1).Range.Text
ende = ActiveDocument.SelectContentControlsByTitle("datum_ende")(1).Range.Text
zweck = ActiveDocument.SelectContentControlsByTitle("zweck")(1).Range.Text
LeseFormwerte = "{""zielort"":""" & ziel & """,""datum_start"":""" & start & """,""datum_ende"":""" & ende & """,""zweck"":""" & zweck & """}"
End Function
Schritt 2: Functions-Definition
Function BuildFunctionDefinition() As String
BuildFunctionDefinition = "{" & _
"""name"":""reisebestaetigung_generieren""," & _
"""description"":""Generiert eine ReisebestÀtigung in Textform""," & _
"""parameters"":{""type"":""object"",""properties"":{" & _
"""zielort"":{""type"":""string"",""description"":""Reiseziel""}," & _
"""datum_start"":{""type"":""string"",""description"":""Startdatum""}," & _
"""datum_ende"":{""type"":""string"",""description"":""Enddatum""}," & _
"""zweck"":{""type"":""string"",""description"":""Zweck der Reise""}" & _
"},""required"":[""zielort"",""datum_start"",""datum_ende"",""zweck""]}" & _
"}"
End Function
Schritt 3: GPT-Call mit Function-Call
Function GPTFunctionCall() As String
Dim http As Object
Dim apiKey As String
Dim json As String
Dim fnDef As String
Dim inputParams As String
apiKey = "DEIN_API_KEY"
fnDef = BuildFunctionDefinition()
inputParams = LeseFormwerte()
json = "{" & _
"""model"":""gpt-4-0613""," & _
"""messages"":[{""role"":""user"",""content"":""Bitte generiere die ReisebestÀtigung""}]," & _
"""functions"":[" & fnDef & "]," & _
"""function_call"":{""name"":""reisebestaetigung_generieren"",""arguments"":" & inputParams & "}" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.setRequestHeader "Content-Type", "application/json"
http.Send json
GPTFunctionCall = ParseAntwort(http.responseText)
End Function
Schritt 4: Antwort extrahieren
Function ParseAntwort(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(j){return JSON.parse(j).choices[0].message.content;}"
ParseAntwort = sc.Run("parse", json)
End Function
Schritt 5: Text einfĂŒgen
Sub FuegeTextbausteinEin()
Dim text As String
text = GPTFunctionCall()
Selection.InsertAfter vbCrLf & text & vbCrLf
End Sub
Was Du damit automatisieren kannst
Beispiel | Textbaustein |
---|---|
ReisebestÀtigung | Datum + Ort + Zweck |
Vertragszusatz | Werte aus Formular â juristische Formulierung |
Angebotstext | Artikel + Mengen â ĂŒberzeugender FlieĂtext |
E-Mail-Text | Anrede + Betreff â fertige Nachricht |
Gutachtenteil | Werte, Ergebnisse â normierter Absatztext |
Was Du beachten musst
- GPT braucht definierte Parameter â sonst wirdâs ungenau
- Die Functions API erzwingt Struktur â gut fĂŒr Formulare
- Antwort kommt als reiner Text zurĂŒck â kein HTML
- Du kannst mehrere Functions definieren und GPT wÀhlen lassen
âWord weiĂ jetzt, was Du meinst. Und schreibt es gleich fĂŒr Dich auf.â
Wenn Du sowas brauchst â ich zeig Dir, wie Du aus Formularfeldern automatisch fertige Texte bekommst.
Kein Copy-Paste mehr. Nur noch klicken.
No responses yet