Erstellen Sie einen KI-Datenanalysten mit Sandbox-Python und kontrolliertem Paketzugriff

Erstellen Sie einen KI-Datenanalysten mit Sandbox-Python und kontrolliertem Paketzugriff

Ein KI-Datenanalyst benötigt eine Sandbox-Python-Umgebung, wenn benutzerbereitgestellte Datensätze, modellgenerierter Code, Paketinstallationen, erstellte Diagramme und herunterladbare Ausgaben in einer isolierten, beobachtbaren Umgebung ausgeführt werden müssen. Der praktische Implementierungsablauf ist: Datei hochladen, Schema mit vertrauenswürdigem Code überprüfen, Modell um einen Plan bitten, generierten Python-Code prüfen, in einer eingeschränkten Sandbox ausführen, Ausgabeartefakte validieren und dem Benutzer zeigen, was passiert ist.

Architektur des KI-Datenanalysten: Hochladen, Analysieren, Prüfen

Das Produktmuster ist oberflächlich betrachtet einfach: Ein Benutzer lädt eine CSV-Datei hoch, stellt eine Frage in natürlicher Sprache und erwartet nützliche Tabellen, Diagramme und herunterladbare Dateien. Im Hintergrund führt die App einen kleinen Agenten-Workflow mit echten Seiteneffekten aus. Das Modell plant die Analyse und entwirft Python-Code, während die Anwendung entscheidet, welcher Code, welche Pakete, Dateien, Netzwerkzugriffe und Ausgaben erlaubt sind.

Bauen Sie die erste Version um einen klaren Pfad herum:

  1. Akzeptieren Sie einen CSV-Upload für einen Analyseauftrag.
  2. Erstellen Sie einen auftragsbezogenen Sandbox-Arbeitsbereich.
  3. Führen Sie vor der Anfrage an das Modell um Python-Code einen eigenen Schemaüberprüfungscode aus.
  4. Bitten Sie das Modell um einen Analyseplan und anschließend um ein Skript, das Ihren Datei- und Paketregeln folgt.
  5. Führen Sie das Skript mit Zeit-, Speicher-, Festplatten-, Paket- und Netzwerkgrenzen aus.
  6. Sammeln Sie nur validierte Artefakte aus einem bekannten Ausgabeverzeichnis.
  7. Zeigen Sie dem Benutzer die Antwort, Diagramme, Warnungen, Protokolle und die zum Download ausgewählten Dateien an.

Diese Trennung hält die Zuständigkeiten klar. Das Modell schlägt die Analyse vor und erklärt sie. Das Backend wendet die Produktrichtlinien an und orchestriert den Ablauf. Die Sandbox führt den Code mit eingeschränkten Dateien, Paketen, Zeit, Speicher, Netzwerkzugriff und Geheimnissen aus.

Was läuft in einer Python-Sandbox für die Datenanalyse?

Platzieren Sie den Analysearbeitsbereich innerhalb der Sandbox, nicht auf Ihrem Hauptanwendungsserver. Die Sandbox sollte für einen Analyseauftrag ein schmales Eingabebündel erhalten: die hochgeladene Datei, ein kleines Manifest, ein generiertes Skript und eine eventuell genehmigte Laufzeitkonfiguration. Das Anwendungsbackend sollte Authentifizierung, Abrechnung, Benutzeridentität, Langzeitspeicher und Produktionsgeheimnisse außerhalb dieses Arbeitsbereichs halten.

Für einen KI-Datenanalysten übernimmt die Sandbox normalerweise diese Aufgaben:

Sandbox-Aufgabe Warum sie dorthin gehört
Dateibereitstellung Die hochgeladene CSV kann gescannt und in ein isoliertes Arbeitsverzeichnis kopiert werden, bevor Python sie berührt.
Schemaüberprüfung Die App kann Spaltennamen, Typen, Null-Raten, Zeilenanzahl und Beispielwerte ableiten, ohne die gesamte Datei dem Modell auszusetzen.
Python-Ausführung Von Modellen generierter Code läuft getrennt vom Anwendungsserver und kann zeitlich begrenzt werden.
Paketvorbereitung Nur genehmigte Abhängigkeiten werden für den Auftrag installiert oder bereitgestellt.
Diagrammerstellung Plot-Bilder werden als Dateien geschrieben und vor dem Herunterladen überprüft.
Ergebnisverpackung Endgültige Artefakte können aus einem bekannten Ausgabeverzeichnis gesammelt werden.
Bereinigung Temporäre Dateien, generierter Code und Sitzungszustand können gelöscht oder zum Ablauf gebracht werden.

