← 戻る 散乱したケーブルが絡む放棄された電話交換台、曇りガラス窓の光に照らされ、35mmフィルムグレイン

Vercel AI Gateway:ルーティング、フェイルオーバー、実際の効果

木曜日の午前8時、あるクライアントから電話がありました。彼らのAI搭載ドキュメント要約ツールが真夜中からずっと503を返していたのです。理由はOpenAIのgpt-4oエンドポイントが部分的に停止していたこと。月額4万ポンドのSaaS契約を結んでいるエンタープライズ顧客が激怒していました。私が頭に浮かんだのはたった一つの疑問です:なぜ誰もAnthropicへのリトライフォールバックを実装しなかったのか?

あれから8ヶ月が経ちました。Vercel AI Gatewayは、その問題に対するオフザシェルフのソリューションとしては最も近い存在です。ただし「最も近い」という表現は重要です。実際に何ができるのか、数字がどう見えるのか、どこに懸念を持つべきなのかを説明しましょう。

---

Vercel AI Gatewayの正体

名前を見てロギング機能付きのプロキシだと思う人が大半です。それより少し多機能ですが、マーケティングコピーが示唆するほどではありません。

Vercel AI Gatewayの中核は、アプリケーションコードと複数のLLMプロバイダー(OpenAI、Anthropic、Mistral、Google Gemini、その他)の間に位置しています。ゲートウェイエンドポイントに1つのリクエストを送信すると、ゲートウェイがどのモデル/プロバイダーを呼び出すかを判断し、リトライを処理し、セマンティック応答をキャッシュして結果を返します。4つのAPIダッシュボードの代わりに、1つの請求行項目で済みます。

SDKの統合は本当にきちんとしています。すでにVercel AI SDKを使用している場合、プロバイダーのインポートをゲートウェイクライアントに切り替えて、providersの設定を渡すだけです。既存プロジェクトなら15分程度の作業です。

ゲートウェイ単体がコストの魔法の削減ツールではないということです。節減は3つの特定の動作から生じます:コストによるルーティング、繰り返されるプロンプトのキャッシング、プロバイダー障害後のコールドスタートの回避です。この3つの中の少なくとも1つから価値を得ていない場合、ゲートウェイはメリットなくオーバーヘッドを追加するだけです。

---

ルーティングロジックの仕組み

プロバイダープライオリティと重み付けルーティング

プロバイダーのリストを優先順序または重み配分で設定します。優先度ルーティングはシンプルです:プロバイダーAを試して、429または5xxが返された場合、プロバイダーBにフォールスルーします。重み付けルーティングはトラフィックをパーセンテージで分割するため、「OpenAI 70%、Mistral 30%」と指定して、完全な移行なしに本番トラフィックでコスト差を検証できます。

先四半期、Seahawkがメディア企業向けに構築したコンテンツ生成ツールで重み付けルーティングを使用しました。gpt-4o-miniを60%、mistral-mediumを40%で1ヶ月間実行しました。その時点でMistralは100万トークンあたり約34%安かったのですが、構造化JSON抽出の出力品質は明らかに劣っていました。最終的にOpenAIを80/20で採用しました。重要な点は、ゲートウェイがそのA/Bテストを簡単にしたことです。なければ2つの別々のSDKクライアントを配線して、アプリケーションロジックで分割を管理する必要がありました。

フェイルオーバー動作

フェイルオーバーは目玉機能で、ほぼ約束どおりに動作します。OpenAIが5xxを返すと、ゲートウェイは次に設定されたプロバイダーで約800ms以内にリトライします。ストリーミング応答の場合はもう少し複雑です:ストリームはフォールバックプロバイダーから静かに再開でき、クライアント側でストリームを正しく処理していないと、オープニングチャンクが重複する可能性があります。これで1度引っかかりました。

1つ知っておくべきことは、ゲートウェイはセマンティックフェイルオーバーを実行しないということです。AnthropicのClaude 3.5 Sonnet応答がOpenAI相当とは別の言い方をしている可能性があることは認識していません。プロバイダー全体でのプロンプト互換性はあなたの責任です。ほとんどのチャットスタイルのインターフェースでは問題ありません。厳密なスキーマの構造化出力の場合、本番前にフェイルオーバーチェーンのすべてのプロバイダーを独立して検証してください。

---

キャッシングレイヤー:真のコスト削減が起きる場所

ほとんどの人が過小評価しているのはこの部分です。Vercel AI Gatewayには完全一致キャッシング以上のセマンティックキャッシングが含まれています。

