コンテンツにスキップ

Models

クイックスタート: 最初の API 呼び出し

このページを読み終える頃には、Grafilab の API キー、モデル id、ターミナルに 表示された JSON の応答、同じ呼び出しのストリーミング版、そしてそのコストを示す 使用状況ダッシュボードの行が手に入っています。

  • プロフィールに国を設定済みの Grafilab アカウント。これによってアカウントに 請求通貨が決まります。 アカウントを作成するを参照してください。
  • 残高がゼロでないクレジット、または選んだモデルの無料クレジット。 クレジットと請求を参照してください。
  • curl、または Python 3.9+、または Node.js 18+。
  1. API キーを作成します。

    コンソールで API を開き、 Generate New Key をクリックします。名前を入力し(quickstart で十分です)、 Enter を押します。API Key Created ダイアログにキーの全文が一度だけ 表示されるので、コピーしてから I’ve saved my key をクリックします。 その後、テーブルではキーが末尾 4 文字までマスクされ、再度読みたいときは Show Key で切り替えられます。

    キーがコードに紛れ込まないよう、環境変数に入れておきます。

    ターミナルウィンドウ
    export GRAFILAB_API_KEY="sk-grafilab-..."
  2. モデルを選びます。

    The model catalog is live, so list it rather than copying ids from a page. Every entry’s id is the exact string to use in any tool or SDK.

    Terminal window
    curl https://llm.grafilab.ai/v1/models \
    -H "Authorization: Bearer $GRAFILAB_API_KEY" | jq -r '.data[].id'

    The same ids appear as cards in the Playground, with context size and prices.

  3. チャット応答をリクエストします。

    ベース URL は https://llm.grafilab.ai/v1 です。OpenAI 互換のクライアントなら どれでも動きます。変更するのはベース URL とキーだけです。

    The examples on this page use grafilab/qwen3.6-flash, the sample model from the API reference. Replace it with any id returned by GET /v1/models.

    ターミナルウィンドウ
    curl https://llm.grafilab.ai/v1/chat/completions \
    -H "Authorization: Bearer $GRAFILAB_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "grafilab/qwen3.6-flash",
    "messages": [{"role": "user", "content": "Say hello in five words."}]
    }'

    標準的なチャット応答が返ります。ここでは省略して示します。

    {
    "id": "chatcmpl-...",
    "object": "chat.completion",
    "model": "grafilab/qwen3.6-flash",
    "choices": [
    {
    "index": 0,
    "message": { "role": "assistant", "content": "Hello, good to meet you today." },
    "finish_reason": "stop"
    }
    ],
    "usage": { "prompt_tokens": 13, "completion_tokens": 8, "total_tokens": 21 }
    }
  4. 同じ呼び出しをストリーミングします。

    stream: true を指定すると、モデルが書き進めるのに合わせて server-sent events を受け取れます。さらに stream_options: {"include_usage": true} を追加すると、 終端の直前の data フレームにトークン数が入ります。これがないと、ストリーミング 呼び出しはクライアントに使用量を返しません。

    ターミナルウィンドウ
    curl -N https://llm.grafilab.ai/v1/chat/completions \
    -H "Authorization: Bearer $GRAFILAB_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "grafilab/qwen3.6-flash",
    "messages": [{"role": "user", "content": "Say hello in five words."}],
    "stream": true,
    "stream_options": {"include_usage": true}
    }'

    生の SSE ストリームは data: [DONE] で終わります。

  5. コストを確認します。

    API に戻り、そのキーの行で View Usage をクリックします。コンソールは そのキーで絞り込んだ Inference API Usage を開きます。すべてのリクエストは、認証に 使われたキーに紐づけられているからです。呼び出しを行った日の Total cost と Token breakdown のタイル(Input、Cached、Output)を読んでください。

    そのページの脚注には All dates in UTC · data may lag up to 30 min とあります。 これらの数字を作るロールアップは、当日と前日を 30 分ごとに再集計するため、 直前に行った呼び出しはまだ表示されないことがあります。

次の 3 つがすべて満たされていれば完了です。

  • ストリーミングなしの呼び出しが、空でない choices[0].message.content を返した。
  • ストリーミングの呼び出しが、テキストを逐次表示し、最後に usage オブジェクトで 終わった。
  • 30 分ほど以内に、そのキーの Inference API Usage に当日分の 0 でない Total cost とトークンの内訳が表示された。

テキストの呼び出しは配信後に 1 回だけ課金されるため、出力を生成する前に失敗した 呼び出しは無料です。

  • 401 invalid_api_key — キーが誤っている、ローテーション済み、または貼り付け 時にスペースや改行が混じっています。API からコピーし直してください。値が もう手元にないなら、キーをローテーションして新しい値を使います。
  • 404 model_not_found — id の綴りが違うか、招待制モデルか、アカウントの通貨で 価格が設定されていません。GET /v1/models を実行し直し、そのレスポンスの id を そのままコピーしてください。
  • 429 insufficient_quota — スループットの制限ではなく、残高の問題です。 Billing でチャージしてください。
  • 403 billing_currency_unset — アカウントにまだ請求通貨がありません。 プロフィールで国を設定してから再試行してください。
  • 接続拒否、または URL 自体で 404 — ベース URL を確認してください。OpenAI サーフェスは https://llm.grafilab.ai/v1 で、クライアントが /chat/completions を付け足します。Anthropic クライアントはオリジンだけ (https://llm.grafilab.ai)を受け取り、自分で /v1/messages を付け足します。