Lassen Sie KI SAS-Code ausführen, nicht nur schreiben

Jedes Modell kann SAS erzeugen. Ohne eine Möglichkeit, es auszuführen, weiß niemand, ob es funktioniert. Die offene Run API von Jenner gibt einem Agenten die andere Hälfte des Kreislaufs: Programm ausführen, echte Ausgaben und echte Fehler lesen, korrigieren, erneut ausführen – ohne SAS-Lizenz, ohne lokale Installation.

Der anonyme Zugang funktioniert ganz ohne API-Schlüssel.

Code zu generieren ist die leichte Hälfte

Ein Assistent, der SAS schreibt und dort aufhört, liefert Ihnen etwas, das richtig aussieht. Ob das Makro aufgelöst wird, ob der Merge die erwarteten Variablen übernimmt, ob PROC MEANS 19 Zeilen zurückgibt oder 0 – nichts davon lässt sich wissen, bevor das Programm läuft.

Historisch bedeutete das Ausführen eine SAS-Lizenz und eine Installation – genau das, was ein Agent nicht hat. Die Run API hebt diese Einschränkung auf: Ein einziger HTTP-Aufruf führt den Code aus und liefert strukturierte Ergebnisse zurück, mit denen das Modell tatsächlich arbeiten kann.

Der Kreislauf

Generieren, prüfen, ausführen, iterieren – alles maschinenlesbar.

1

Generieren

Das Modell schreibt SAS – einen DATA-Step, eine PROC, ein Makro. Nichts Besonderes nötig: Jenner akzeptiert Standard-SAS-Syntax, also läuft genau der Code, den ein Assistent ohnehin schreiben kann.

2

Prüfen

Senden Sie das Skript per POST an /v1/validate für einen reinen Parse-Durchlauf. Die Diagnosen kommen zurück, ohne dass etwas ausgeführt wird – so erkennt ein Agent einen Syntaxfehler, bevor er einen Lauf dafür verbraucht.

3

Ausführen

Senden Sie per POST an /v1/run das Skript und beliebige CSV- oder Parquet-Eingaben. Jenner führt es in einem isolierten Container aus und liefert die Listing-Ausgabe, das NOTE/WARNING/ERROR-Log, einen Exit-Code sowie jedes Dataset und jede Datei zurück, die das Programm erzeugt hat.

4

Iterieren

Das Log und die Diagnosen sind strukturiertes Feedback, kein Screenshot. Der Agent liest den tatsächlichen Fehler, korrigiert die tatsächliche Zeile und führt erneut aus – der Kreislauf schließt sich ohne Menschen dazwischen.

So sieht das aus

Echte Anfragen an die öffentliche API. Kein Schlüssel, keine Einrichtung.

Skript ausführen, Listing zurückbekommen

Anfrage
curl -X POST https://api.jenneranalytics.com/v1/quick \
  --data-binary @analysis.sas
Antwort
                          The MEANS Procedure

 Variable        N           Mean        Std Dev
 -----------------------------------------------
 bmi            19     17.8420103      1.4625169
 -----------------------------------------------

Fehler erkennen, bevor Sie einen Lauf dafür verbrauchen

In diesem Snippet fehlt ein Semikolon. Ein reiner Parse-Aufruf benennt das Problem, sodass der Agent es beheben und weitermachen kann.

Fehlerhaftes SAS
data demo;
  set sashelp.class      /* <- missing semicolon */
  bmi = weight / (height**2) * 703;
run;
POST /v1/validate
{
  "valid": false,
  "diagnostics": [
    { "severity": "error",
      "message": "Unexpected token: Eq, expected Semi" }
  ]
}

Ergebnisse lesen, mit denen das Modell arbeiten kann

Ein vollständiger Lauf liefert das Listing, das Log, einen Exit-Code und jedes Dataset, das das Programm erzeugt hat – samt Zeilenzahlen, damit der Agent prüfen kann, ob er wirklich Daten erhalten hat, statt es anzunehmen.

POST /v1/run
{
  "run_id": "r_c8679761197f4f9d8a3bc021...",
  "status": "ok",
  "exit_code": 0,
  "output":   "...formatted listing tables...",
  "log":      "NOTE: PROC MEANS statement used.",
  "datasets": [ { "name": "demo", "row_count": 19 } ],
  "files":    [],
  "diagnostics": [],
  "duration_ms": 412,
  "jenner_version": "..."
}

