Lad AI køre SAS-kode, ikke bare skrive den

Enhver model kan generere SAS. Uden en måde at køre den på ved ingen, om den virker. Jenners åbne Run API giver agenten den anden halvdel af løkken: kør programmet, læs det rigtige output og de rigtige fejl, ret det, kør igen — ingen SAS-licens, ingen lokal installation.

Anonym adgang virker helt uden API-nøgle.

At generere kode er den lette halvdel

En assistent, der skriver SAS og stopper der, giver dig noget, der ser rigtigt ud. Om makroen resolves, om et merge samler de variable, du forventede, om PROC MEANS returnerer 19 rækker eller 0 — intet af det kan vides, før programmet kører.

Historisk set krævede det en SAS-licens og en installation at køre det, hvilket er præcis det, en agent ikke har. Run API'et fjerner den begrænsning: ét HTTP-kald kører koden og returnerer strukturerede resultater, som modellen faktisk kan ræsonnere over.

Løkken

Generér, tjek, kør, gentag — det hele maskinlæsbart.

1

Generér

Modellen skriver SAS — et DATA step, en PROC, en makro. Der kræves ikke noget særligt: Jenner accepterer standard-SAS-syntaks, så den kode, en assistent allerede kan skrive, er den kode, der kører.

2

Tjek

POST scriptet til /v1/validate for kun at få det parset. Diagnostikken kommer tilbage, uden at noget køres, så en agent kan fange en syntaksfejl, før den bruger en kørsel.

3

Kør

POST til /v1/run med scriptet og eventuelle CSV- eller Parquet-input. Jenner kører det i en sandboxet container og returnerer listing-outputtet, NOTE/WARNING/ERROR-loggen, en exitkode og hvert datasæt og hver fil, programmet har produceret.

4

Iterér

Loggen og diagnostikken er struktureret feedback, ikke et skærmbillede. Agenten læser den faktiske fejl, retter den faktiske linje og kører igen — og lukker løkken uden et menneske i midten.

Sådan ser det ud

Rigtige anmodninger mod det offentlige API. Ingen nøgle, ingen opsætning.

Kør et script, få listingen tilbage

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

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

Fang en fejl, før du bruger en kørsel på den

Dette uddrag mangler et semikolon. Et kald, der kun parser, peger på problemet, så agenten kan rette det og komme videre.

SAS med fejl
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" }
  ]
}

Læs resultater, modellen kan ræsonnere over

En fuld kørsel returnerer listingen, loggen, en exitkode og hvert datasæt, programmet har produceret — med rækkeantal, så agenten kan bekræfte, at den fik data, i stedet for at antage det.

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": "..."
}

Endpoints

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

EndpointFormål
POST/v1/runKør et script med valgfrie datainput. Returnerer output, log, exitkode, datasæt, filer og diagnostik som JSON.
POST/v1/run/streamSamme som /v1/run, streamet som Server-Sent Events, så loggen kommer, mens programmet stadig kører.
POST/v1/quickBekvemmelighed i én linje. Råt script ind, listing i klartekst tilbage — den hurtigste vej til svaret på “virker denne SAS?”
POST/v1/validateKun syntakstjek. Returnerer diagnostik uden at køre noget. Makroer udfoldes ikke, så behandl makrotunge fejl som vejledende.
GET/v1/run/{run_id}Hent en færdig kørsel, dens filer eller en forhåndsvisning eller download af et datasæt. Resultaterne lever i én time og kræver kørslens adgangstoken.

Adgang

Start uden nøgle. Tilføj en, når du får brug for mere plads.

NiveauGodkendelseAnmodningsgrænseTimeout
AnonymIngen nøgle påkrævet1.000 req./t pr. IP30 sekunder
FreeE-mailtilmelding1.500 req./t60 sekunder
ProAPI-nøgle10.000 req./t5 minutter
EnterpriseAPI-nøgleEfter aftaleEfter aftale

Virker med det, du allerede bruger

Dine AI-værktøjer

  • Anthropics Claude Code
  • Claude Desktop
  • OpenAIs Codex
  • ChatGPT
  • Ethvert system, der kan sende en HTTP-forespørgsel

Eller inde fra Jenner

  • Webarbejdsområdet til samarbejde
  • Desktop-appen til macOS
  • En indbygget Jupyter-kerne

Den samme eksekveringsmotor ligger bag dem alle, så kode, en agent har valideret via API'et, opfører sig ens, når en person åbner den.

Ofte stillede spørgsmål

Nej. Anonyme anmodninger virker helt uden nøgle, begrænset pr. IP til 1.000 anmodninger i timen med en eksekveringstimeout på 30 sekunder. Det er nok til, at en agent kan teste og arbejde videre på rigtig kode. En gratis nøgle hæver loftet, og Pro- eller Enterprise-nøgler hæver det yderligere.

Nej. API'et kører koden i en sandboxet container på vores infrastruktur. Der er ingen SAS-licens, ingen lokal installation og intet, som modellens værtsmiljø skal sørge for.

Ja. /v1/run accepterer gentagne inputfiler sammen med scriptet, i CSV eller Parquet. De datasæt, programmet producerer, kommer tilbage med rækkeantal og URL'er til forhåndsvisning eller download, så en agent kan inspicere resultaterne i stedet for at gætte.

Hver kørsel returnerer en exitkode, den fulde NOTE/WARNING/ERROR-log og struktureret diagnostik. Fejl er eksplicitte og maskinlæsbare, så en agent kan se forskel på et program, der virkede, og et, der ikke gjorde — præcis det signal, et workflow, der kun genererer, mangler.

Én time. Hver kørsel returnerer et adgangstoken, der kun gælder den kørsel; GET-endpointsene kræver det, og det er adskilt fra din API-nøgle.

Giv din agent en måde at tjekke sit arbejde på

Ingen nøgle nødvendig for at komme i gang. Aldrig nogen SAS-licens.