Halten Sie den Prompt des Modells kleiner als die Daten. Senden Sie eine Schema-Zusammenfassung, einige repräsentative Zeilen, falls die Richtlinie dies erlaubt, Spaltenbeschreibungen, Benutzerabsicht und Einschränkungen wie „trainiere kein Modell“ oder „verwende nur genehmigte Pakete“. Der Rohdatensatz sollte im Sandbox-Dateisystem verbleiben, es sei denn, Ihr Produkt hat einen spezifischen, geprüften Grund, mehr offenzulegen.

Wie sollten CSV-Upload und Schemaüberprüfung funktionieren?

Behandeln Sie jeden Upload zunächst als nicht vertrauenswürdige Eingabe. Validieren Sie Dateityp, Größe, Kodierung, Trennzeichen, Zeilenanzahl, Spaltenanzahl und verdächtige Formeln, bevor das Modell ins Spiel kommt. Eine CSV kann dennoch Werte enthalten, die beim späteren Öffnen die Ausführung von Tabellenkalkulationsformeln auslösen, daher sollten exportierte Dateien auch für das Zielformat bereinigt werden.

Ein praktischer Upload-Ablauf sieht so aus:

  1. Der Benutzer lädt eine CSV in die App hoch.
  2. Das Backend speichert die Originaldatei unter einem auftragsbezogenen Objektschlüssel oder Staging-Pfad.
  3. Das Backend erstellt eine Sandbox-Sitzung für den Auftrag.
  4. Das Backend kopiert die Datei in ein Sandbox-Arbeitsverzeichnis.
  5. Ein kleines, deterministisches Inspektionsskript liest die Datei und erstellt eine Schema-Zusammenfassung.
  6. Das Modell erhält die Schema-Zusammenfassung, die Benutzerfrage, die erlaubten Bibliotheken und die Ausgabeanforderungen.

Der Inspektionsschritt sollte deterministischer Code sein, den Sie besitzen, kein von einem Modell generierter Code. Er kann eine kompakte JSON-Zusammenfassung wie diese erzeugen:

{
  "file": "sales.csv",
  "rows": 84231,
  "columns": [
    {"name": "order_date", "type": "date", "null_rate": 0.01},
    {"name": "region", "type": "string", "sample_values": ["NA", "EMEA", "APAC"]},
    {"name": "revenue", "type": "number", "null_rate": 0.0}
  ],
  "safe_sample_rows": 5
}

Diese Zusammenfassung gibt dem Modell genügend Kontext, um eine Analyse zu entwerfen, ohne ihm den gesamten Datensatz auszuhändigen. Für sensible Arbeitslasten reduzieren oder entfernen Sie Beispielwerte, maskieren Sie Spalten oder verlangen Sie, dass der Benutzer genehmigt, welche Spalten verwendet werden dürfen.

Wie generiert und führt das Modell Python sicher aus?

Das Modell sollte einen Plan erstellen, bevor es Code produziert. Ein guter Plan nennt die Spalten, die es verwenden wird, die Transformationen, die es durchführen möchte, die Diagramme, die es zu erstellen erwartet, und die Ausgabedateien, die es schreiben wird. Dies gibt Ihrer Anwendung einen Prüfpunkt für Richtlinien und Benutzerüberprüfung.

Nachdem der Plan akzeptiert wurde, bitten Sie um Python-Code, der einem engen Vertrag folgt:

  • Lesen Sie Eingabedateien nur aus einem input/-Verzeichnis.
  • Schreiben Sie Artefakte nur in ein output/-Verzeichnis.
  • Verwenden Sie nur genehmigte Pakete.
  • Vermeiden Sie Netzwerkaufrufe, es sei denn, die Auftragsrichtlinie erlaubt sie explizit.
  • Geben Sie am Ende eine strukturierte Zusammenfassung aus.
  • Scheitern Sie klar, wenn erforderliche Spalten fehlen.

Auf konzeptioneller Ebene sieht die Orchestrierungsschleife wie folgt aus:

job = create_analysis_job(user_id, uploaded_file)
sandbox = create_sandbox(job_id=job.id, timeout_seconds=300)

copy_file_to_sandbox(uploaded_file, sandbox_path="/work/input/data.csv")
schema = run_owned_schema_inspector(sandbox, "/work/input/data.csv")

plan = ask_model_for_analysis_plan(
    user_question=job.question,
    schema=schema,
    allowed_packages=["pandas", "numpy", "matplotlib"],
    output_contract={"directory": "/work/output", "formats": ["png", "csv", "json"]},
)

review_policy(plan)

