Documentation Index
Fetch the complete documentation index at: https://arkor-92aeef0e-function-calling-structured-outputs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
infer
infer は CheckpointContext 上の onCheckpoint に渡される関数です。今しがた保存されたチェックポイントアダプタに紐づいた推論リクエストを実行し、生の Response を返します。トップレベルの infer エクスポートはありません: SDK はコールバック引数として露出し、呼び出しが正しいジョブ + チェックポイントステップに自動的にスコープされるようにしています。
入力
| フィールド | 型 | 補足 |
|---|---|---|
messages | ChatMessage[] | チャット履歴。system / user / assistant(任意の tool_calls 付き)/ tool(tool_call_id 付き)の判別共用体で、OpenAI のメッセージ形と完全互換 — Function Calling を含む履歴をそのまま往復できます。 |
temperature | number? | サンプリング温度。省略時はバックエンドのデフォルト。 |
topP | number? | Nucleus サンプリング。省略時はバックエンドのデフォルト。 |
maxTokens | number? | 応答トークンの最大値。省略時はバックエンドのデフォルト。 |
stream | boolean? | デフォルトは true(SSE)。単一 JSON ボディが欲しければ false。 |
tools | ToolDefinition[]? | モデルが呼び出せる関数定義。toolChoice を明示しない場合は OpenAI 仕様どおり既定 "auto" が適用されます。エンドポイントが auto-tool 抽出に未対応なら 400 tool_calling_not_configured が返ります。 |
toolChoice | ToolChoice? | "auto" / "none" / "required" / { type: "function", function: { name } }。auto-extraction のパーサが必要なのは "auto"(と tools 指定時の既定)のみで、それ以外は guided-decoding 経路を通ります。 |
responseFormat | ResponseFormat? | OpenAI 標準の構造化出力スイッチ。{ type: "text" } / { type: "json_object" } / { type: "json_schema", json_schema: { name, schema, strict? } }。表現できる制約はこちらを優先。 |
structuredOutputs | StructuredOutputs? | responseFormat で表せない制約のための vLLM 拡張。json / regex / choice / grammar / json_object / structural_tag のうち高々 1 つを指定(相互排他)。フィールド名は vLLM の wire 形式に合わせ snake_case(json_object、structural_tag、disable_any_whitespace、whitespace_pattern)。 |
signal | AbortSignal? | ローカル fetch を Abort。バックエンドの作業は止めません。モデルは生成を続け、あなたが読むのを止めるだけです。 |
Function Calling の例
構造化出力の例
出力
infer は Promise<Response> を返します: 生の Fetch Response。SDK はボディをパースしません。消費の仕方はあなたが決めます:
stream: true(デフォルト)のときボディは Studio の Playground が消費するのと同じ形の SSE イベントストリームです。SDK はこのストリーム用のフレームパーサを今のところ提供していません。デコードしたテキストデルタが必要なら、packages/studio-app/src/lib/api.ts から小さな extractInferenceDelta ヘルパーをコピーするか、eventsource-parser を使ってパーサを書いてください。
制約
inferはCheckpointContext上に のみ 存在します。完了済みジョブに対する SDK 側の同等物はありません。そのパスにはクラウド API を直接叩くか、学習をもう一度起こしてください。Studio の Playground は完了済みアダプタとチャットする UI レベルのルートです。- 呼び出しは
{ kind: "checkpoint", jobId, step }にスコープされます。onCheckpointの中から別のチェックポイントや別モデルに向け直すことはできません。 - 関数はメモ化されていません: 呼ぶたびにバックエンドへ届きます。
使いどころ
- 学習中のサニティーチェック。 ステップ 50 のチェックポイントとステップ 100 のチェックポイントを固定プロンプトで比較。Loss(モデルの誤差を表す指標)の曲線は問題なく見えても出力が劣化していれば、学習完了前に気付けます。
- カスタム Early Stopping(学習の自動打ち切り)。 簡単な eval プロンプトと組み合わせて、出力が逸脱したら
controller.abort()(abortSignalを参照)で学習を止め、trainer.cancel()でバックエンドを停止。詳しくは Early Stopping レシピ を参照。 - 自前 UI へのライブプレビュー。 チェックポイントの出力を Slack、社内レビューキュー、自前アプリのプレビューチャネルに送る。