コンテンツにスキップ

Rust SDK 概要

ai-lib-rust(v0.7.1)は、AI-Protocol 仕様の高性能 Rust ランタイムです。プロバイダーの動作のすべてが設定から来るプロトコル駆動アーキテクチャを実装しています。

ai-lib-rust v0.7.1 は AI-Protocol V2 仕様に対応しています:

  • 標準エラーコード:すべてのエラーパスに統合された 13 バリアントの StandardErrorCode enum(E1001–E9999)
  • フィーチャーフラグ:7 つの機能(embeddingsbatchguardrailstokenstelemetryrouting_mvpinterceptors)に加え full メタ機能
  • コンプライアンステスト:20/20 のクロスランタイムテストケースが合格
  • 構造化出力:スキーマ検証付き JSON モード

SDK は明確なレイヤーに整理されています:

クライアントレイヤー(client/

Section titled “クライアントレイヤー(client/)”

ユーザー向け API:

  • AiClient — メインエントリポイント、モデル識別子から作成
  • AiClientBuilder — 耐障害性設定を含む設定ビルダー
  • ChatRequestBuilder — チャットリクエスト構築のための fluent API
  • CallStats — リクエスト/レスポンス統計(トークン、レイテンシ)
  • CancelHandle — グラースフルなストリームキャンセル

プロトコルレイヤー(protocol/

Section titled “プロトコルレイヤー(protocol/)”

AI-Protocol マニフェストの読み込みと解釈:

  • ProtocolLoader — ローカルファイル、環境変数、または GitHub から読み込み
  • ProtocolManifest — パース済みプロバイダー設定
  • Validator — JSON Schema 検証
  • UnifiedRequest — プロバイダー固有の JSON にコンパイルされる標準リクエスト形式

パイプラインレイヤー(pipeline/

Section titled “パイプラインレイヤー(pipeline/)”

ストリーミング処理の中核 — オペレーターベースのパイプライン:

  • Decoder — バイトストリームを JSON フレーム(SSE、JSON Lines)に変換
  • Selector — JSONPath 式でフレームをフィルタリング
  • Accumulator — 部分チャンクからツール呼び出しを状態を持って組み立てる
  • FanOut — マルチ候補レスポンスを展開
  • EventMapper — フレームを統一 StreamingEvent 型に変換
  • Retry/Fallback — パイプラインレベルのリトライおよびフォールバックオペレーター

トランスポートレイヤー(transport/

Section titled “トランスポートレイヤー(transport/)”

HTTP 通信:

  • HttpTransport — reqwest ベースの HTTP クライアント
  • Auth — API キー解決(OS キーリング → 環境変数)
  • Middleware — ログ、メトリクス用のトランスポートミドルウェア

本番の信頼性パターン:

  • CircuitBreaker — オープン/ハーフオープン/クローズの障害分離
  • RateLimiter — トークンバケットアルゴリズム
  • Backpressure — max_inflight セマフォ
  • embeddings/ — ベクトル操作付き EmbeddingClient
  • cache/ — TTL 付きレスポンスキャッシュ(MemoryCache)
  • batch/ — BatchCollector と BatchExecutor
  • tokens/ — トークンカウントとコスト見積もり
  • plugins/ — プラグイン trait、レジストリ、フック、ミドルウェア
  • guardrails/ — コンテンツフィルタリング、PII 検出
  • routing/ — モデルルーティングとロードバランシング(フィーチャーゲート)
  • telemetry/ — ユーザーフィードバック収集のフィードバックシンク
Crate目的
tokio非同期ランタイム
reqwestHTTP クライアント
serde / serde_json / serde_yamlシリアライゼーション
jsonschemaマニフェスト検証
tracing構造化ログ
arc-swapホットリロードサポート
notifyファイル監視
keyringOS キーリング統合

Cargo 経由で有効化できるオプション機能(すべて有効にするには full を使用):

機能有効化するもの
embeddingsEmbeddingClient、ベクトル操作
batchBatchCollector、BatchExecutor
guardrailsコンテンツフィルタリング、PII 検出
tokensトークンカウント、コスト見積もり
telemetry高度なオブザーバビリティシンク
routing_mvpCustomModelManager、ModelArray、ロードバランシング戦略
interceptorsログ、メトリクス、監査用の InterceptorPipeline
変数目的
AI_PROTOCOL_DIRプロトコルマニフェストディレクトリ
<PROVIDER>_API_KEYプロバイダー API キー(例:OPENAI_API_KEY
AI_LIB_RPSレート制限(1 秒あたりのリクエスト数)
AI_LIB_BREAKER_FAILURE_THRESHOLDサーキットブレーカーのしきい値
AI_LIB_MAX_INFLIGHT最大同時リクエスト数
AI_HTTP_TIMEOUT_SECSHTTP タイムアウト