Startseite / Artikel

Von NL-zu-SQL-Demos bis zu einem in einer Sandbox isolierten AI-Analyse-Assistenten

Vom NL zu SQL-Demos bis hin zu einem in einer Sandbox laufenden KI-Analyse-Assistenten: Schema-Allowlists, statische Überprüfungen, isolierte Ausführung, Ergebnisbegrenzungen sowie Audit-Logs für jede Abfrage.

Verlag: REACTAPP.TOP4 Min. Lesezeit1006 Wörter

Quellen: From “Natural Language to SQL” to a Secure AI Analytics Assistant: An Architecture Evolution

Das Zulassen, dass ein Sprachmodell Code für Analysen schreibt und ausführt, ist ein Problem der mehrschichtigen Absicherung, kein Trick mit Prompts.

Das Ausgangsproblem

Business-Nutzer haben Fragen – „Durchschnittspreis von Häusern nach Stadt“, „Top zehn teure Immobilien“, „Höchster Preis pro Quadratfuß“ – besitzen aber keine SQL-Fähigkeiten. Die offensichtliche Lösung ist NL-zu-SQL: Man stellt die Frage auf Englisch, generiert eine Abfrage und führt sie aus.

Version eins: Einfaches NL-zu-SQL

Frühe Versionen generieren SQL aus der Frage und führen diese gegen die Datenbank aus. Die Demonstrationen sind beeindruckend. Dann bittet jemand um eine Berechnung, die SQL nur unzureichend darstellen kann, das Modell erfindet eine Spalte oder ein präzise formuliertes Prompt versucht DROP TABLE.

SELECT city, AVG(house_price) AS avg_price
FROM house_pricing
GROUP BY city;
SELECT department, AVG(salary) FROM employees GROUP BY department;
result = (
df.groupby("department")["salary"]
.mean()
.reset_index()
)
import os
os.remove("file.csv")
import subprocess
subprocess.run(…)

Vollständiger Verzicht auf SQL

Ein flexiblerer Ansatz: Lassen Sie das Modell kurze Python-Codeblöcke gegen eine eingeschränkte DataFrame-API schreiben anstelle von rohen SQL-Strings. Dadurch wird eine Analyse im Stil von pandas ermöglicht – doch es steigt auch das Risiko, wenn die Ausführung unkontrolliert bleibt.

Verlässliche Anfragen formulieren

Verlässliche Anfragen bedeuten:

  • Schema-Karten mit nur zulässigen Tabellen/Spalten
  • Beispiele für sichere Muster in Form von Few-Shot-Beispielen
  • Eindeutiger Ablehnungsvorgang, wenn die Frage auf nicht erlaubte Felder angewiesen ist
  • Gestrukturierte Ausgaben (Code-Blöcke oder JSON), die vom Ausführungsprogramm verarbeitet werden können

Das wichtigste Problem: Die Ausführung von vom LLM generiertem Code

Die Ausführung stellt die Sicherheitsgrenze dar. Führen Sie niemals den Modellcode im Anwendungsprozess mit vollständigen Berechtigungen aus. Verwenden Sie einen Sandbox: kein Netzwerkzugang, eingeschränkte CPU/RAM-Leistung, nur erlaubte Importe, Zeitlimits sowie eine ausschließlich lesbare Ansicht der genehmigten Datensätze.

Mehrschichtige Absicherungen

Mehrschichtige Verteidigungsstrategien:

  1. Eingabesicherheitsfeuerwall – Ablehnung von Jailbreaks sowie Anfragen außerhalb des zulässigen Rahmens
  2. Allowlist für Schemata – Das Modell sieht nur genehmigte Felder
  3. Statische Überprüfungen – Verbot von Importen, Datei-Eingabe/Ausgabe, eval sowie Subprozessen
  4. Sandbox-Umgebung zur Ausführung – Isolierung der Ausführung
  5. Limits für Ergebnisse – Zeilen- und Byteschränkungen vor der Rückgabe an die Benutzeroberfläche
  6. Auditsprotokoll – Wer hat gefragt, welcher Code wurde ausgeführt und was wurde zurückgegeben

Resilienz statt nur Sicherheit

Wiederholte Anläufe bei vorübergehenden Fehlern, soweit möglich deterministische Ausgangswerte, gecachte Schemadaten sowie menschliche Einmischung, wenn das Modell nicht sicher antworten kann. Sicherheit ohne Resilienz führt lediglich zu höflichen Fehlern.

Die entstandene Architektur

Gateway → Richtlinie → Planer/Aufforderung → abgeschirmter Ausführer → Formatierer → Prüfung. SQL kann weiterhin als interne Werkzeug für einfache Filter verwendet werden, doch Python-in-a-Box bewältigte die komplexen analytischen Anfragen, ohne das System für willkürliche Anweisungen zu öffnen.

Warum dieses Projekt am interessanteren war

NL-zu-SQL ist eine Übersetzungsdemo. Sichere Analyseassistenten sind Teil des Produktentwicklungsprozesses: Bedrohungsmodelle, Sandboxes, Allowlists sowie eine Benutzeroberfläche, die Ablehnungen erklärt. Das ist die Arbeit, die es wert ist, beibehalten zu werden.

Liefern Sie ein „goldenes“ Suite: harmlose Anfragen, Fragen zur Strukturprüfung sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb der Sandbox ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.

Schicken Sie eine „Golden Suite“: harmlose Anfragen, Schema-Prüfanfragen sowie bösartige Importversuche. Die Kompilierung soll fehlschlagen, wenn ein bösartiger Fall außerhalb des Sandboxes ausgeführt wird oder wenn ein harmloser Fall ohne klaren Grund fälschlicherweise abgelehnt wird.