Skip to main content
Arkor はアルファ版です。フレームワークの公開 API はあえて小さく抑えてあります。トレーナー 1 つ、マニフェストスロット 1 つ、いくつかのライフサイクルコールバック。その小ささを価値あるものにしているのは、そのすべてが自分の TypeScript コード という点です。TS で表現できるものは何でも学習に組み込め、プロダクトの他の部分と同じエディター・型・レビューフローで扱えます。 このセクションは、実際にやり始めると最初に出てくるパターンを集めたものです。各レシピは現在の公開 SDK の中だけで完結します: ロードマップ API も、内部 import も、ランタイムをフォークする必要もありません。

レシピ一覧

始める前にコールバックの例外について 1 つだけ

下記の 3 つのレシピはライフサイクルコールバック内にロジックを置きます。コールバック内の throwtrainer.wait() をそのエラーで即座に reject します(SDK § ライフサイクルコールバック)。SSE 再接続ループには送られず、黙ってリトライされることも、イベントが握りつぶされることもありません。再接続ループはトランスポート障害(接続断や一時的な 5xx)のみを扱います。致命的でない扱いにしたい場合はコールバック内で catch してください。 ここのレシピは決定的に動かすために単純な慣例を使います:
  • 状態変更は外側の変数経由で。 throw の代わりに AbortController、クロージャーのフラグ、返した Promise を使う。
  • 副作用はコールバック内で try / catch でガード。 Slack 投稿が失敗したらログだけ残して継続し、外に漏らさない。
これは制限ではなくパターンです。これを身につければ、レシピはきれいに合成できます。

このセクションが扱わないこと

  • 本番デプロイ。 現状 Arkor はマネージド GPU 上でしか動かず、createArkordeploy スロットは型上の予約フィールドで実装はありません。推論サービス系のレシピはこの API が公開された段階で追加されます。
  • プロジェクトごとの複数トレーナー。 createArkor は単一の trainer を受け付けます。複数を一緒に走らせるのはマニフェストパターンではなくプログラムによる実行パターンです(該当レシピ参照)。
  • バックエンドが受け付ける以外のカスタムベースモデル。 model フィールドはクラウド API にそのまま転送されます。現在対応しているのは Gemma のみです。レシピはそれ以外のモデルがエンドツーエンドで動く前提では書かれていません。