TrueFoundryとSmallest AIの統合

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
Smallest AIとTrueFoundry AI Gateway
Smallest AIのテキスト読み上げモデルと音声認識モデルは、ネイティブパススルーを介してTrueFoundry AI Gatewayと連携します。リクエストは、バッチ合成と文字起こしのためにSmallest AIのRESTエンドポイントに送られ、チャンク化された音声出力とライブ文字起こしのために、対応するサーバー送信イベントストリームおよびWebSocketエンドポイントにも送られます。ゲートウェイは、認証情報ストアからSmallest AIのBearerトークンを置き換え、リクエストをプロキシするかWebSocketをアップグレードする前に、アクセス制御を適用し、OpenTelemetryスパンを発行します。
この記事では、TTSおよびSTTファミリー全体にわたるSmallest AIのAPIサーフェスについて説明します。また、ゲートウェイプレーンがOpenAI互換ではない音声エンドポイントのネイティブパススルーパスをどのように処理するかについても説明します。

Smallest AIが公開する機能
Smallest AI は2つのモデルファミリーを提供しています。Lightningはテキスト読み上げファミリー、Pulseは音声認識ファミリーです。どちらも、バッチ処理にはRESTエンドポイントとして、ストリーミング処理にはWebSocketエンドポイントとして動作します。
Lightning v3.1 は、最初の音声出力までの時間が100ミリ秒未満と公表されている44kHzのTTSモデルです。英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、スウェーデン語、オランダ語に加え、ヒンディー語、タミル語、テルグ語、マラヤーラム語、カンナダ語、マラーティー語、グジャラート語を含むインド系言語に強く対応した15言語をサポートしています。このモデルは、トークンごとにではなく、音声セグメント全体を並行して生成する非自己回帰型アーキテクチャを採用しています。これにより、低遅延プロファイルが実現され、モデルが1GB未満のVRAMで動作するため、規制された環境でのオンプレミス展開が実用的になります。
このモデルは、3つのエンドポイント形式で提供されます。
- POST https://waves/v1/lightning-v3.1/get_speech.
- これは、レスポンスボディに完全なオーディオファイルを返す同期バッチエンドポイントです。MP3、PCM、WAV、mulaw、alawの出力形式に対応しており、8000 Hzから44100 Hzまでのサンプルレートをサポートしています。
- voice_idパラメータと、0.5倍から2倍の範囲のspeedパラメータ、およびカスタム辞書の上書きのためのオプションのpronunciation_dicts配列を受け入れます。
- また、session_idとrequest_idの相関識別子をサポートしており、これらはレスポンスヘッダーにX-External-Session-IdおよびX-External-Request-Idとしてエコーバックされます。これらはゲートウェイを介して変更されずに渡されるため、エンドツーエンドのトレース相関に役立ちます。
- POST https://waves/v1/lightning-v3.1/get_speech/stream.
- これはサーバー送信イベントストリームであり、モデルが音声を生成するにつれて、オーディオチャンクを段階的に出力します。
- WSS /waves/v1/lightning-v3.1/get_speech/stream.
- これは永続的なWebSocket接続であり、オーディオチャンクが生成されると同時に配信します。
- この接続は複数のTTSリクエストで再利用できるため、接続確立のコストが償却されます。
Pulse STTの対応物です。これは2つの形式で動作します。POST /waves/v1/pulse/get_text は、事前に録音された音声をバッチ処理し、WSS /waves/v1/pulse/get_text は、ライブストリーミングの文字起こしを処理します。このストリーミングエンドポイントは、デフォルトエンコーディングとしてlinear16を使用し、8000、16000、22050、24000、44100、または48000 Hzのオーディオフレームを受け入れます。language=multi を介してコードスイッチングを有効にした36言語をサポートしています。
ゲートウェイの背後にある統合にとって、Pulseストリーミングプロトコルの興味深い点は、インラインコンテンツ制御です。redact_pii=true は、Smallest AIから出力される前に、最終的な文字起こしから個人識別情報(PII)を削除します。redact_pci=true は、カード番号、CVVコード、郵便番号、口座番号を含む支払いカード情報(PCI)を削除します。diarize=true は、話者分離を有効にします。keywords は、製品名や薬剤名などのドメイン固有の用語の認識を向上させるための、オプションの強調値を持つフレーズのコンマ区切りリストを受け入れます。itn_normalize=true は、逆テキスト正規化(ITN)を有効にし、最終的な文字起こしで話された数字、日付、通貨を書き言葉の形式に変換します。これらの編集パラメータが重要なのは、後から文字起こしをスクラブするためのダウンストリームのガードレールを必要とせず、プライバシー保護をモデル層に押し込むためです。
並行処理モデルSmallest AIは、構築を開始する前に理解しておくべき、珍しい並行処理の仕組みを提供しています。1つの並行処理ユニットは、任意の時点で処理できる1つのアクティブなTTSリクエストに対応します。TTSの場合、並行処理ユニットごとに最大3つのWebSocket接続を確立できます。したがって、3つの並行処理ユニットを持つテナントは、9つのWebSocket接続を維持できますが、同時にアクティブな生成を実行できるのはそのうち3つだけです。並行処理の制限に達している間にいずれかの接続を介して送信された追加のリクエストは、キューに入れられるのではなく、エラーで拒否されます。これは、一般的な1分あたりのトークン数や1分あたりのリクエスト数のモデルとは異なり、ゲートウェイのレートリミッターをどのように設定すべきかに影響を与えます。STTの場合、1つの並行処理ユニットは1つのWebSocket接続です。

