主な機能
V2 エラーコード&フィーチャーフラグ
13種類のV2標準エラーコードでプロバイダー間の一貫したエラー処理。フィーチャーゲートモジュール:7つのオプション機能と完全メタ機能で最小またはフルビルドをサポート�?
オペレータベースパイプライン
ストリーミング応答はコンポーザブルなオペレータを経由:Decoder → Selector → Accumulator → FanOut → EventMapper。各ステージはプロトコルで設定�?
プロトコルローディン�?/h3>
ローカルファイル、環境変数、または GitHub フォールバックからプロバイダーマニフェストを読み込み。ファイル監視によるホットリロードをサポート。設定更新に再起動不要�?
レジリエンスパターン
内蔵サーキットブレーカー、トークンバケットレートリミッター、指数バックオフリトライ、最大同時実行バックプレッシャー。すべて環境変数で設定可能�?
埋め込み&ベクト�?/h3>
EmbeddingClient にベクトル演�?�? コサイン類似度、ユークリッド距離、ドット積。セマンティック検索�?RAG アプリケーションをネイティブに構築�?
キャッシュ&バッ�?/h3>
TTL付き応答キャッシュ(メモリバックエンド)。設定可能な並行処理、タイムアウト、複数処理戦略でのバッチ実行�?
プラグインシステ�?/h3>
フックとミドルウェアチェーンを備えた拡張可能なプラグインアーキテクチャ。コアコードを変更せずにカスタム動作を追加。コンテンツフィルタリングと PII 検出用ガードレール�?
シンプルで統一され�?API
同じコードで 37のプロバイダーすべてに動作。モデル識別子を変えるだ�?�? プロトコルマニフェストがエンドポイント、認証、パラメータマッピング、ストリーミング形式をすべて処理�?
ビルダーパターンでリクエスト構築のフルエン�?API
を提供。ストリーム結果は、基盤プロバイダーに関係なく統一され�?StreamingEvent 型で到着�?
use ai_lib_rust::{AiClient, Message, StreamingEvent{'}'};
// Works with ANY provider �?protocol-driven
let client = AiClient::new(
"anthropic/claude-3-5-sonnet"
).await?;
// Builder pattern for chat requests
let mut stream = client.chat()
.user("Explain AI-Protocol")
.temperature(0.7)
.max_tokens(1000)
.stream()
.execute_stream()
.await?;
// Unified streaming events
while let Some(event) = stream.next().await {'{'}
match event? {'{'}
StreamingEvent::ContentDelta {'{'} text, .. {'}'}
=> print!("{'{'}text{'}'}"),
StreamingEvent::StreamEnd {'{'} stats, .. {'}'}
=> println!("
Tokens: {'{'}{'}'}",
stats.total_tokens),
_ => {'{'}{'}'} // ToolCall, Metadata, etc.
{'}'}
{'}'}
内部アーキテクチ�?/h2>
ユーザー向け API から HTTP トランスポートまでの5層。ストリーミングパイプラインがシステムの中心�?
モジュール概�?/h2>
client/ + error_code/
AiClient、AiClientBuilder、ChatRequestBuilder、実行ロジック、ポリシーエンジン、プリフライトチェック、エラー分類、CallStats、CancelHandle�?
protocol/
ProtocolLoader(ローカ�?URL/GitHub)、JSON Schema バリデーター、ProtocolManifest
構造、UnifiedRequest コンパイル、設定型�?
pipeline/
Decoder(SSE、JSON
Lines)、Selector(JSONPath)、Accumulator(ツール呼び出し)、FanOut(マルチ候補)、EventMapper(統一イベント)、Retry
�?Fallback オペレータ�?
transport/
HttpTransport(reqwest)、API キー解決(keyring + env
vars)、プロキ�?タイムアウト設定、ミドルウェアサポート�?
resilience/
サーキットブレーカー(オープ�?ハーフオープ�?クローズ)、トークンバケットレートリミッター、最大同時実行セマフォバックプレッシャー�?
embeddings/
EmbeddingClient、EmbeddingClientBuilder、ベクトル演算(コサイン類似度、ユークリッド距離、ドット積)�?
cache/ + batch/
TTL付き CacheManager(MemoryCache、NullCache)。並行制御と複数戦略を備えた
BatchCollector �?BatchExecutor�?
plugins/ + guardrails/ + structured/
Plugin
trait、PluginRegistry、HookManager、ミドルウェアチェーン。キーワード/パターンフィルターと
PII 検出のガードレール�?
client/ + error_code/
AiClient、AiClientBuilder、ChatRequestBuilder、実行ロジック、ポリシーエンジン、プリフライトチェック、エラー分類、CallStats、CancelHandle�?
protocol/
ProtocolLoader(ローカ�?URL/GitHub)、JSON Schema バリデーター、ProtocolManifest 構造、UnifiedRequest コンパイル、設定型�?
pipeline/
Decoder(SSE、JSON Lines)、Selector(JSONPath)、Accumulator(ツール呼び出し)、FanOut(マルチ候補)、EventMapper(統一イベント)、Retry �?Fallback オペレータ�?
transport/
HttpTransport(reqwest)、API キー解決(keyring + env vars)、プロキ�?タイムアウト設定、ミドルウェアサポート�?
resilience/
サーキットブレーカー(オープ�?ハーフオープ�?クローズ)、トークンバケットレートリミッター、最大同時実行セマフォバックプレッシャー�?
embeddings/
EmbeddingClient、EmbeddingClientBuilder、ベクトル演算(コサイン類似度、ユークリッド距離、ドット積)�?
cache/ + batch/
TTL付き CacheManager(MemoryCache、NullCache)。並行制御と複数戦略を備えた BatchCollector �?BatchExecutor�?
plugins/ + guardrails/ + structured/
Plugin trait、PluginRegistry、HookManager、ミドルウェアチェーン。キーワード/パターンフィルターと PII 検出のガードレール�?