cicora.ai
API仕様非同期処理

バッチ実行

ワークフローで非同期での配信を許容できる場合は、互いに独立した操作を管理されたグループで処理します。

連携リファレンス:お使いの環境に合わせて、アカウントのAPI設定とモデルカタログからパラメーターおよび利用可能な機能を選択してください。

並列処理に上限を設定

クライアント側で上限付きキューを使用し、各ジョブを通常の互換リクエストとして送信します。これにより、サーバーのバッチエンドポイントを前提にせず負荷を制御できます。

サービスのバッチモードは別個のAPI仕様です。アカウント設定または仕様書で公開された後に限り、そのルートと本文を使用してください。

クライアント側で上限を設けた並列処理
typescript
async function runWithLimit(items, limit, work) {
  const results = [];
  for (let offset = 0; offset < items.length; offset += limit) {
    const group = items.slice(offset, offset + limit);
    results.push(...await Promise.all(group.map(work)));
  }
  return results;
}

キューを管理

  • 内部ジョブIDは、一回の実行内で決定的かつ一意になるようにします。
  • 大きすぎる集合を扱いやすいグループに分割します。
  • 一項目の失敗とキュー全体の失敗を区別します。

結果を収集

結果を内部IDに結び付け、すべてのジョブのステータスを保持します。

すべてのジョブを自動的に再試行しないでください。べき等性を確認したうえで、一時的な障害だけを再試行します。