ゲートウェイプレーンを介したネイティブパススルー

TrueFoundry AI GatewayはHonoフレームワーク上に構築されており、ステートレスなポッド群として動作します。1 vCPUと1 GB RAMを搭載した単一のポッドは、約3ミリ秒の追加レイテンシで250以上のRPSを処理します。コントロールプレーンはPostgreSQLとClickHouseで構成を管理し、NATSを介してゲートウェイポッドに更新を伝播します。ゲートウェイポッドはその構成をメモリにキャッシュするため、リクエストパスは認証、認可、ルーティングの決定のために外部呼び出しを行いません。
OpenAI互換プロバイダーの場合、ゲートウェイはアダプター内で、受信したOpenAI形式とプロバイダーのネイティブ形式の間で変換を行います。Smallest AIは、OpenAI Audio APIにSmallest AIのvoice_id、pronunciation_dicts、session_idパラメータに相当するものがなく、Lightningのチャンクオーディオ出力を提供するWebSocketストリーミングプロトコルに相当するものもないため、この変換には適合しません。したがって、ゲートウェイはネイティブパススルーを介してSmallest AIを公開します。
Smallest AIリクエストがゲートウェイポッドに到達すると、転送前パイプラインはチャット補完の場合と同じチェックを実行します。リクエストで提示されたJWTは、キャッシュされたIdP公開鍵に対して検証され、外部認証呼び出しは行われません。認可は、ユーザーとモデルのインメモリマップに対してチェックされます。モデル識別子(lightning-v3.1またはpulse)は、設定されたSmallest AIアカウントに解決されます。受信したAuthorizationヘッダーは削除され、クレデンシャルストアから取得したBearerトークンに置き換えられます。転送されるURLは、一致するパスとメソッドが保持されたまま https://api.smallest.ai/... となります。ボディは変更されずにストリーミングされます。WebSocketエンドポイントの場合、ゲートウェイはSmallest AI WebSocket URLに対してHTTPアップグレードハンドシェイクを実行します。アップグレードが成功すると、ゲートウェイは2つのWebSocket接続(1つはクライアント用、もう1つはSmallest AI用)を保持し、ペイロードを解釈することなく両方向にフレームをプロキシします。X-External-Session-Id および X-External-Request-Id エコーヘッダーは、呼び出し元にそのまま渡されます。
リクエストが完了すると、ゲートウェイは期間、ステータス、解決されたモデル名、およびコストメタデータを含むスパンをNATSに公開します。OTELエクスポーターは非同期パスから読み取り、gRPCまたはHTTPを介して設定されたバックエンドにスパンを転送します。アグリゲーターサービスは、ユーザーごと、チームごと、モデルごとのコストデータを集計します。
統合インターフェース