script = ask_model_for_python(plan=plan, schema=schema)
review_static_code_policy(script)

result = run_python_in_sandbox(
    sandbox=sandbox,
    script=script,
    working_dir="/work",
    timeout_seconds=120,
    memory_limit_mb=1024,
)

artifacts = collect_outputs(sandbox, "/work/output")
review_outputs(artifacts)
return_answer_to_user(result.summary, artifacts)

Dies ist Pseudocode, kein Produkt-SDK-Vertrag. Der Punkt ist die Grenze: Generierter Code wird überprüft, mit einem Timeout ausgeführt, auf bekannte Verzeichnisse beschränkt, und es folgen Ausgabesammlung und -prüfung.

Wenn das Skript fehlschlägt, senden Sie die Fehlermeldung und einen kleinen Codeausschnitt zurück an das Modell zur Reparatur. Senden Sie keine unbegrenzten Protokolle. Die Fehlerreparatur sollte dieselbe Paket-, Datei-, Netzwerk- und Ausgaberichtlinie wie der erste Versuch einhalten.

Kontrollierter Python-Paketzugriff für KI-Datenanalyse

Der Paketzugriff ist ein Bereich, in dem viele KI-Datenanalyse-Demos riskant werden. Ein Modell könnte nach einer Bibliothek fragen, weil es sie in einem Tutorial gesehen hat, weil ein Paketname plausibel klingt oder weil der Prompt des Benutzers sie vorgeschlagen hat. Ihre App sollte diese Vorschläge nicht in uneingeschränkte Paketinstallationen umwandeln.

Verwenden Sie eine Richtlinie, die der Sensitivität der Daten entspricht:

Paketrichtlinie Am besten geeignet für Kompromiss
Nur vorab erstelltes Image Produktionsarbeitslasten mit vorhersagbaren Analyseanforderungen Geringste Flexibilität, einfachste Prüfoberfläche
Zugelassene Paketliste Die meisten CSV-Analyseassistenten Gute Balance für pandas, Plotting und gängige Statistikpakete
Versionierte Installationen Reproduzierbare Analyseaufträge Erfordert Paketwartung und Schwachstellenprüfung
Zwischengespeicherter interner Mirror Enterprise- oder regulierte Datenworkflows Mehr Betriebsaufwand, bessere Kontrolle über die Lieferkette
Vom Benutzer genehmigte Installationen Explorative Tools für vertrauenswürdige Benutzer Flexibler, aber langsamer und erfordert klare Warnungen

Beginnen Sie für eine erste Produktionsversion mit einer vorab erstellten Umgebung oder einer kurzen Zugelassenenliste. Die meisten CSV-Fragen können mit einer kleinen Bibliothekssammlung beantwortet werden: pandas, numpy, matplotlib, seaborn, scipy und manchmal scikit-learn. Wenn ein Auftrag ein weiteres Paket benötigt, lassen Sie das Modell erklären warum und leiten Sie diese Anfrage dann durch eine menschliche Genehmigung oder einen Paketprüf-Workflow.

Protokollieren Sie Paketname, Version, Quell-Registry, Installationszeit und den Grund, warum das Paket angefordert wurde. Wenn Ihr Sicherheitsteam Abhängigkeitsscanner oder private Registries verwendet, integrieren Sie diesen Prozess, anstatt den Agenten ihn umgehen zu lassen.

Wie man Diagramme und Ausgabedateien validiert

Generierte Dateien sind Teil der Produkterfahrung, aber auch Teil der Vertrauensgrenze. Ein Diagramm kann falsch sein. Eine CSV kann formelähnliche Werte enthalten. Ein Notebook kann versteckten Code enthalten. Ein ZIP kann unerwartete Pfade enthalten. Behandeln Sie Ausgaben als zu inspizierende Artefakte, nicht nur als zum Herunterladen bestimmte Dateien.

Definieren Sie einen einfachen Ausgabevertrag:

{
  "required_files": ["summary.json"],
  "optional_files": ["chart-*.png", "filtered-data.csv"],
  "blocked_extensions": [".exe", ".sh", ".bat", ".html"],
  "max_total_size_mb": 25
}

Sammeln Sie für jeden abgeschlossenen Auftrag Dateien nur aus dem erwarteten Ausgabeverzeichnis. Validieren Sie MIME-Typ, Erweiterung, Größe und Pfad. Erstellen Sie für Bilder Vorschaubilder zur Vorschau. Bei CSV-Exporten maskieren Sie Tabellenkalkulationsformeln, falls die Datei in Excel oder Google Sheets geöffnet werden könnte. Für JSON-Zusammenfassungen validieren Sie gegen ein Schema, bevor Sie sie in der Benutzeroberfläche verwenden.