完全一致キャッシングは当然のこと:同じプロンプト文字列が2回ゲートウェイに到達した場合、キャッシュされた応答を返します。セマンティックキャッシングはさらに進みます。埋め込み類似度を使用して、「このパラグラフを3文で要約して」と「このパラグラフの3文での要約をください」が同じリクエストであることを認識し、キャッシュされた結果を提供します。

ドキュメント要約プロジェクト(クライアントがほぼ心臓発作を起こしかけたやつですね)では、コサイン類似度0.92というしきい値でセマンティックキャッシングを有効にした後、キャッシュヒット率を計測しました。本番トラフィックを2週間観測した結果:41%のキャッシュヒット率です。GPT-4oは1K出力トークンあたり£0.015なので、1日200万トークンを処理する規模では決して無視できません。

自分で計算してみてください:

  1. 1日200万トークン
  2. 41%がキャッシュから配信 = 81万8,000トークンの課金ナシ
  3. 1K当たり£0.015で計算すると、1日£12.30の節約
  4. 1ヶ月では約£370

大規模エンタープライズなら大した額ではありません。マージンを気にするインディーSaaS企業にとっては意味があります。これはあくまで1プロジェクト、1ヶ月の話です。

OpenAIのプロンプトキャッシング機能はプリフィックスキャッシングをネイティブで対応するようになったので、長いシステムプロンプトはすでにある程度無料で恩恵を受けています。Vercelのセマンティックキャッシュはそれに加えて、ユーザーターンのコンテンツのバリエーションを処理します。

---

Observability: Better Than Nothing, Not Good Enough Alone

ゲートウェイを通るリクエストすべてがログに記録されます:レイテンシ、トークン数、使用プロバイダー、キャッシュヒット/ミス、コスト見積もりです。これはVercelダッシュボードで確認できます。見やすくて読みやすいです。

ただここが問題なんです。本気で本番システムを運用しているなら、Datadog、Grafana、あるいは最低限LangSmithのようなものをすでにトレースパイプラインに組み込んでいるはずです。ゲートウェイのダッシュボードはゲートウェイレベルの可視性をくれます。アプリケーション全体にわたるスパンレベルのトレースはくれません。特定のユーザーリクエストが4.2秒かかったのが、実はそのうち3.1秒をretrievalステップで費やしてLLMがまだ呼ばれていなかったというのが見えないのです。

だから、ゲートウェイの組み込み可視性を最初のフィルターと考えています:問題はLLM呼び出しレベルにあるのか、それとも別のところにあるのか?より詳しく調べるなら、ちゃんとしたトレースツールにエクスポートします。

1つ知っておく価値のある数字があります:EUリージョンのデプロイで計測した限りでは、ゲートウェイはリクエスト当たり平均15~30msのレイテンシを追加します。リアルタイム音声や100msより短いUX要件があるなら、それは重要です。非同期ドキュメント処理なら関係ありません。

---

実際にかかるコスト

Vercel AI Gatewayはメールアドレスを記入の時点でのProプラン(月£17)以上に含まれています。Vercelからのリクエスト当たりの追加料金はありません。基礎となるプロバイダーのトークンコストは直接払います。

隠れたコストは運用面です:Vercelを推論パスの依存関係に加えることになります。Vercelのエッジネットワークに問題が発生すれば、OpenAIが完璧に健全でもLLM呼び出しは失敗します。この半年で1回経験しました、Vercel EUウエストリージョンのエッジで約12分間の部分的な障害が発生しました。大抵のアプリなら許容範囲です。SLA保証が「9」の桁で測られるようなアプリなら、考慮に入れてください。

データレジデンシーの問題もあります。プロンプトと完成文はVercelのインフラを通過します。大抵のコンシューマーアプリには無関係です。医療、ファイナンス、GDPRに触れる個人データを意味のある形で扱うなら:ゲートウェイを通す前にデータ処理契約をしっかり読んでください。フィンテック系の2クライアントにはゲートウェイをスキップしてアプリケーション側でルーティングを処理するよう指示したことがあります。

---

使う時と使わない時

AIツールのデベロッパーマーケティングは過度に売り込む傾向があるので、ここは率直に言います。

こんな時はVercel AI Gatewayを使ってください:

  • すでにVercelにいて、AI SDKを使っている(余分な摩擦がゼロ)
  • マルチプロバイダー戦略があって、リトライロジックを書かずにフェイルオーバーしたい
  • アプリに反復的または意味的に類似したプロンプトが十分にあってキャッシングが効果を発揮する
  • 別にプロバイダー請求統合を設定することなく、コストダッシュボードが欲しい

これをスキップするか、よく検討してください:

  • GDPR、HIPAA などの厳密なデータレジデンシー要件がある場合
  • 50ms 以下の総推論レイテンシーが必要で、すべてのホップが重要な場合
  • Vercel 以外のインフラストラクチャで実行しており、エッジの追加により解決するよりも複雑さが増す場合
  • プロンプトの種類が非常に多く、セマンティックキャッシュのヒット率がほぼゼロになる場合