TrueFoundry AI GatewayにSmallest AIを追加するには、ダッシュボードで3つのステップが必要です。AI Gatewayに移動し、次にModelsを選択し、Smallest AIを選択します。一意のアカウント名とSmallest AI Bearerトークンを入力してアカウントを追加します。トークンはコントロールプレーンに暗号化されて保存され、ゲートウェイポッドに直接公開されることはありません。オプションで、このアカウントを介してルーティングできるユーザーとチームを制御するコラボレーターを追加します。次に、[Add Model]をクリックし、表示名、モデルID、モデルタイプを指定して、1つ以上のモデルを登録します。モデルIDは、Smallest AIモデル識別子(lightning-v3.1、lightning-v2、またはpulse)と完全に一致する必要があります。
推論には、Smallest AI Python SDK、またはゲートウェイURLをベースURLとして置き換えた任意のHTTPクライアントを使用します。Pythonクライアントは次のようになります。
import requests
response = requests.post(
"https://<your-gateway-host>/smallest/waves/v1/lightning-v3.1/get_speech",
headers={
"Accept": "audio/wav",
"Authorization": f"Bearer {TFY_API_KEY}",
"Content-Type": "application/json",
},
json={
"text": "Welcome to the support line. Please describe your issue.",
"voice_id": "daniel",
"sample_rate": 24000,
"speed": 1.0,
"output_format": "wav",
"language": "en",
},
)
with open("response.wav", "wb") as f:
f.write(response.content)
SSEエンドポイントの場合も、パスを変更し、応答をストリームとして読み取ることで同じ形式で動作します。WebSocketエンドポイントは、wssスキームでゲートウェイURLを指すことで、任意の標準WebSocketクライアントを介して動作します。TrueFoundryが発行したJWTは、Authorizationヘッダー内のSmallest AI Bearerトークンを置き換えます。ゲートウェイはURLパスと、X-External-Session-Id および X-External-Request-Id 相関ヘッダーを含む応答形式を保持するため、Smallest AIクライアントはSmallest AIと直接通信した場合と同じ応答ペイロードとヘッダーを確認できます。
アーキテクチャの概要
エンドツーエンドのデータフローはシンプルです。クライアントは、Smallest AI Python SDKまたは汎用HTTPおよびWebSocketクライアントを使用して、ゲートウェイURLに対してHTTPリクエストまたはWebSocketを開きます。ゲートウェイポッドは、キャッシュされたIdP公開鍵に対してJWTを認証し、モデル識別子を設定されたSmallest AIアカウントに解決します。受信した認証ヘッダーを削除し、クレデンシャルストアからBearerトークンを置き換えます。リクエストを https://api.smallest.ai に転送するか、WebSocketを対応する wss:// URLにアップグレードします。WebSocketセッションの場合、いずれかの側が接続を閉じるまで、両方向にフレームをブリッジします。完了後、ゲートウェイはスパンをNATSに公開し、それがOTELエクスポーターとコストアグリゲーターに供給されます。
不要なものが重要です。Smallest AI SDKのフォークはありません。OpenAI Audioの形式とSmallest AIのvoice_idおよびpronunciation_dictsパラメータの間に、境界で情報が失われるような変換レイヤーはありません。チャットトラフィックパイプラインとは別の、音声トラフィック用のシャドートレーシングパイプラインはありません。アプリケーションコードやKubernetesシークレット全体に分散されたサービスごとのBearerトークンはありません。ストリーミングエンドポイントにアクセス制御を適用するために、ゲートウェイと並行してデプロイする必要がある個別のWebSocketターミネーターはありません。PulseのPIIおよびPCI編集パラメータはゲートウェイを介してそのまま通過するため、プライバシー保護は、ダウンストリームのガードレールに分散されるのではなく、Smallest AIの編集パイプラインが実行されるモデル層に維持されます。
アーキテクチャの原則は、プロトコルセマンティクスとガバナンスセマンティクスの分離です。LightningのチャンクオーディオストリーミングとPulseのインライン編集付きストリーミング文字起こしは、他のプロバイダーには一般化されない音声ドメインの意味を持ちます。ガバナンス層(認証、認可、クレデンシャル注入、可観測性、コスト集計、チーム境界でのレート制限)はプロバイダーに依存せず、ペイロードを検査することなく、任意のHTTPまたはWebSocketオリジンの前に実行されます。ネイティブパススルーは、後者を適用しながら前者を保持します。その結果、Smallest AIの全機能(Lightningの15言語対応、インド系音声、PulseのPCI編集、明示的な並行処理モデル)がクライアントに利用可能になり、AI Gatewayの残りの部分がチャットトラフィックに提供する運用保証が、同じコントロールプレーン、同じトレースおよびコストバックエンドを持つ同じゲートウェイポッド上の音声トラフィックにも適用されます。
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI












.webp)




.png)








.webp)
.webp)