Endpunkte

Basis-URL https://api.jenneranalytics.com/v1

EndpunktZweck
POST/v1/runFührt ein Skript mit optionalen Dateneingaben aus. Liefert Ausgabe, Log, Exit-Code, Datasets, Dateien und Diagnosen als JSON.
POST/v1/run/streamWie /v1/run, aber als Server-Sent Events gestreamt, sodass das Log schon eintrifft, während das Programm noch läuft.
POST/v1/quickPraktischer Einzeiler. Rohes Skript rein, Listing als Klartext zurück – der schnellste Weg zur Antwort auf „Funktioniert dieses SAS?“
POST/v1/validateReine Syntaxprüfung. Liefert Diagnosen, ohne auszuführen. Makros werden nicht expandiert – behandeln Sie Fehler bei makrolastigem Code daher als Hinweis.
GET/v1/run/{run_id}Ruft einen abgeschlossenen Lauf, seine Dateien oder eine Dataset-Vorschau bzw. einen Download ab. Ergebnisse bleiben eine Stunde verfügbar und erfordern das Zugriffstoken des Laufs.

Zugang

Starten Sie ohne Schlüssel. Fügen Sie einen hinzu, wenn Sie mehr Spielraum brauchen.

StufeAuthentifizierungRatenbegrenzungTimeout
AnonymKein Schlüssel erforderlich1.000 Anfragen/Std. pro IP30 Sekunden
FreeE-Mail-Registrierung1.500 Anfragen/Std.60 Sekunden
ProAPI-Schlüssel10.000 Anfragen/Std.5 Minuten
EnterpriseAPI-SchlüsselIndividuellIndividuell

Funktioniert mit dem, was Sie bereits nutzen

Ihre KI-Tools

  • Claude Code von Anthropic
  • Claude Desktop
  • Codex von OpenAI
  • ChatGPT
  • Jedes System, das eine HTTP-Anfrage stellen kann

Oder direkt aus Jenner heraus

  • Der kollaborative Web-Workspace
  • Die macOS-Desktop-App
  • Ein nativer Jupyter-Kernel

Hinter allen steht dieselbe Ausführungs-Engine: Code, den ein Agent über die API validiert hat, verhält sich genauso, wenn eine Person ihn öffnet.

Häufige Fragen

Nein. Anonyme Anfragen funktionieren ganz ohne Schlüssel, begrenzt auf 1.000 Anfragen pro Stunde je IP mit 30 Sekunden Ausführungs-Timeout. Das reicht, damit ein Agent echten Code testen und daran weiterarbeiten kann. Ein kostenloser Schlüssel hebt die Grenze an, Pro- oder Enterprise-Schlüssel noch weiter.

Nein. Die API führt den Code in einem isolierten Container auf unserer Infrastruktur aus. Es gibt keine SAS-Lizenz, keine lokale Installation und nichts, was die Host-Umgebung des Modells bereitstellen müsste.

Ja. /v1/run nimmt neben dem Skript beliebig viele Eingabedateien in CSV oder Parquet entgegen. Datasets, die das Programm erzeugt, kommen mit Zeilenzahlen sowie Vorschau- oder Download-URLs zurück, sodass ein Agent Ergebnisse prüfen kann, statt zu raten.

Jeder Lauf liefert einen Exit-Code, das vollständige NOTE/WARNING/ERROR-Log und strukturierte Diagnosen. Fehler sind ausdrücklich und maschinenlesbar, sodass ein Agent unterscheiden kann, ob ein Programm funktioniert hat oder nicht – genau das Signal, das einem reinen Generieren-Workflow fehlt.

Eine Stunde. Jeder Lauf liefert ein Zugriffstoken, das nur für diesen Lauf gilt; die GET-Endpunkte benötigen es, und es ist unabhängig von Ihrem API-Schlüssel.

Geben Sie Ihrem Agenten die Möglichkeit, seine Arbeit zu prüfen

Kein Schlüssel nötig zum Start. Und nie eine SAS-Lizenz.