AI に SAS コードを書かせるだけでなく、実行させる

SAS コードを生成できるモデルは数多くあります。しかし実行手段がなければ、そのコードが正しく動くかは誰にも分かりません。Jenner のオープンな Run API は、ループの残り半分を AI に与えます。プログラムを実行し、実際の出力と実際のエラーを読み取り、修正して、もう一度実行する。SAS ライセンスもローカル環境へのインストールも不要です。

API キーなしの匿名アクセスでご利用いただけます。

コード生成は簡単な半分にすぎない

SAS コードを書いて終わりのアシスタントが渡してくるのは、「正しそうに見えるもの」です。マクロが解決されるか、マージで想定した変数が取得できるか、PROC MEANS が 19 行返すのか 0 行なのか — 実行するまで何ひとつ分かりません。

これまで実行には SAS ライセンスとインストールが必要でした。それはまさに AI が持たないものです。Run API はこの制約を取り除きます。HTTP リクエスト 1 回でコードを実行し、モデルが実際に解釈できる構造化された結果を返します。

ループの仕組み

生成し、検証し、実行し、改善する — すべて機械可読な形式で。

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 の中からも

  • 共同作業用の Web ワークスペース
  • macOS デスクトップアプリ
  • ネイティブの Jupyter カーネル

いずれも同じ実行エンジンを利用しているため、AI が API 経由で検証したコードは、人が開いたときも同じ挙動になります。

よくあるご質問

いいえ。匿名リクエストはキーなしで利用でき、IP 単位で 1 時間あたり 1,000 リクエスト、実行タイムアウトは 30 秒です。AI が実際のコードを検証し改善するには十分な範囲です。無料キーで上限が上がり、Pro や Enterprise ではさらに拡張できます。

いいえ。API は当社インフラ上のサンドボックス化されたコンテナでコードを実行します。SAS ライセンスもローカルインストールも不要で、モデルの実行環境側に用意するものはありません。

はい。/v1/run はスクリプトとともに CSV または Parquet の入力ファイルを複数受け付けます。プログラムが生成したデータセットは行数とプレビュー / ダウンロード URL 付きで返るため、AI は推測ではなく結果を確認できます。

すべての実行が終了コード、NOTE/WARNING/ERROR の完全なログ、構造化された診断結果を返します。失敗は明示的かつ機械可読であるため、AI は動作したプログラムとそうでないものを区別できます。これは生成だけのワークフローに欠けているシグナルそのものです。

1 時間です。各実行はその実行に限定されたアクセストークンを返します。GET エンドポイントにはこのトークンが必要で、API キーとは別のものです。

AI に、自分の仕事を検証する手段を

開始にキーは不要。SAS ライセンスも一切不要です。