2022 年、ロンドンシティの企業向けに自社ホストスタックで法的文書分析ツールを構築しました。Vercel AI Gateway が当時存在していたとしても、即座に検討対象外となっていたでしょう。プロンプトには機密クライアント情報が含まれており、企業の IT コンプライアンスチームは第三者プロキシの承認を決して与えなかったはずです。シンプルな優先度キューで 2 つのプロバイダー間のフェイルオーバーを処理するプロバイダー抽象化レイヤーを約 4 時間で構築しました。格好いいものではありませんが、完全に十分でした。

---

実践的なセットアップ(短いバージョン)

プロジェクトに適切だと判断した場合、以下が私が従うシーケンスです:

  1. Vercel プロジェクト設定の「AI」タブでゲートウェイを有効にする
  2. ai @ai-sdk/openai(および必要な他のプロバイダーパッケージ)をインストールするか最新バージョンに更新する
  3. 直接プロバイダークライアントのインスタンス化を @vercel/ai-gateway からのゲートウェイクライアントに置き換える(正確なインポートパスについては公式ドキュメントを確認してください。既に 1 度変更されています)
  4. ゲートウェイ設定オブジェクト内のプロバイダーリストを優先順に定義する
  5. セマンティックキャッシュの類似度閾値を設定する:私は 0.90 から開始し、1 週間のトラフィック後に観察されたヒット率に基づいて調整します
  6. ステージング環境にデプロイし、プロバイダーの障害を意図的にトリガーしてフェイルオーバーチェーンが予想どおりに機能することを確認する
  7. 結論を出す前に、最初の 2 週間はキャッシュヒット率とレイテンシーの p95 を監視する

以上です。本当に複雑ではありません。

---

FAQ

Vercel AI Gateway はストリーミングレスポンスをサポートしていますか?

はい、ストリーミングはゲートウェイ経由で機能します。唯一の問題はストリーム中のフェイルオーバーです:プライマリプロバイダーがストリーミングレスポンス中にダウンすると、ゲートウェイは次のプロバイダーで再試行しますが、ストリームが再開されます。クライアント側の UI が部分的なコンテンツをどう処理するかによって、目に見ちるちらつきまたは重複した最初の文が発生する可能性があります。デプロイ前に UI で明示的にテストしてください。

Vercel AI SDK なしで Vercel AI Gateway を使用できますか?

技術的には HTTP 経由でゲートウェイエンドポイントに直接アクセスできますが、SDK 統合で使いやすくなります。SDK なしでは、ゲートウェイ URL の周りに独自の fetch ラッパーを記述し、ストリーミングを自分で管理し、再試行を手動で処理します。その時点では独自のプロバイダー抽象化を構築した方がいいでしょう。ゲートウェイの価値は実際には SDK と密結合しています。

セマンティックキャッシュはどのように機密データまたは個人化されたデータを処理しますか?

自動的には処理しません。名前、アカウント番号、セッションコンテキストなどのユーザー固有のデータを含むプロンプトを送信している場合、キャッシュはそのデータがユーザー間で異なるかどうかに関係なく、セマンティック的に類似したプロンプトを照合しようとします。これにより、個人化されたワークフローで不正なキャッシュヒットが発生する可能性があります。これらのルートのセマンティックキャッシュを無効にするか、ゲートウェイがプランティアで対応している場合はユーザースコープのキャッシュキーを含める必要があります。

Vercel に障害が発生した場合、リクエストはどうなりますか?

失敗します。ゲートウェイはクリティカルパスにあります。真の マルチクラウド レジリエンスが必要な場合は、ゲートウェイを完全にバイパスしてプロバイダーに直接アクセスできるアプリケーション層にサーキットブレーカーが必要です。アップタイムが本当に重要なアプリケーションでは、プロバイダー SDK クライアントをフォールバックとして初期化したままにしておきます。

---

率直な評価:Vercel AI Gatewayは、Vercel環境でのAIスタック構築に組み込む価値のある、よく設計されたインフラストラクチャです。ユニット・エコノミクスを革新的に改善するわけではありませんが、適切なワークロードで35~40%のキャッシュヒット率と自動フェイルオーバーを備えることは、すべてを手動で接続するより明らかな運用上の改善です。ただし、コミットする前に、このツールにできないことを理解しておくことが重要です。朝8時の不安に駆られたクライアントからの電話で、自分の前提がどこで間違っていたのかを知るのは、決して気持ちのよいものではありません。

← 戻る