主な機能
- 型安全: OpenAPI 仕様から生成された型による完全な TypeScript サポート
- シンプルな API: 使いやすく、明快なインターフェースのクライアント
- 生成コード: 正式な API 仕様から自動生成
- 包括範囲: Gateway API のすべてのエンドポイントをカバー
簡単な例
音楽・動画・バッチの完了を待つ
videos.generateAndWait(request, options)、バッチにはbatches.createAndWait(request, options)を使います。1回だけ送信し、即時完了の応答はポーリングせずに返し、それ以外は同じジョブを完了までポーリングします。応答全体を返し、失敗、キャンセル、期限切れではresponseを持つJobFailedErrorを送出します。完了したバッチにも個別の失敗が含まれる場合があります。
各リソースには、失敗を含むすべての最終応答を返すwait(id, options)もあります。オプションはintervalMs(既定5,000、最小250)、timeoutMs(既定1,800,000)、signal、onPollです。待機タイムアウトは送信から戻った後に開始し、最初のHTTPリクエストには独自のタイムアウトが適用されます。進行状況コールバックは初回応答と各ポーリングを受け取ります。
JobTimeoutErrorとJobCancelledErrorはjobIdとlastResponseを保持し、.wait(error.jobId)で再開できます。待機の停止は進行中のポーリングをキャンセルしますが、リモートの処理は停止しません。HTTP失敗は自動再送信せずに伝播します。SDKヘルパーはGatewayにバックグラウンド実行を追加しません。
リクエスト制御と診断
client.withOptions({ timeoutMs: 30_000, signal, maxRetries: 2 })で、
すべてのリソース、ストリーム、メディアに制御を適用した不変のクライアントを作ります。
タイムアウトには応答本文の読み取りも含まれます。再試行は既定で0回で、
Retry-Afterを守ってGET/HEADにのみ適用されます。有料の送信は再試行されません。
responseMetadata(result)はGatewayのリクエストIDとダッシュボードのトレースURLを返します。
HTTPエラーはcode、requestId、traceUrl、retryAfterMs、本文、ヘッダーを公開します。
ワークフローヘルパー
music.start、videos.start、batches.startはresult()、
events()、toJSON()を持つハンドルを返します。種類とIDを保存し、resume(id)で復元します。
result()は最終的な失敗を拒否します。リモートキャンセルは動画とバッチのみ対応します。
videos.streamContent(id)とdownloadTo(stream, writable)は大きな
出力をストリーミングします。toFile(bytes, filename, contentType)はアップロードを準備します。
batchResults(await client.batches.streamResults(id))はJSONLを逐次解析し、
matchBatchResult(row, inputsByCustomId)は個別エラーと入力の対応を保持します。
responses.parse(request, schema)はZod互換のパーサーを受け取り、
検証済み出力を返します。リクエストでサーバーの構造化出力形式も指定してください。
collectStream(client.streamResponses(request))はテキストと使用量を集めます。
checkModelCapabilities(id, { inputTypes, outputTypes, endpoints, parameters, parameterValues })は1つの有効なプロバイダー提供について公開された機能とスカラー制約を
確認します。メタデータの欠落は不明として報告します。モデルの変更や
パラメーターの削除はせず、実際のプロバイダーがリクエストを受け付ける保証もありません。
モデル選択やパラメーター編集には、現在のエンドポイントメタデータを使います。
supported、partial、unsupported、unknownのいずれかで示され、
表示に使えるプロバイダールートと制約の問題も含まれます。
client.models.capabilities(modelId)はエンドポイントの機能応答全体を
返します。明示的な確認であり、生成呼び出しに検出リクエストを追加しません。
ローカルテストとWebサイトからのエクスポート
@phaseo/sdk/testingからcreateMockTransportとjobFixturesをインポートし、
fetchImplで順序付きの厳密なテストデータを注入します。mock.assertDone()で
期待する全リクエストの実行を確認してください。想定外の呼び出しはネットワークに接続せずローカルで失敗します。
Phaseoのルームで送信した後、コードを取得はモデルと
設定をTypeScriptまたはPythonでエクスポートします。リクエストを表示は
リクエストIDがある場合にダッシュボードのトレースを開きます。PHASEO_API_KEYを設定したサーバーで実行してください。
含まれるもの
- すべての API 操作に使う
Phaseoクライアントクラス - リソース別ヘルパー(例:)
client.models,client.batches,client.videos, andclient.asyncJobs - モデルの検索や料金確認に使うヘルパー(例:)
client.getModels(),client.listProviders(),client.getCredits(),client.getActivity(),client.getAnalytics(),client.listEndpoints(),client.listOrganisations(),client.listPricingModels(),client.calculatePricing(),client.listApiKeys(),client.createApiKey(),client.getApiKey(id),client.updateApiKey(id, ...),client.deleteApiKey(id),client.listWorkspaces(),client.getWorkspace(id),client.createWorkspace(...),client.updateWorkspace(id, ...),client.deleteWorkspace(id), andclient.getCurrentApiKey() - バッチと動画のライフサイクルストリーム用非同期ジョブ WebSocket URL ヘルパー
client.batches.streamResults(batchId, { signal })Anthropic JSONLのストリーミングダウンロード用- すべてのリクエストとレスポンスオブジェクト用の生成済み型
- Chat Completions、モデル、クレジットなどを含む API 全体のカバー
- 開発体験を高める TypeScript 定義