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.
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.
Gerar, verificar, executar, iterar — tudo legível por máquina.
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.
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.
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.
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.
Pedidos reais à API pública. Sem chave, sem configuração.
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
-----------------------------------------------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.
data demo;
set sashelp.class /* <- missing semicolon */
bmi = weight / (height**2) * 703;
run;{
"valid": false,
"diagnostics": [
{ "severity": "error",
"message": "Unexpected token: Eq, expected Semi" }
]
}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.
{
"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": "..."
}URL base https://api.jenneranalytics.com/v1
| Endpoint | Finalidade |
|---|---|
POST/v1/run | Executa 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/stream | Igual a /v1/run, transmitido como Server-Sent Events, para que o registo chegue enquanto o programa ainda está a correr. |
POST/v1/quick | Comodidade 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/validate | Verificaçã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. |
Comece sem chave. Acrescente uma quando precisar de mais margem.
| Nível | Autenticação | Limite de pedidos | Tempo limite |
|---|---|---|---|
| Anónimo | Não é necessária chave | 1000 pedidos/h por IP | 30 segundos |
| Free | Registo por e-mail | 1500 pedidos/h | 60 segundos |
| Pro | Chave de API | 10 000 pedidos/h | 5 minutos |
| Enterprise | Chave de API | Personalizado | Personalizado |
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.
Não é preciso chave para começar. Nunca é preciso licença SAS.