AI가 SAS 코드를 작성만 하지 않고, 실행하게 하세요

SAS 코드를 생성할 수 있는 모델은 많습니다. 하지만 실행할 방법이 없다면 그 코드가 실제로 동작하는지는 아무도 알 수 없습니다. Jenner의 공개 Run API는 AI에게 나머지 절반을 제공합니다. 프로그램을 실행하고, 실제 출력과 실제 오류를 읽고, 수정한 뒤 다시 실행하는 것입니다. SAS 라이선스도, 로컬 설치도 필요 없습니다.

API 키 없이 익명으로 사용할 수 있습니다.

코드 생성은 쉬운 절반에 불과합니다

SAS 코드를 작성하고 끝나는 어시스턴트가 건네주는 것은 '맞아 보이는 코드'입니다. 매크로가 정상적으로 치환되는지, 병합에서 의도한 변수가 들어오는지, PROC MEANS가 19행을 반환하는지 0행을 반환하는지 — 실행하기 전에는 어느 것도 알 수 없습니다.

지금까지 실행하려면 SAS 라이선스와 설치가 필요했고, 그것은 AI가 갖지 못한 조건이었습니다. Run API는 이 제약을 없앱니다. 한 번의 HTTP 호출로 코드를 실행하고, 모델이 실제로 해석할 수 있는 구조화된 결과를 반환합니다.

반복 루프

생성하고, 검증하고, 실행하고, 개선합니다 — 모두 기계가 읽을 수 있는 형식으로.

1

생성

모델이 SAS를 작성합니다. DATA 스텝, PROC, 매크로 — 별도의 준비는 필요 없습니다. Jenner는 표준 SAS 문법을 그대로 받아들이므로, 어시스턴트가 이미 작성할 줄 아는 코드가 그대로 실행됩니다.

2

검증

/v1/validate로 스크립트를 POST하면 구문 분석만 수행합니다. 실행 없이 진단 결과가 반환되므로, 실행 횟수를 소모하기 전에 문법 오류를 잡을 수 있습니다.

3

실행

/v1/run으로 스크립트와 CSV 또는 Parquet 입력 데이터를 POST합니다. Jenner는 샌드박스 컨테이너에서 이를 실행하고 리스트 출력, NOTE/WARNING/ERROR 로그, 종료 코드, 프로그램이 생성한 모든 데이터셋과 파일을 반환합니다.

4

개선

로그와 진단 결과는 스크린샷이 아니라 구조화된 피드백입니다. AI는 실제 오류를 읽고 해당 행을 수정한 뒤 다시 실행합니다. 사람의 개입 없이 루프가 완결됩니다.

실제 사용 예시

공개 API에 대한 실제 요청입니다. 키도 설정도 필요 없습니다.

스크립트를 실행하고 리스트 출력 받기

요청
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
 -----------------------------------------------

실행을 소모하기 전에 오류 찾기

아래 코드에는 세미콜론이 빠져 있습니다. 구문 분석 전용 호출이 문제 지점을 알려주므로 AI가 수정하고 진행할 수 있습니다.

오류가 있는 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" }
  ]
}

모델이 해석할 수 있는 결과 읽기

전체 실행에서는 리스트 출력, 로그, 종료 코드, 그리고 프로그램이 생성한 모든 데이터셋이 행 수와 함께 반환됩니다. AI는 추측이 아니라 데이터를 실제로 받았는지 확인할 수 있습니다.

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

엔드포인트

기본 URL https://api.jenneranalytics.com/v1

엔드포인트용도
POST/v1/run선택적 입력 데이터와 함께 스크립트를 실행합니다. 출력, 로그, 종료 코드, 데이터셋, 파일, 진단 결과를 JSON으로 반환합니다.
POST/v1/run/stream/v1/run과 동일하되 Server-Sent Events로 스트리밍하여 실행 중에 로그를 받아볼 수 있습니다.
POST/v1/quick간단 실행용입니다. 스크립트를 그대로 보내면 일반 텍스트 리스트 출력이 반환됩니다. '이 SAS가 동작하는가'를 가장 빠르게 확인하는 방법입니다.
POST/v1/validate구문 분석만 수행하는 검사입니다. 실행 없이 진단 결과를 반환합니다. 매크로는 확장되지 않으므로 매크로가 많은 코드의 실패는 참고용으로 보시기 바랍니다.
GET/v1/run/{run_id}완료된 실행, 해당 파일, 데이터셋 미리보기 또는 다운로드를 가져옵니다. 결과는 1시간 동안 유지되며 실행별 액세스 토큰이 필요합니다.

이용 등급

키 없이 시작하고, 한도가 필요할 때 추가하세요.

등급인증요청 한도타임아웃
익명키 불필요시간당 1,000회 (IP 기준)30초
Free이메일 가입시간당 1,500회60초
ProAPI 키시간당 10,000회5분
EnterpriseAPI 키개별 협의개별 협의

이미 사용 중인 환경에서 그대로

AI 도구

  • Anthropic의 Claude Code
  • Claude Desktop
  • OpenAI의 Codex
  • ChatGPT
  • HTTP 요청을 보낼 수 있는 모든 시스템

Jenner 내부에서도

  • 협업용 웹 워크스페이스
  • macOS 데스크톱 앱
  • 네이티브 Jupyter 커널

모두 동일한 실행 엔진을 사용하므로, AI가 API로 검증한 코드는 사람이 열었을 때도 동일하게 동작합니다.

자주 묻는 질문

아닙니다. 익명 요청은 키 없이 동작하며 IP 기준 시간당 1,000회, 실행 타임아웃 30초로 제한됩니다. AI가 실제 코드를 검증하고 개선하기에 충분한 범위입니다. 무료 키로 한도가 올라가고, Pro나 Enterprise에서는 더 확장됩니다.

아닙니다. API는 당사 인프라의 샌드박스 컨테이너에서 코드를 실행합니다. SAS 라이선스도 로컬 설치도 필요 없으며, 모델의 실행 환경에서 준비할 것은 없습니다.

가능합니다. /v1/run은 스크립트와 함께 CSV 또는 Parquet 입력 파일을 여러 개 받습니다. 프로그램이 생성한 데이터셋은 행 수와 미리보기 또는 다운로드 URL과 함께 반환되므로, AI가 추측하지 않고 결과를 확인할 수 있습니다.

모든 실행은 종료 코드, NOTE/WARNING/ERROR 전체 로그, 구조화된 진단 결과를 반환합니다. 실패가 명시적이고 기계가 읽을 수 있는 형태이므로, AI는 정상 동작한 프로그램과 그렇지 않은 프로그램을 구분할 수 있습니다. 이것이 바로 생성만 하는 방식에 없는 신호입니다.

1시간입니다. 각 실행은 해당 실행에만 유효한 액세스 토큰을 반환합니다. GET 엔드포인트에는 이 토큰이 필요하며, API 키와는 별개입니다.

AI에게 스스로 검증할 방법을 주세요

시작에 키가 필요 없습니다. SAS 라이선스도 전혀 필요 없습니다.