Każdy model potrafi wygenerować kod SAS. Bez możliwości jego wykonania nikt nie wie, czy ten kod działa. Otwarte Run API Jenner daje agentowi drugą połowę pętli: uruchom program, odczytaj rzeczywisty wynik i rzeczywiste błędy, popraw kod i uruchom ponownie — bez licencji SAS i bez instalacji lokalnej.
Dostęp anonimowy działa całkowicie bez klucza API.
Asystent, który pisze kod SAS i na tym poprzestaje, zwraca coś, co wygląda poprawnie. Czy makro się rozwinie, czy złączenie pobierze oczekiwane zmienne, czy PROC MEANS zwróci 19 wierszy, czy 0 — tego nie da się stwierdzić, dopóki program nie zostanie uruchomiony.
Dotąd uruchomienie kodu SAS wymagało licencji i instalacji — czyli dokładnie tego, czego agent nie ma. Run API znosi to ograniczenie: jedno wywołanie HTTP wykonuje kod i zwraca ustrukturyzowane wyniki, na których model może faktycznie pracować.
Generowanie, sprawdzanie, uruchamianie, iteracja — wszystko czytelne maszynowo.
Model pisze kod SAS — krok DATA, procedurę PROC, makro. Nic specjalnego nie jest potrzebne: Jenner przyjmuje standardową składnię SAS, więc uruchamiany jest dokładnie taki kod, jaki asystent już potrafi napisać.
Wyślij skrypt metodą POST na /v1/validate, aby wykonać samo parsowanie. Diagnostyka wraca bez uruchamiania czegokolwiek, więc agent może wychwycić błąd składni, zanim zużyje uruchomienie.
Wyślij POST na /v1/run ze skryptem i dowolnymi danymi wejściowymi CSV lub Parquet. Jenner wykonuje go w izolowanym kontenerze i zwraca wynik listingu, log NOTE/WARNING/ERROR, kod wyjścia oraz każdy zbiór danych i plik utworzony przez program.
Log i diagnostyka to ustrukturyzowana informacja zwrotna, a nie zrzut ekranu. Agent czyta rzeczywisty błąd, poprawia rzeczywistą linię i uruchamia kod ponownie — domykając pętlę bez człowieka pośrodku.
Prawdziwe żądania do publicznego API. Bez klucza, bez konfiguracji.
curl -X POST https://api.jenneranalytics.com/v1/quick \
--data-binary @analysis.sas The MEANS Procedure
Variable N Mean Std Dev
-----------------------------------------------
bmi 19 17.8420103 1.4625169
-----------------------------------------------W tym fragmencie brakuje średnika. Wywołanie samego parsowania wskazuje problem, więc agent może go poprawić i działać dalej.
data demo;
set sashelp.class /* <- missing semicolon */
bmi = weight / (height**2) * 703;
run;{
"valid": false,
"diagnostics": [
{ "severity": "error",
"message": "Unexpected token: Eq, expected Semi" }
]
}Pełne uruchomienie zwraca listing, log, kod wyjścia i każdy zbiór danych utworzony przez program — wraz z liczbą wierszy, dzięki czemu agent może potwierdzić, że faktycznie otrzymał dane, zamiast to zakładać.
{
"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": "..."
}Bazowy adres URL https://api.jenneranalytics.com/v1
| Punkt końcowy | Przeznaczenie |
|---|---|
POST/v1/run | Uruchamia skrypt z opcjonalnymi danymi wejściowymi. Zwraca wynik, log, kod wyjścia, zbiory danych, pliki i diagnostykę w formacie JSON. |
POST/v1/run/stream | To samo co /v1/run, ale strumieniowane jako Server-Sent Events, więc log przychodzi jeszcze w trakcie działania programu. |
POST/v1/quick | Wygoda jednej linijki. Na wejściu surowy skrypt, na wyjściu listing w zwykłym tekście — najszybszy sposób na odpowiedź „czy ten kod SAS działa?” |
POST/v1/validate | Sprawdzenie samej składni. Zwraca diagnostykę bez wykonywania kodu. Makra nie są rozwijane, więc błędy w kodzie obfitującym w makra traktuj orientacyjnie. |
GET/v1/run/{run_id} | Pobiera zakończone uruchomienie, jego pliki albo podgląd lub pobranie zbioru danych. Wyniki są dostępne przez godzinę i wymagają tokena dostępu do danego uruchomienia. |
Zacznij bez klucza. Dodaj go, gdy potrzebny będzie większy zapas.
| Poziom | Uwierzytelnianie | Limit zapytań | Limit czasu |
|---|---|---|---|
| Anonimowy | Klucz nie jest wymagany | 1000 zapytań/godz. na adres IP | 30 sekund |
| Free | Rejestracja e-mailem | 1500 zapytań/godz. | 60 sekund |
| Pro | Klucz API | 10 000 zapytań/godz. | 5 minut |
| Enterprise | Klucz API | Indywidualny | Indywidualny |
Za wszystkimi stoi ten sam silnik wykonawczy, więc kod sprawdzony przez agenta w API zachowa się tak samo, gdy otworzy go człowiek.
Na start nie potrzeba klucza. I nigdy licencji SAS.