Warum Access?
Weil Access da ist. Weil Access schnell ist.
Und weil Du damit Strukturen und Texte so zusammenbauen kannst, wie Duâs brauchst.
Gerade wennâs um Prompts geht, brauchst Du System. Kein wildes Copy-Paste.
Ich zeig Dir, wie Du Access als Prompt-Verwaltung nutzt â inklusive dynamischer Variablen, KI-Zugriff und historischer Nachverfolgbarkeit.
Szenario: Du willstâŠ
- wiederverwendbare Prompts bauen
- Platzhalter wie [KUNDENNAME] automatisch befĂŒllen
- aus Access heraus an ChatGPT (oder Azure OpenAI) senden
- die Antwort speichern und analysieren
Tabellenstruktur
Tabelle | Beschreibung |
---|---|
tblPrompts | Prompt-Vorlagen mit Titel und Text |
tblVariablen | Ersetzbare Platzhalter |
tblKontexte | Konkrete Kontexteingaben (z.âŻB. Kunde) |
tblLogs | Gesendete Prompts und Antworten |
Prompt-Vorlage (Beispiel)
Schreibe eine freundliche E-Mail an [KUNDENNAME], in der wir uns fĂŒr [LEISTUNG] bedanken und auf [NĂCHSTER_SCHRITT] hinweisen.
Platzhalter dynamisch ersetzen (VBA)
Function ErsetzePlatzhalter(promptText As String, contextID As Long) As String
Dim rs As DAO.Recordset
Dim key As String, value As String
Set rs = CurrentDb.OpenRecordset("SELECT Platzhalter, Wert FROM qryKontextVariablen WHERE KontextID=" & contextID)
Do While Not rs.EOF
key = "[" & rs!Platzhalter & "]"
value = rs!Wert
promptText = Replace(promptText, key, value)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
ErsetzePlatzhalter = promptText
End Function
Die Query qryKontextVariablen
verbindet tblVariablen
mit tblKontexte
.
Prompt an ChatGPT senden
Function SendePrompt(prompt As String) As String
Dim http As Object
Dim jsonRequest As String
Dim jsonResponse As String
Set http = CreateObject("MSXML2.XMLHTTP")
jsonRequest = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}]}"
With http
.Open "POST", "https://api.openai.com/v1/chat/completions", False
.SetRequestHeader "Content-Type", "application/json"
.SetRequestHeader "Authorization", "Bearer DEIN_API_KEY"
.Send jsonRequest
jsonResponse = .ResponseText
End With
SendePrompt = jsonResponse
End Function
Antwort extrahieren (VBA)
Function ExtrahiereAntwort(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;}"
ExtrahiereAntwort = sc.Run("parse", json)
End Function
Beispiel: Komplettdurchlauf
Sub StartePromptSitzung(promptID As Long, kontextID As Long)
Dim rs As DAO.Recordset
Dim rawPrompt As String
Dim finalPrompt As String
Dim antwort As String
Dim json As String
Set rs = CurrentDb.OpenRecordset("SELECT Text FROM tblPrompts WHERE ID=" & promptID)
If rs.EOF Then Exit Sub
rawPrompt = rs!Text
finalPrompt = ErsetzePlatzhalter(rawPrompt, kontextID)
json = SendePrompt(finalPrompt)
antwort = ExtrahiereAntwort(json)
CurrentDb.Execute "INSERT INTO tblLogs (PromptID, KontextID, Anfrage, Antwort) " & _
"VALUES (" & promptID & "," & kontextID & "," & _
"'" & Replace(finalPrompt, "'", "''") & "'," & _
"'" & Replace(antwort, "'", "''") & "')"
MsgBox "Antwort erhalten.", vbInformation
End Sub
Vorteile fĂŒr Dich
- Standardisierte, geprĂŒfte Prompts
- Zentrale Verwaltung, kein Wildwuchs
- KontextabhÀngige Variablen
- Versionskontrolle ĂŒber
tblLogs
- Einfache Erweiterbarkeit (mehrsprachig, Templates, Benutzerrechte)
Was Du beachten musst
- Keine sensiblen Daten direkt als Prompt-Text speichern
- Prompt-Speicher trennen von KI-Antworten
- SorgfÀltige Pflege der Platzhalter-Texte
- Setze Quoten- und Fehler-Handling im HTTP-Aufruf (nicht gezeigt)
Bonus: Prompt-Vorschau im Formular
Du willst wissen, was rauskommt, bevor Du sendest?
Binde in Dein Access-Formular ein ungebundenes Textfeld ein:
Private Sub btnVorschau_Click()
Me.txtVorschau = ErsetzePlatzhalter(Me.txtPromptVorlage, Me.cboKontext)
End Sub
Das macht Eindruck. Auch intern.
Wenn Du Hilfe brauchst beim Aufbau: Ich bin da. Norddeutsch, klar und direkt.
Keine Antworten