Geben Sie Benutzern einen Prüfschritt, bevor sie Ergebnisse herunterladen oder teilen. Der Prüfbildschirm sollte Folgendes anzeigen:

  • Die ursprüngliche Frage.
  • Den Datensatznamen und das verwendete Schema.
  • Die Analyseschritte in einfacher Sprache.
  • Die generierten Diagramme und Tabellen.
  • Alle aus Richtliniengründen ausgeschlossenen Spalten.
  • Warnungen, Fehler, Wiederholungsversuche oder Paketanforderungen.

Das Modell kann eine narrative Erklärung schreiben, aber die App sollte diese Erklärung auf Dateien und Protokolle aus der Sandbox-Ausführung stützen.

Sicherheitsprüfpunkte vor der Produktion

Ein KI-Datenanalyst ist nur dann ein nützliches internes Tool, wenn Sicherheits- und Plattformteams nachvollziehen können, was es tun darf. Die Überprüfung sollte Isolation, Ressourcengrenzen, Paketrichtlinie, Netzwerkverhalten, Geheimnisse, Protokolle und Löschung abdecken.

Verwenden Sie diese Checkliste, bevor Sie über einen Prototyp hinausgehen:

Prüfpunkt Zu beantwortende Frage
Isolationsgrenze Was trennt Code und Dateien eines Benutzers vom Host und anderen Benutzern?
Dateizugriff Kann generierter Code nur das Auftragsverzeichnis lesen oder auch einen breiteren Speicher?
Ressourcengrenzen Was begrenzt CPU-Zeit, Speicher, Festplatte, Prozessanzahl und Wanduhrzeit?
Netzwerkrichtlinie Ist der ausgehende Netzwerkzugriff deaktiviert, zugelassen, über Proxy oder vollständig geöffnet?
Paketrichtlinie Welche Pakete können installiert werden, von wo und mit welchen Versionskontrollen?
Geheimnisgrenze Werden API-Schlüssel, Datenbankanmeldeinformationen und Dienst-Token außerhalb der Sandbox gehalten, sofern nicht explizit zugewiesen?
Protokolle Werden Befehle, Paketinstallationen, Fehler, Dateilese-/Schreibvorgänge und Ausgabeartefakte aufgezeichnet?
Menschliche Überprüfung Welche Pläne, Codeausschnitte, Paketanforderungen und Ausgaben benötigen eine Genehmigung?
Bereinigung Wann werden Sandbox-Zustand, hochgeladene Dateien, generierte Skripte, Protokolle und Ausgaben gelöscht?

Vermeiden Sie absolute Behauptungen wie „der Code kann nicht entkommen“ oder „Daten können nicht durchsickern“. Der praktische Standard ist konkreter: Definieren Sie die Grenze, dokumentieren Sie die Kontrollen, testen Sie Fehlermodi und bewahren Sie genügend Prüfpfad auf, um unerwartetes Verhalten zu untersuchen.

Denken Sie bei Netzwerk- und Paketrichtlinien daran, dass die Abhängigkeitsinstallation eine Form von Netzwerkabgang ist, es sei denn, Pakete stammen aus einem vorab erstellten Image oder einem kontrollierten Mirror. Wenn der Datensatz sensibel ist, sollte der Netzwerkzugriff standardmäßig blockiert oder streng zugelassen sein. Wenn der Analyst live externe Daten benötigt, machen Sie dies zu einem separaten Tool mit eigenem Genehmigungs- und Protokollierungspfad.

Verwendung der Novita Agent Sandbox als Ausführungsschicht

Novita Agent Sandbox bietet isolierte, zustandsbehaftete Ausführungsumgebungen für KI-Agenten. Die aktuellen Novita-Dokumentationen beschreiben die Unterstützung für das Ausführen von Code, das Installieren von Abhängigkeiten, den Zugriff auf Dateien, die Verwendung von Browsern und das Beibehalten des Ausführungszustands über Sitzungen hinweg. Für einen KI-Datenanalysten lassen sich diese Grundlagen direkt auf den Ausführungsteil der Architektur abbilden: Erstellen eines Auftragsarbeitsbereichs, Verschieben von Dateien hinein, Ausführen von Analysecode, Sammeln von Artefakten und Bereinigen oder Beibehalten des Zustands basierend auf dem Sitzungsdesign.

