ドキュメント

TypeScript SDK の設計

TypeScript SDK の設計

laya-client は、自前でホストする laya-serve サーバー向けの依存関係のない HTTP クライアントです。POST /v1/systemone エンドポイントを使い、Python の本番コードや サーバー依存を追加しません。 npm パッケージは 0.1.0 から始まり、Python のリリースとは独立しています。

境界

コンポーネント 責務
sdk/typescript 質問/回答の型、プリセット、検証、ネイティブ fetch、エラーとキャンセル
laya/serve.py 既存の HTTP エンドポイント、Bearer 認証、ヘルスチェックとリクエスト上限
laya/router.py チェックポイントの選択、読み込み、推論のルーティング
laya/agent.py トークナイズ、PyTorch 推論、キャリブレーション済みの回答整形
laya/presets.py 生成される 5 つの TypeScript 質問プリセットのソース
flowchart LR
    A[JavaScript or TypeScript application] --> B[laya-client]
    B -->|POST /v1/systemone| C[Existing Laya server]
    C --> E[Router and local checkpoint]

SDK は predict と、Laya 専用の health プローブをエクスポートします。ESM、CommonJS、 宣言ファイルを同梱し、推論された質問 ID と choice ラベルを保ちます。JavaScript や TypeScript のアプリケーションが HTTP 経由で自前ホストの Python laya-serve と話す場合は laya-client を使ってください。Python サーバーなしで、ローカルの ONNX ランタイムを通じて JavaScript の中で直接推論を走らせる必要がある場合は laya-ts を使います。

共有される契約

リクエストには state と questions が含まれます。設定も予測のために供給もされない限り、 laya-client は model を省略し、laya-serve にローカルのチェックポイントを自動で選ばせます。 クライアント全体または呼び出しごとの model でローカルのチェックポイントを選べます。choice ラベルの配列は、転送前に null の説明を持つマップへ正規化されます。

レスポンスは model、answers、token の usage を保ちます。Laya の routing と回答の action フィールドは任意の拡張です。Noul の信頼度も任意です。choice と score の信頼度、 分布、score のレベル説明は必須のままです。任意の拡張は、存在する場合に検証されます。

/v1/systemone は Python の単体のルーティングメソッドや task、lang の上書きを公開しません。 SDK はそれらのレガシーなオプションを、黙って無視するのではなく拒否します。Laya の公開 /health は status、loaded、device を返します。予測が最初に health を試すことは ありません。

FastAPI の詳細文字列と検証配列は LayaAPIError のメッセージ/詳細として保たれます。互換 バックエンドからの構造化エラー envelope も受け付けます。リクエストには設定可能な期限と 呼び出し元によるキャンセルがあり、自動で再試行されることはありません。

検証とリリース

ユニットテストは、リクエストの構築、すべての回答形状、Laya の拡張、FastAPI のエラー、 JSON 検証、期限、キャンセルを対象とします。型チェックは、任意のメタデータ、拒否される レガシーなメソッド/オプション、推論された回答型、ESM/CommonJS の利用者を対象とします。 ライブ統合テストは、変更していない laya.serve アプリケーションを小さなオフライン チェックポイントで起動し、SDK の予測を直接の Python 推論と比較し、ルーティング、プリセット、 認証、リクエスト上限を実際に動かします。CI は Node.js 22 と 24 で SDK のチェックを 実行します。

小さなランダム重みは、転送と数値の一致を検証するものであり、事前学習済みの品質や性能を 検証するものではありません。

セットアップ、例、npm への公開については SDK ガイド を 参照してください。パッケージは laya-client という名前で公開される予定です。Python の リリースワークフローは変わりません。