Deixe a IA executar código SAS, não apenas escrevê-lo

Qualquer modelo consegue gerar SAS. Sem forma de o executar, ninguém sabe se funciona. A Run API aberta do Jenner dá ao agente a outra metade do ciclo: executar o programa, ler os resultados e os erros reais, corrigi-lo e executá-lo de novo — sem licença SAS, sem instalação local.

O acesso anónimo funciona sem qualquer chave de API.

Gerar código é a parte fácil

Um assistente que escreve SAS e fica por aí entrega-lhe algo que parece certo. Se a macro resolve, se a junção recolhe as variáveis que esperava, se o PROC MEANS devolve 19 linhas ou 0 — nada disso é possível saber enquanto o programa não for executado.

Historicamente, executá-lo exigia uma licença SAS e uma instalação — exatamente o que um agente não tem. A Run API elimina essa restrição: uma única chamada HTTP executa o código e devolve resultados estruturados sobre os quais o modelo consegue realmente raciocinar.

O ciclo

Gerar, verificar, executar, iterar — tudo legível por máquina.

1

Gerar

O modelo escreve SAS — um passo DATA, um PROC, uma macro. Não é preciso nada de especial: o Jenner aceita sintaxe SAS padrão, por isso o código que um assistente já sabe escrever é o código que corre.

2

Verificar

Envie o script por POST para /v1/validate para uma passagem só de análise. Os diagnósticos regressam sem executar nada, para que um agente detete um erro de sintaxe antes de gastar uma execução com ele.

3

Executar

Faça POST para /v1/run com o script e quaisquer entradas em CSV ou Parquet. O Jenner executa-o num contentor isolado e devolve a listagem, o registo NOTE/WARNING/ERROR, um código de saída e todos os conjuntos de dados e ficheiros que o programa produziu.

4

Iterar

O registo e os diagnósticos são informação estruturada, não uma captura de ecrã. O agente lê o erro real, corrige a linha real e volta a executar — fechando o ciclo sem uma pessoa pelo meio.

Como é na prática

Pedidos reais à API pública. Sem chave, sem configuração.

Execute um script, receba a listagem

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

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

Detete um erro antes de gastar uma execução com ele

Falta um ponto e vírgula neste excerto. Uma chamada só de análise identifica o problema, para que o agente o corrija e siga em frente.

SAS com erros
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" }
  ]
}

Leia resultados sobre os quais o modelo consegue raciocinar

Uma execução completa devolve a listagem, o registo, um código de saída e todos os conjuntos de dados que o programa produziu — com contagens de linhas, para que o agente possa confirmar que obteve dados em vez de o presumir.

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

URL base https://api.jenneranalytics.com/v1

EndpointFinalidade
POST/v1/runExecuta um script com entradas de dados opcionais. Devolve os resultados, o registo, o código de saída, os conjuntos de dados, os ficheiros e os diagnósticos em JSON.
POST/v1/run/streamIgual a /v1/run, transmitido como Server-Sent Events, para que o registo chegue enquanto o programa ainda está a correr.
POST/v1/quickComodidade numa só linha. Envia o script em bruto, recebe a listagem em texto simples — a forma mais rápida de responder a “este SAS funciona?”
POST/v1/validateVerificação de sintaxe apenas por análise. Devolve diagnósticos sem executar. As macros não são expandidas, pelo que as falhas em código com muitas macros devem ser tratadas como indicativas.
GET/v1/run/{run_id}Obtém uma execução concluída, os seus ficheiros ou a pré-visualização ou transferência de um conjunto de dados. Os resultados duram uma hora e exigem o token de acesso da execução.

Acesso

Comece sem chave. Acrescente uma quando precisar de mais margem.

NívelAutenticaçãoLimite de pedidosTempo limite
AnónimoNão é necessária chave1000 pedidos/h por IP30 segundos
FreeRegisto por e-mail1500 pedidos/h60 segundos
ProChave de API10 000 pedidos/h5 minutos
EnterpriseChave de APIPersonalizadoPersonalizado

Funciona com o que já usa

As suas ferramentas de IA

  • O Claude Code da Anthropic
  • Claude Desktop
  • O Codex da OpenAI
  • ChatGPT
  • Qualquer sistema capaz de fazer um pedido HTTP

Ou a partir do próprio Jenner

  • O espaço de trabalho web colaborativo
  • A aplicação de ambiente de trabalho para macOS
  • Um kernel Jupyter nativo

O mesmo motor de execução está por trás de todos eles, pelo que o código que um agente validou através da API comporta-se da mesma forma quando uma pessoa o abre.

Perguntas frequentes

Não. Os pedidos anónimos funcionam sem qualquer chave, limitados por IP a 1000 pedidos por hora, com um tempo limite de execução de 30 segundos. Isso chega para um agente testar e iterar sobre código real. Uma chave gratuita aumenta o limite e as chaves Pro ou Empresarial aumentam-no ainda mais.

Não. A API executa o código num contentor isolado na nossa infraestrutura. Não há licença SAS, não há instalação local e não há nada para o ambiente anfitrião do modelo aprovisionar.

Sim. O /v1/run aceita ficheiros de entrada repetíveis a par do script, em CSV ou Parquet. Os conjuntos de dados que o programa produz regressam com contagens de linhas e URLs de pré-visualização ou de transferência, para que um agente possa inspecionar os resultados em vez de os adivinhar.

Cada execução devolve um código de saída, o registo NOTE/WARNING/ERROR completo e diagnósticos estruturados. As falhas são explícitas e legíveis por máquina, pelo que um agente consegue distinguir um programa que funcionou de um que não funcionou — que é exatamente o sinal que falta a um fluxo que apenas gera código.

Uma hora. Cada execução devolve um token de acesso limitado a essa execução; os endpoints GET exigem-no e é distinto da sua chave de API.

Dê ao seu agente uma forma de verificar o seu trabalho

Não é preciso chave para começar. Nunca é preciso licença SAS.