Die SDK- und CLI-Dokumentation zur Novita Agent Sandbox listet offizielle SDK-Unterstützung für Python und JavaScript/TypeScript auf, was zu gängigen Anwendungs-Backends passt. Die Dokumentation zum Sandbox-Dateisystem beschreibt ein isoliertes Dateisystem mit festen 20 GB Speicherplatz für Sandboxes, nützlich zum Staging von CSV-Dateien und generierten Artefakten innerhalb eines auftragsbezogenen Arbeitsbereichs.

Halten Sie die Unterscheidung klar:

  • Die Implementierungsanleitung in diesem Artikel beschreibt eine allgemeine Architektur für KI-Datenanalyse-Apps.
  • Novita Agent Sandbox kann die Sandbox-Ausführungsschicht für diese Workflows bereitstellen.
  • Ihre Anwendung verwaltet weiterhin Benutzerauthentifizierung, Datenaufbewahrungsrichtlinie, Paketgenehmigung, Netzwerkrichtlinie, Ausgabeprüfung und Veröffentlichungs-/Bereitstellungsentscheidungen.

Diese Trennung hilft Teams, mit einem sauberen Verantwortungsmodell zu bauen. Das Modell schlägt die Analyse vor und erklärt sie. Die Anwendung setzt die Produktrichtlinie durch. Die Sandbox bietet die kontrollierte Laufzeit, in der Code, Dateien, Pakete, Diagramme und Protokolle getrennt vom Hauptanwendungsserver behandelt werden können.

Fazit

Das stärkste Design für einen KI-Datenanalysten ist nicht „lass das Modell Python ausführen“. Es ist eine kontrollierte Schleife: Datensatz inspizieren, Modell um einen Plan bitten, generierten Code überprüfen, in einer Sandbox ausführen, validierte Artefakte sammeln, dem Benutzer zeigen, was passiert ist, und den Zustand bereinigen, wenn der Auftrag abgeschlossen ist. Diese Struktur hält die Benutzererfahrung schnell und gibt gleichzeitig Engineering- und Sicherheitsteams konkrete Prüfpunkte zur Bewertung vor der Produktion.

Für Teams, die dieses Muster bauen, fangen Sie klein an: CSV-Upload, Schemaüberprüfung, eine kurze Paketzugelassenenliste, Diagrammausgabe, strenge Timeouts und einen sichtbaren Prüfbildschirm. Fügen Sie breiteren Paketzugriff, Netzwerktools, Persistenz und Automatisierung nur hinzu, nachdem die Grenzen dokumentiert und getestet wurden.

FAQ

Warum braucht ein KI-Datenanalyst eine Sandbox?

Er braucht eine Sandbox, weil der Workflow nicht vertrauenswürdige Dateien, modellgenerierten Python-Code, Paketanforderungen, Diagrammerstellung und herunterladbare Artefakte kombiniert. Die Ausführung dieser Arbeit in einer separaten Umgebung gibt Ihrer App einen Ort, um Datei-, Ressourcen-, Paket-, Netzwerk-, Protokollierungs- und Bereinigungskontrollen anzuwenden.

Sollte das Modell die vollständige CSV sehen?

Normalerweise nein. Beginnen Sie damit, dem Modell eine Schema-Zusammenfassung, sichere Beispiele, Spaltenbeschreibungen und die Benutzerfrage zu senden. Behalten Sie die Rohdatei in der Sandbox, es sei denn, Ihr Produkt hat einen geprüften Grund, dem Modell mehr Daten auszusetzen.

Können Paketinstallationen erlaubt werden?

Ja, aber sie sollten kontrolliert werden. Verwenden Sie ein vorab erstelltes Image, eine Zugelassenenliste, festgelegte Versionen, einen privaten Mirror oder einen Genehmigungs-Workflow. Lassen Sie nicht zu, dass modellgenerierter Code beliebige Pakete aus dem öffentlichen Internet ohne Überprüfung installiert.

Welche Dateien sollte die App an Benutzer zurückgeben?

Geben Sie nur validierte Dateien aus einem bekannten Ausgabeverzeichnis zurück, wie Diagrammbilder, Zusammenfassungs-JSON und bereinigte CSV-Exporte. Blockieren Sie unerwartete Erweiterungen, große Dateien, versteckte Pfade und Artefakte, die nicht Teil des Ausgabevertrags waren.

Ist dies eine Compliance-Garantie?

Nein. Eine Sandbox ist ein Teil der Ausführungsarchitektur. Compliance- und Sicherheitsfreigabe hängen von Ihren Daten, Ihrem Bedrohungsmodell, Ihren Kontrollen, der Protokollierung, der Aufbewahrung, dem Überprüfungsprozess und der Bereitstellungsumgebung ab.

Empfohlene Artikel