本文へスキップ

Apex API

callstack/apex/chat

Apex は Callstack のモデルで、React Native と React のアプリ開発 に対応します。このチャット API は テキスト / 画像 を受け付け、入力予算は 262,144 トークン、max_tokens の上限は 131,072 です。Apex のテキストは届いた順に受け取れ、Apex による React Native 開発の次の段階には関数呼び出しの結果を根拠として渡せます。

入力 $0.50出力 $3100 万トークンあたりキャッシュ入力 $0.20

プレイグラウンド

リクエストを送信

クイックスタート

例は、選択中のエンドポイントの公開パラメーター定義から作っています。API キーとサンプル素材を差し替えて、ご自身のサーバーから送信してください。

SDK・連携
POSThttps://api.spicyapi.ai/v1/chat/completions

API 認証

API キーはサーバーの環境変数 SPICY_API_KEY に保存します。Bearer 認証を使用し、JSON リクエストには Content-Type: application/json を指定してください。

Authorization: Bearer $SPICY_API_KEY
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "model": "callstack/apex/chat",
  "messages": [
    {
      "role": "user",
      "content": "Summarise the following release notes into three bullet points."
    }
  ],
  "stream": true
}' \
  | jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'

このモデルの入力スキーマから生成した例です。API はどのリクエストも、同じスキーマで検証します。

同じ論理リクエストには同じ Idempotency-Key を使い続けてください。通信が切れた場合は新しいキーで自動再送せず、受理済みリクエストを追跡できるよう request_id を保存します。冪等性は、過去のチャットストリームを再生するものではありません。

入力パラメーター

モデルのパラメーターは、JSON リクエスト本文の model と同じ階層に指定します。このエンドポイントでは input でラップしません。

messagesarray<object>必須

Apex による React Native 開発では、会話と根拠資料をテキストで順に渡し、各ツール結果に元の tool_call_id を付けてください。

デフォルト値
指定なし
制約
minItems:1
maxItems:256
tool_choicestring | object任意

Apex では auto、none、required または特定の関数を選び、Apex による React Native 開発を続ける際は返された呼び出し ID を保持してください。

デフォルト値
指定なし
parallel_tool_callsboolean任意

Apex による React Native 開発で複数の外部結果が必要な場合に、Apex が独立した関数呼び出しをまとめて提案できるかを指定します。

デフォルト値
true
toolsarray<object>任意

Apex による React Native 開発に必要な関数を OpenAI 形式で Apex に渡します。Apex が引数を提案し、アプリ側で検証と実行を行います。

デフォルト値
指定なし
制約
maxItems:128
top_pnumber任意

Apex の top_p は Nucleus sampling を調整します。Apex による React Native 開発で効果を確認する際は、top_p と temperature を別々に変えてください。

デフォルト値
指定なし
制約
minimum:0.01
maximum:1
temperaturenumber任意

Apex の temperature は 0〜2 です。Apex による React Native 開発で表現を比較する際は、ほかのサンプリング設定を固定してください。

デフォルト値
指定なし
制約
minimum:0
maximum:2
stopstring | array任意

Apex の生成を停止する文字列を 1 つ、または最大 4 つ指定できます。Apex の回答には一致した停止文字列自体は含まれません。

デフォルト値
指定なし
制約
minLength:1
minItems:1
maxItems:4
reasoning_effortstring任意

Apex は none, low, medium, xhigh を公開し、既定は medium です。Apex による React Native 開発でレベルを比較すると、深い推論による出力トークンや待ち時間の増加を確認できます。

デフォルト値
"medium"
使用可能な値
"none""low""medium""xhigh"
max_tokensinteger任意

Apex の max_tokens は表示される回答と課金対象の推論を合わせた枠で、既定は 4096、上限は 131072 です。Apex の枠を増やしてもトークン単価は変わりません。

デフォルト値
4096
制約
minimum:1
maximum:131072

結果を取得

stream が false の場合、完成したチャット応答が直接返ります。choices[].message を読み取ってください。タスクのポーリングは不要です。Server-Sent Events 対応のクライアントでは stream を true にできます。

完了レスポンスの例
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1788652800,
  "model": "callstack/apex/chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here is a concise summary of the release notes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 14,
    "total_tokens": 46
  }
}

レスポンス例は構造を示すためのものです。usage はトークン数を示し、実際のトークン数と料金はリクエスト内容によって変わります。

SDK・連携

アプリ、ターミナル、AI アシスタント、ビジュアルワークフローで SpicyAPI を活用。接続ガイドを選んでください。

SillyTavern やロールプレイアプリで使う

SillyTavern、RisuAI、Agnai など OpenAI 互換の設定があるアプリに、下のベース URL と API キーを貼り付け、モデルに callstack/apex/chat を選んでください。ブラウザーからの呼び出しにも対応しており、このモデルが受け付けないスライダーはエラーにならず無視されます。

Base URL: https://api.spicyapi.ai/v1
Model: callstack/apex/chat

ComfyUI で使う

ComfyUI Manager か下のコマンドで SpicyAPI ノードをインストールしたら、SpicyAPI Chat ノードで callstack/apex/chat を選ぶと、ComfyUI のグラフの中でこのモデルを使えます。

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi