Step 3.7 FlashはNovita AI上でServerless LLMとして提供されており、モデルIDはstepfun/step-3.7-flash、OpenAI互換のchat/completionsエンドポイント、テキスト・画像・動画の入力、テキスト出力、関数呼び出し、構造化出力、推論がモデルページに記載されています。このクイックスタートは開発者のワークフローに焦点を当てています。すなわち、APIを呼び出す方法、現在安全に使えるリクエストパターン、予算に考慮すべき料金項目、マルチモーダルや推論の動作を本番に組み込む前に注意すべき点です。
APIを呼び出す前に必要なものは?
まず3つの設定を準備します。
| 項目 | 値 |
|---|---|
| APIキー | Novita AIのAPIキーを作成し、NOVITA_API_KEYなどの環境変数に保存します。 |
| OpenAI互換のベースURL | https://api.novita.ai/openai |
| チャット補完エンドポイント | POST https://api.novita.ai/openai/v1/chat/completions |
| モデルID | stepfun/step-3.7-flash |
Novita AIのドキュメントインデックスにはOpenAI互換のベースURLが、チャット補完APIリファレンスにはPOST https://api.novita.ai/openai/v1/chat/completionsのリクエスト・レスポンスフィールドが記載されています。
APIキーはソースコード管理から除外してください。ローカル開発ではシェルにエクスポートし、本番ではシークレットマネージャーから読み込みます。
export NOVITA_API_KEY="your_api_key"
既にOpenAI互換チャット補完を使っているアプリケーションの場合、移行は通常簡単です。クライアントのベースURLをNovita AIのものに変更し、Authorizationベアラートークンを設定し、モデルIDにStep 3.7 Flashを指定します。
実装にあたって重要なStep 3.7 Flashの情報は?
コード内では正確なモデルIDを使用し、ユーザー向けUIでは表示名を使用します。現在のNovitaモデルページでは、Step 3.7 FlashはStepFunシリーズのChatモデルとして表示されています。
| フィールド | 現在のNovitaの値 |
|---|---|
| 表示名 | Step 3.7 Flash |
| APIモデルID | stepfun/step-3.7-flash |
| Novitaが示すモデルファミリー | StepFun |
| ホスティングタイプ | Serverless LLM |
| エンドポイント | chat/completions |
| 入力モダリティ | テキスト、画像、動画 |
| 出力モダリティ | テキスト |
| コンテキストウィンドウ | 262,144トークン |
| 最大出力トークン | 256,000 |
| リストされた機能 | Serverless、関数呼び出し、構造化出力、推論 |
| リストされたラベル | MoE、>100B、NEW、Featured |
| デフォルトのT1レート制限 | 30 RPM、50,000,000 TPM |
2026年6月18日現在、Novitaはstepfun/step-3.7-flashのトークン価格を次のように表示しています。
| トークンタイプ | 表示価格 |
|---|---|
| 入力トークン | $0.20 / 1Mトークン |
| 出力トークン | $1.15 / 1Mトークン |
| キャッシュ読み取り入力トークン | $0.04 / 1Mトークン |
価格、モデルの利用可能性、レート制限、サポートされるリクエストパラメータは変更される可能性があります。調達レビュー、本番リリース、顧客向け価格コミットメントの前に、Step 3.7 FlashのモデルページとNovita AIの価格ページを確認してください。
cURLでStep 3.7 Flashを呼び出すには?
最初のスモークテストでは、リクエストをテキストのみにします。これにより、認証、モデルルーティング、レスポンス解析、基本的な生成が確認でき、その後ツールやスキーマ、画像、動画を追加できます。
curl "https://api.novita.ai/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${NOVITA_API_KEY}" \
-d '{
"model": "stepfun/step-3.7-flash",
"messages": [
{
"role": "system",
"content": "You are a concise technical assistant."
},
{
"role": "user",
"content": "Create a four-step checklist for testing a multimodal support bot before release."
}
],
"max_tokens": 512,
"temperature": 0.2
}'
成功したレスポンスは、Novita AIが文書化するチャット補完の構造に従います。choices配列、生成されたcontentを持つメッセージ、created/modelメタデータ、そして使用量が返される場合はusageオブジェクトが含まれます。ストリーミングレスポンスの場合、APIリファレンスでは使用量が最後のレスポンスチャンクに現れると記載されています。
このスモークテストで以下を確認します:
- APIキーが有効であること。
- モデルIDが受け入れられること。
- クライアントが
choices[0].message.contentを解析できること。 - ログがプロンプト、完了、合計トークン使用量を秘密情報を保存せずに取得していること。
- タイムアウトとリトライポリシーがプロンプトのサイズに適切であること。
PythonでStep 3.7 Flashを呼び出すには?
OpenAI Python SDKのパターンは、NovitaのベースURLを設定すればNovita AIでも動作します。SDKをインストールし、プロジェクトの依存関係ポリシーに従ってバージョンを固定してください。
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/openai",
api_key=os.environ["NOVITA_API_KEY"],
)
response = client.chat.completions.create(
model="stepfun/step-3.7-flash",
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{
"role": "user",
"content": "Summarize the release risks for a customer support workflow that accepts screenshots and long text tickets.",
},
],
max_tokens=512,
temperature=0.2,
)
print(response.choices[0].message.content)
アプリケーションコードでは、これを小さなモデルゲートウェイでラップし、コードベース全体に生のAPI呼び出しを散在させないようにします。ゲートウェイを使用すると、デフォルトのトークン制限、ルートごとのタイムアウト、エラーの正規化、評価のためのモデル切り替えをビジネスロジックを変更せずに強制できます。
実用的な本番ラッパーは以下を取得する必要があります:
model、prompt_tokens、completion_tokens、total_tokens。- リクエストレイテンシとリトライ回数。
- HTTPステータスとAPIエラーカテゴリ。
- ツール、JSONスキーマ、画像入力、動画入力が使用されたかどうか。
- APIキーや機密ユーザーコンテンツを除外した編集済みリクエストサマリー。
このテレメトリは重要です。なぜなら、Step 3.7 Flashは大きなコンテキストウィンドウと高い最大出力制限を持つからです。これらの制限は有用ですが、本番システムでは明示的なmax_tokensを設定し、モデル呼び出しの前にサイズ超過のユーザーアップロードを拒否し、出力長を監視する必要があります。
マルチモーダル入力はどのように扱うべきか?
Novitaはテキスト、画像、動画をStep 3.7 Flashの入力モダリティとして、テキストを出力モダリティとして挙げています。これをサポートされる機能の境界として扱い、マルチモーダル統合を出荷する前に現在のNovitaのドキュメントやコンソールで正確なペイロード形式を確認してください。
クイックスタートとしては、次の順序を使用します:
- テキストのみのスモークテストを実行する。
- 現在のNovitaチャットメッセージ形式に従って画像入力を1つ追加する。
- 実際のタスクでレスポンス品質と応答形式を検証する。
- リクエスト形式、サイズ制限、レイテンシ、コスト動作を確認した後にのみ、より大きな画像バッチや動画を追加する。
すべてのOpenAI互換のマルチモーダルペイロード形式がNovitaがホストするすべてのモデルで受け入れられるとは想定しないでください。Step 3.7 Flashのモデルページでは画像と動画の入力サポートが確認できますが、動画リクエストの例はファイル処理、URLアクセス、再生時間、サイズ、モデル固有のフォーマットに影響されやすいです。現在のドキュメントやコンソールの例で必要な動画ペイロード形式が示されていない場合は、他のプロバイダのドキュメントからハードコードしないでください。
最初の画像使用例として良いものは以下の通りです:
- ユーザーのチケットテキストと一緒にサポートスクリーンショットを要約する。
- 製品スクリーンショットからUI状態を抽出し、内部トリアージアシスタントとして使用する。
- ビジュアルQA画像を確認し、テキストチェックリストを生成する。
動画はより保守的にテストすべきです。短いクリップから始め、動作する正確なリクエスト形式を記録し、レイテンシとトークン使用量を測定し、動画入力が拒否されたり、大きすぎたり、ルートに対して遅すぎる場合のフォールバック動作を定義します。
関数呼び出しと構造化出力はどのように適合するか?
Step 3.7 Flashには関数呼び出しと構造化出力がリストされています。チャット補完APIでは、関数呼び出しはtoolsで公開され、構造化出力はresponse_formatで公開されます。
モデルがユーザーに直接回答する代わりにツールを選択してJSON引数を返すべき場合に関数呼び出しを使用します。APIリファレンスでは、typeがfunction、function.name、description、JSON Schemaparameters、オプションのstrict設定を持つ関数ツールが文書化されています。
tools = [
{
"type": "function",
"function": {
"name": "create_support_ticket",
"description": "Create an internal support ticket from a user-reported issue.",
"parameters": {
"type": "object",
"properties": {
"summary": {"type": "string"},
"priority": {
"type": "string",
"enum": ["low", "medium", "high"],
},
"needs_human_review": {"type": "boolean"},
},
"required": ["summary", "priority", "needs_human_review"],
},
},
}
]
response = client.chat.completions.create(
model="stepfun/step-3.7-flash",
messages=[
{
"role": "user",
"content": "The payment settings page returns a 500 error after I upload a screenshot.",
}
],
tools=tools,
temperature=0.1,
)
外部ツール呼び出しが不要で、アプリケーションが検証済みのJSONレスポンスを必要とする場合に構造化出力を使用します。Novitaのチャット補完APIリファレンスでは、response_formatにjson_schemaがあること、strictモードがJSON Schemaのサブセットをサポートすることが文書化されています。初期のスキーマは小さく保ち、特殊なスキーマ機能を避け、モデルレスポンスが検証に失敗した場合はフェイルクローズします。
推論については、モデルの能力とリクエスト動作を区別します。Step 3.7 Flashのモデルページでは推論が機能としてリストされていますが、チャット補完APIリファレンスではモデル固有のサポートノート付きで推論関連パラメータが文書化されています。本番パーサーで推論フィールドに依存する前に、stepfun/step-3.7-flashでAPIテストを実行し、自分のアカウントが受け取る正確なレスポンス形式を処理してください。
チームは本番前にどのように予算を立て、テストすべきか?
リストされたトークン価格を使用して最初の予算を見積もり、実際の使用ログで検証します。Step 3.7 Flashは入力、出力、キャッシュ読み取りで価格が異なるため、長いプロンプト、冗長な出力、繰り返されるコンテキストには異なるコストプロファイルがあります。
例えば、大きなサポートトランスクリプトを送信するアプリケーションは、予算のほとんどを入力トークンに費やす可能性があります。長い計画を要求するエージェントは、出力トークンにより多く費やす可能性があります。コンテキストを再利用する検索やメモリのワークフローは、キャッシュ動作がデプロイされたリクエストパターンに適用される場合、キャッシュ読み取り価格の恩恵を受ける可能性があります。
本番前に、以下を含む評価セットを実行します:
- レイテンシとベースライン回答品質のための短いテキストのみのプロンプト。
- 最大コンテキストウィンドウではなく、予想される上限に近い長いコンテキストプロンプト。
- 実際のアップロードソースとファイル処理に一致する画像プロンプト。
- 正しい動作が関数を呼び出すことであるツール呼び出しプロンプト。
- 無効、欠落、エッジケースのフィールドを意図的にテストするJSONスキーマプロンプト。
- サイズ超過の入力、メディア欠落、無効なAPIキー、タイムアウトの失敗ケース。
機能リストのみに基づいてすべてのトラフィックを新しいモデルにルーティングしないでください。機能フラグは利用可能なものを示しますが、評価はモデルがあなたの指示、スキーマ、安全ルール、レイテンシ予算に従っているかどうかを示します。
FAQ
Step 3.7 FlashはNovita AIで利用可能ですか?
はい。NovitaはStep 3.7 FlashをServerless LLMとして、APIモデルID stepfun/step-3.7-flashでリストしています。
Step 3.7 Flashにはどのエンドポイントを使用すればよいですか?
OpenAI互換のチャット補完エンドポイント POST https://api.novita.ai/openai/v1/chat/completions を使用します。
Step 3.7 Flashは画像と動画の入力をサポートしていますか?
NovitaはStep 3.7 Flashの入力モダリティとしてテキスト、画像、動画を、出力モダリティとしてテキストをリストしています。本番前に現在のNovitaドキュメントやコンソールの例で正確な画像・動画ペイロード形式を確認してください。
Step 3.7 Flashのコストはいくらですか?
2026年6月18日現在、Novitaはstepfun/step-3.7-flashを入力トークン$0.20/1M、出力トークン$1.15/1M、キャッシュ読み取り入力トークン$0.04/1Mと表示しています。
Step 3.7 Flashは関数呼び出しと構造化出力をサポートしていますか?
はい。Novitaは関数呼び出しと構造化出力をStep 3.7 Flashの機能としてリストしています。関数呼び出しにはtools、構造化出力にはresponse_formatを使用し、本番前に正確なスキーマとパーサーをテストしてください。
他のプロバイダの動画ペイロードをコピーすべきですか?
いいえ。APIがOpenAI互換であっても、マルチモーダルファイルとURLの処理は異なる場合があります。現在のNovitaドキュメント、コンソールの例、またはstepfun/step-3.7-flashでの自身の成功したAPIテストで検証されたペイロード形式を使用してください。
