- KI-Datenanalyst-Architektur: Hochladen, Analysieren, Überprüfen
- Was läuft in einer Python-Sandbox für Datenanalyse?
- Wie sollten CSV-Upload und Schema-Inspection funktionieren?
- Wie generiert und führt das Modell Python sicher aus?
- Kontrollierter Python-Paketzugriff für KI-Datenanalyse
- Wie man Diagramme und Ausgabedateien validiert
- Sicherheitscheckpunkte vor der Produktion
- Verwendung der Novita Agent Sandbox als Ausführungsschicht
- Fazit
- FAQ
- Empfohlene Artikel
Ein KI-Datenanalyst benötigt Sandboxed Python, wenn benutzerbereitgestellte Datensätze, modellgenerierter Code, Paketinstallationen, generierte 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, das Modell nach einem Plan fragen, das erzeugte Python überprüfen, in einer eingeschränkten Sandbox ausführen, die Ausgabeartefakte validieren und dem Benutzer zeigen, was passiert ist.
KI-Datenanalyst-Architektur: Hochladen, Analysieren, Überprüfen
Das Produktmuster ist an der Oberfläche einfach: Ein Benutzer lädt eine CSV hoch, stellt eine Frage in natürlicher Sprache und erwartet nützliche Tabellen, Diagramme und herunterladbare Dateien. Unter der Haube führt die App einen kleinen Agenten-Workflow mit echten Seiteneffekten aus. Das Modell plant die Analyse und entwirft Python, 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 auf:
- Ein CSV-Upload für einen Analyseauftrag akzeptieren.
- Einen auftragsbezogenen Sandbox-Arbeitsbereich erstellen.
- Eigenen Schema-Inspectionscode ausführen, bevor das Modell nach Python gefragt wird.
- Das Modell nach einem Analyseplan fragen, dann nach einem Skript, das Ihre Datei- und Paketregeln befolgt.
- Das Skript mit Zeit-, Speicher-, Festplatten-, Paket- und Netzwerkbeschränkungen ausführen.
- Nur validierte Artefakte aus einem bekannten Ausgabeverzeichnis sammeln.
- Dem Benutzer die Antwort, Diagramme, Warnungen, Protokolle und die zum Herunterladen ausgewählten Dateien anzeigen.
Diese Trennung hält die Verantwortlichkeiten klar. Das Modell schlägt Analysen vor und erklärt sie. Das Backend wendet die Produktrichtlinie und Orchestrierung an. 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 Datenanalyse?
Platzieren Sie den Analyse-Arbeitsbereich innerhalb der Sandbox, nicht in Ihrem Hauptanwendungsserver. Die Sandbox sollte ein schmales Eingabepaket für einen einzelnen Analyseauftrag erhalten: die hochgeladene Datei, ein kleines Manifest, ein generiertes Skript und jede genehmigte Laufzeitkonfiguration. Das Anwendungs-Backend sollte Authentifizierung, Abrechnung, Benutzeridentität, Langzeitspeicherung und Produktionsgeheimnisse außerhalb dieses Arbeitsbereichs halten.
Für einen KI-Datenanalysten übernimmt die Sandbox normalerweise diese Aufgaben:
| Sandbox-Aufgabe | Warum gehört sie hierhin |
|---|---|
| Dateibereitstellung | Die hochgeladene CSV kann gescannt und in ein isoliertes Arbeitsverzeichnis kopiert werden, bevor Python sie berührt. |
| Schema-Inspection | Die App kann Spaltennamen, Typen, Null-Raten, Zeilenanzahl und Beispielwerte ableiten, ohne die gesamte Datei dem Modell auszusetzen. |
| Python-Ausführung | Vom Modell generierter Code läuft getrennt vom Anwendungsserver und kann zeitlich begrenzt werden. |
| Paketvorbereitung | Nur genehmigte Abhängigkeiten werden installiert oder dem Auftrag zur Verfügung gestellt. |
| 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 ablaufen gelassen werden. |
Halten Sie den Prompt des Modells kleiner als die Daten. Senden Sie eine Schema-Zusammenfassung, ein paar repräsentative Zeilen, wenn die Richtlinie es erlaubt, Spaltenbeschreibungen, Benutzerabsicht und Einschränkungen wie “trainiere kein Modell” oder “verwende nur genehmigte Pakete”. Der Rohdatensatz sollte im Sandbox-Dateisystem bleiben, es sei denn, Ihr Produkt hat einen spezifischen, überprüften Grund, mehr preiszugeben.
Wie sollten CSV-Upload und Schema-Inspection funktionieren?
Behandeln Sie jeden Upload als nicht vertrauenswürdige Eingabe. Validieren Sie Dateityp, Größe, Kodierung, Trennzeichen, Zeilenanzahl, Spaltenanzahl und verdächtige Formeln, bevor das Modell eingebunden wird. Eine CSV kann immer noch Werte enthalten, die später beim Öffnen eine Tabellenkalkulationsformel auslösen, daher sollten exportierte Dateien auch für das Zielformat bereinigt werden.
Ein praktischer Upload-Ablauf sieht so aus:
- Der Benutzer lädt eine CSV in die App hoch.
- Das Backend speichert die Originaldatei unter einem auftragsbezogenen Objektschlüssel oder Staging-Pfad.
- Das Backend erstellt eine Sandbox-Sitzung für den Auftrag.
- Das Backend kopiert die Datei in ein Sandbox-Arbeitsverzeichnis.
- Ein kleines, deterministisches Inspection-Skript liest die Datei und erstellt eine Schema-Zusammenfassung.
- Das Modell erhält die Schema-Zusammenfassung, die Benutzerfrage, die erlaubten Bibliotheken und die Ausgabeanforderungen.
Der Inspection-Schritt sollte deterministischer Code sein, den Sie besitzen, nicht modellgenerierter 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 den gesamten Datensatz auszuhändigen. Bei sensiblen 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 ausführen möchte, die Diagramme, die es zu erstellen erwartet, und die Ausgabedateien, die es schreiben wird. Dies gibt Ihrer Anwendung einen Kontrollpunkt für die Richtlinie und Benutzerüberprüfung.
Nachdem der Plan akzeptiert wurde, bitten Sie um Python, das einem engen Vertrag folgt:
- Eingabedateien nur aus einem
input/-Verzeichnis lesen. - Artefakte nur in ein
output/-Verzeichnis schreiben. - Nur genehmigte Pakete verwenden.
- Keine Netzwerkaufrufe tätigen, es sei denn, die Auftragsrichtlinie erlaubt sie ausdrücklich.
- Am Ende eine strukturierte Zusammenfassung ausgeben.
- Bei fehlenden erforderlichen Spalten klar fehlschlagen.
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 Abgrenzung: Generierter Code wird überprüft, mit einem Timeout ausgeführt, auf bekannte Verzeichnisse beschränkt und gefolgt von der Erfassung und Überprüfung der Ausgaben.
Wenn das Skript fehlschlägt, senden Sie die Fehlermeldung und einen kleinen Code-Auszug zurück an das Modell zur Reparatur. Senden Sie keine unbegrenzten Protokolle. Die Fehlerreparatur sollte dieselbe Paket-, Datei-, Netzwerk- und Ausgabe-Richtlinie wie der erste Versuch einhalten.
Kontrollierter Python-Paketzugriff für KI-Datenanalyse
Der Paketzugriff ist der Bereich, in dem viele KI-Datenanalysten-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 die Benutzereingabe dies vorgeschlagen hat. Ihre App sollte diese Vorschläge nicht in uneingeschränkte Paketinstallationen umwandeln.
Verwenden Sie eine Richtlinie, die zur Sensitivität der Daten passt:
| Paketrichtlinie | Beste Eignung | Abwägung |
|---|---|---|
| Nur vorab erstelltes Image | Produktions-Workloads mit vorhersehbaren Analyseanforderungen | Geringste Flexibilität, einfachste Prüfoberfläche |
| Zugelassene Pakete | Die meisten CSV-Analyse-Assistenten | Gute Balance für pandas, Plotting und gängige Statistikpakete |
| Versionierte Installationen | Reproduzierbare Analyseaufträge | Erfordert Paketwartung und Sicherheitsüberprüfung |
| Gecachter interner Mirror | Unternehmens- oder regulierte Daten-Workflows | Mehr operativer Aufwand, bessere Kontrolle über die Lieferkette |
| Vom Benutzer genehmigte Installationen | Erkundungstools für vertrauenswürdige Benutzer | Flexibler, aber langsamer und benötigt klare Warnungen |
Beginnen Sie für eine erste Produktionsversion mit einer vorab erstellten Umgebung oder einer kurzen Zulassungsliste. Die meisten CSV-Fragen können mit einem kleinen Satz von Bibliotheken beantwortet werden: pandas, numpy, matplotlib, seaborn, scipy und manchmal scikit-learn. Wenn ein Auftrag ein anderes Paket benötigt, lassen Sie das Modell erklären, warum, und leiten Sie diese Anfrage dann durch eine menschliche Genehmigung oder einen Paketüberprüfungs-Workflow.
Protokollieren Sie Paketname, Version, Quell-Registry, Installationszeit und den Grund, warum das Paket angefordert wurde. Wenn Ihr Sicherheitsteam Abhängigkeits-Scanner oder private Registries verwendet, integrieren Sie sich in 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 formelartige Werte enthalten. Ein Notebook kann versteckten Code enthalten. Ein ZIP kann unerwartete Pfade enthalten. Behandeln Sie Ausgaben als zu inspizierende Artefakte, nicht nur als herunterladbare 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 Thumbnails zur Vorschau. Entschärfen Sie bei CSV-Exporten Tabellenkalkulationsformeln, wenn die Datei möglicherweise in Excel oder Google Sheets geöffnet wird. Validieren Sie JSON-Zusammenfassungen anhand eines Schemas, bevor Sie sie in der UI verwenden.
Geben Sie Benutzern einen Überprüfungsschritt, bevor sie Ergebnisse herunterladen oder teilen. Der Überprüfungsbildschirm 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, Wiederholungen oder Paketanfragen.
Das Modell kann eine narrative Erklärung schreiben, aber die App sollte diese Erklärung auf Dateien und Protokollen aus der Sandbox-Ausführung stützen.
Sicherheitscheckpunkte vor der Produktion
Ein KI-Datenanalyst ist nur dann ein nützliches internes Werkzeug, wenn Sicherheits- und Plattformteams nachvollziehen können, was er 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:
| Checkpunkt | Zu beantwortende Frage |
|---|---|
| Isolationsgrenze | Was trennt den Code und die Dateien eines Benutzers vom Host und anderen Benutzern? |
| Dateizugriff | Kann generierter Code nur das Auftragsverzeichnis lesen oder kann er breiteren Speicher sehen? |
| Ressourcengrenzen | Was begrenzt CPU-Zeit, Speicher, Festplatte, Prozessanzahl und Wanduhrzeit? |
| Netzwerkrichtlinie | Ist der ausgehende Netzwerkzugriff deaktiviert, zugelassen, über Proxy oder vollständig offen? |
| Paketrichtlinie | Welche Pakete können installiert werden, von wo und mit welchen Versionskontrollen? |
| Geheimnisgrenze | Werden API-Schlüssel, Datenbankanmeldeinformationen und Diensttoken außerhalb der Sandbox gehalten, es sei denn, sie sind explizit eingebunden? |
| Protokolle | Werden Befehle, Paketinstallationen, Fehler, Dateilesen/-schreiben und Ausgabeartefakte aufgezeichnet? |
| Menschliche Überprüfung | Welche Pläne, Codeausschnitte, Paketanfragen und Ausgaben benötigen 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 ausreichend Audit-Trail, um unerwartetes Verhalten zu untersuchen.
Denken Sie bei Netzwerk- und Paketrichtlinie daran, dass die Abhängigkeitsinstallation eine Form des Netzwerkabflusses 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 externe Live-Daten benötigt, machen Sie dies zu einem separaten Tool mit eigenem Genehmigungs- und Protokollierungspfad.
Verwendung der Novita Agent Sandbox als Ausführungsschicht
Die Novita Agent Sandbox bietet isolierte, zustandsbehaftete Ausführungsumgebungen für KI-Agenten. Die aktuellen Novita-Dokumente beschreiben die Unterstützung für die Ausführung 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 Primitive direkt auf den Ausführungsteil der Architektur abbilden: einen Auftragsarbeitsbereich erstellen, Dateien hineinverschieben, Analysecode ausführen, Artefakte sammeln und je nach Sitzungsdesign bereinigen oder den Zustand beibehalten.
Die Dokumentation des Novita Agent Sandbox SDK und CLI listet offizielle SDK-Unterstützung für Python und JavaScript/TypeScript auf, was zu gängigen Anwendungs-Backends passt. Die Dokumentation des Sandbox-Dateisystems beschreibt ein isoliertes Dateisystem mit festem 20 GB Speicherplatz für Sandboxen, nützlich für das Staging von CSV-Dateien und generierten Artefakten in einem auftragsbezogenen Arbeitsbereich.
Halten Sie die Unterscheidung klar:
- Die Implementierungsanleitung in diesem Artikel beschreibt eine allgemeine Architektur für KI-Datenanalysten-Apps.
- Die Novita Agent Sandbox kann die Sandbox-Ausführungsschicht für diese Workflows bereitstellen.
- Ihre Anwendung besitzt weiterhin die Benutzerauthentifizierung, die Datenaufbewahrungsrichtlinie, die Paketgenehmigung, die Netzwerkrichtlinie, die Ausgabeüberprüfung und die Entscheidungen zur Veröffentlichung/Bereitstellung.
Diese Trennung hilft Teams, mit einem sauberen Verantwortungsmodell zu bauen. Das Modell schlägt Analysen vor und erklärt sie. Die Anwendung setzt die Produktrichtlinie durch. Die Sandbox bietet die kontrollierte Laufzeitumgebung, in der Code, Dateien, Pakete, Diagramme und Protokolle getrennt vom Hauptanwendungsserver verwaltet 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: den Datensatz untersuchen, das 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, während sie Engineering- und Sicherheitsteams konkrete Kontrollpunkte zur Bewertung vor der Produktion gibt.
Für Teams, die dieses Muster implementieren, beginnen Sie klein: CSV-Upload, Schema-Inspection, eine kurze Paketzulassungsliste, Diagrammausgabe, strenge Timeouts und einen sichtbaren Überprüfungsbildschirm. Fügen Sie breiteren Paketzugriff, Netzwerktools, Persistenz und Automatisierung erst 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, modellgeneriertes Python, Paketanfragen, Diagrammerstellung und herunterladbare Artefakte kombiniert. Das Ausführen dieser Arbeit in einer separaten Umgebung gibt Ihrer App einen Ort, um Datei-, Ressourcen-, Paket-, Netzwerk-, Protokollierungs- und Bereinigungskontrollen anzuwenden.
Sollte das Modell die gesamte CSV sehen?
Normalerweise nein. Senden Sie dem Modell zunächst eine Schema-Zusammenfassung, sichere Beispiele, Spaltenbeschreibungen und die Frage des Benutzers. Lassen Sie die Rohdatei in der Sandbox, es sei denn, Ihr Produkt hat einen überprüften Grund, dem Modell mehr Daten preiszugeben.
Können Paketinstallationen erlaubt werden?
Ja, aber sie sollten kontrolliert werden. Verwenden Sie ein vorab erstelltes Image, eine Zulassungsliste, 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, Ihrer Protokollierung, Aufbewahrung, Ihrem Überprüfungsprozess und Ihrer Bereitstellungsumgebung ab.
