移行ガイド自社運用のAIプロキシから
自社運用のプロキシから、運用不要のコントロールプレーンへ
多くのチームが、OpenAIとAnthropicの前に小さなサービスを書いています。キーを保持し、リトライし、ログを取り、費用表に照らしてトークンを数え、チームごとのクォータを適用するものです。このページでは、それらの役割をINFROの機能に対応づけ、どれがお客様のコードに残るかを示し、プロキシを動かしたままサービスを1つずつ移行する方法を説明します。
プロバイダーの前に置いた自社のサービス:キー、リトライ、ログ記録、クォータ
INFROのアカウントはセルフサービスで作成できます。 カタログ、ドキュメント、API仕様は公開済みで、ゲートウェイもデプロイ済みです。v1以降の機能には「今後提供」と表示しています。 プランとトライアル
現状
こうしたプロキシが通常行うこと
プロバイダーキーの保持、チームごとの内部キーの発行、リトライとフェイルオーバー、リクエストのログ記録、手作業で管理する表によるトークンの価格計算、クォータを超えたチームの拒否。
維持にかかるコスト
価格表、新しいモデル、各プロバイダーの新しいパラメーター、ログの背後にあるデータベース、プロキシ自体のオンコールを、誰かが担当しなければなりません。
2つの移行方法
置き換える:サービスがINFROを呼び出し、INFROがプロバイダーを呼び出します。または、しばらくINFROの後ろに残す:プロキシをopenai-compatible接続として接続し、上流を1つずつ移します。
自作のプロキシは必要なことを正確にこなしており、それには価値があります。次のいずれかがプロキシの存在理由なら、残しておいてください。
- リクエストを変更する:プロンプトのテンプレート化、コンテキストへの検索結果の挿入、独自モデルによるPIIのマスキング、レスポンスの後処理。INFROのガードレールはパターンルールと意思決定モデルによるチェックで、リクエストの経路でお客様のコードを実行することはありません。
- 自社ネットワーク内や指定のリージョンで動かす必要がある。INFROのプランはCloudflareのネットワーク上でホストされます。セルフホスト型またはハイブリッド型のデプロイはエンタープライズ契約です。
- 社内のGPUでホストしている重みなど、どのプロバイダーのAPIも公開していないモデルを提供しており、他には何もしていない。INFROはそのサーバーに
openai-compatible接続としてルーティングできますが、サーバーはお客様のものです。 - 小規模で担当者がいて、予算、配分、フェイルオーバーを誰も求めていない。その場合、ゲートウェイは得るもののない移行にすぎません。
変更点を1行ずつ。ここにないものはそのままです。
| お客様のプロキシ | INFRO | |
|---|---|---|
| ベースURL | プロキシの社内ホスト。 | https://api.infro.io/v1(OpenAIの形式)、/v1/messages(Anthropicの形式)、/v1/responses(OpenAI Responses)。 |
| キー | プロキシがチームやサービスごとに発行した内部キー。 | サービスごとのINFROゲートウェイキー。それぞれに専用のモデル許可リスト、プロバイダーリスト、IP範囲、環境、支出上限があります。 |
| モデルID | プロキシで定義したエイリアス。 | vendor/model、またはルート名。ルートは、接続の順序付きリストに解決されるエイリアスで、コンソールで編集します。 |
| ヘッダー | 独自のチーム、ユーザー、機能のヘッダー。 | X-INFRO-Feature、X-INFRO-User-Id、X-INFRO-Trace-Id、またはボディ内のmetadata.user_id、metadata.session_id、metadata.tags。 |
変更前 · お客様のプロキシ
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://llm-proxy.internal.example.com/v1",
apiKey: process.env.LLM_PROXY_KEY,
defaultHeaders: { "X-Team": "search" },
});
await client.chat.completions.create({
model: "default-chat",
messages: [{ role: "user", content: "Hello" }],
});変更後 · INFRO
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY, // one key per service
defaultHeaders: { "X-INFRO-Feature": "search" },
});
await client.chat.completions.create({
model: "default-chat", // a route with the same name
messages: [{ role: "user", content: "Hello" }],
});エイリアスはそのまま
プロキシで定義した各エイリアスについて同じ名前のルートを作成すれば、サービスは同じmodelを送り続けられます。キーを名前付きのルートに固定すれば、そのキーからモデルを直接呼び出せなくなります。
サービスを1つずつ移行する
プロキシ自体をopenai-compatible接続として接続し、ルートのターゲットに追加します。まずサービスをINFROに切り替え、その後で上流をプロキシから直接の接続に移せます。
チームはプロジェクトになる
チームごとのクォータは、プロジェクトの予算とキーごとの支出上限になります。メンバーは担当するプロジェクトに限定できます。
現在の設定が行っていることをINFROと比べ、ゲートウェイの実装と照合したもの。 INFROにないものは1行あります。
| お客様のプロキシ | そこでの役割 | INFROでは |
|---|---|---|
| キー保管庫同じ形式 | プロキシの設定ファイルやシークレットストアにあるプロバイダーキー。 | 保存時に暗号化されたプロバイダー接続。プロバイダーごとに複数のキーを持て、待機キーは最後に使われます。 |
| 内部キー同じ形式 | プロキシがチームやサービスごとに発行するキー。 | モデル許可リスト、プロバイダーリスト、IP範囲、環境、支出上限、ローテーション、オフスイッチを備えたゲートウェイキー。 |
| リトライとフォールバック同じ形式 | プロキシ内のコード。 | 優先順位付きまたは重み付きのターゲット、リクエストに対するifルール、種類ごとの障害ルール(429、5xx、タイムアウト、接続、認証情報、モデレーション)を備えたルート。 |
| クォータ同じ形式 | チームごとのトークンまたはドルのカウンター。 | 組織、プロジェクト、メンバー、キー、エンドカスタマーごとの予算。上限に達すると402で拒否し、同時実行下でも維持されます。 |
| 価格表異なる | 手作業で管理するトークン単価の表。 | INFROのカタログにあるベンダーの定価、入力した場合は交渉済みの料金、どちらも不明な場合はゼロではなくunpriced。 |
| リクエストログ異なる | 自社データベースの行。 | コンソールのリクエストログとトレース、GET /v1/requests、エクスポート、OpenTelemetryコレクターへのスパン。プロンプトの記録は、オンにするまでオフです。 |
| プロンプトとレスポンスの変換なし | 独自のロジックによるテンプレート化、検索、マスキング。 | 利用できません。ガードレールはパターンと意思決定モデルのチェックでブロック、マスキング、フラグ付けを行います。INFROはお客様のコードを実行しません。 |
| セルフホストのモデル異なる | プロキシの後ろにあるvLLM、TGI、Ollama。 | そのサーバーへのopenai-compatible接続。他のプロバイダーと同じようにルーティングされます。サーバーの運用は引き続きお客様が行います。 |
| 自社で運用する場合異なる | デプロイした場所で動きます。 | ホスト型。セルフホスト型またはハイブリッド型のデプロイは、プランではなくエンタープライズ契約です。Enterprise — セルフサービスではなく、Enterprise契約で提供します。 |
INFROが行わないこと
- リクエストの経路で独自のコードを実行すること:プロンプトのテンプレート化、検索、独自の変換。
- Batch、Files、ファインチューニング、Realtime、またはOpenAI、Azure OpenAI、Mistral、OpenAI互換エンドポイント以外のプロバイダーでの埋め込み。
- リージョンの固定。データの所在の指定はロードマップにあり、現在は利用できません。
- エンタープライズ契約なしのセルフホスト型デプロイ。
引き継がれないもの
- プロキシのログ。インポーターはないので、今の場所に残してください。
- プロキシの価格表。代わりに交渉済みの料金をコンソールに入力してください。定価はカタログから取得します。
- 独自の変換処理。INFROを呼び出す前の段階で、お客様のコードに残ります。
質問
- 既存のプロキシの前段にINFROを置けますか?
- はい。プロキシをベースURLとキーで
openai-compatible接続として接続し、上流を移す間は他のプロバイダーと同じようにルーティングしてください。 - プロバイダーとの契約は変わりますか?
- いいえ。お持ちのプロバイダーアカウントを接続し、プロバイダーは引き続きお客様の料金でお客様に直接請求します。INFROはサブスクリプションで、モデル支出への上乗せは0%です。
- 自社のコードに残るものは?
- プロンプトやレスポンスを変更するもの:テンプレート化、検索、独自のマスキング、後処理。
当社と一緒に、またはご自身で移行
移行プログラムでは、通話で自社運用のAIプロキシの設定をINFROの接続、ルート、予算に対応付け、最初のサービスを一緒に移行します。プロバイダーは引き続きお客様に直接請求し、INFROはサブスクリプションで、モデル利用料への上乗せは0%です。
出典
このページのSDKの動作は、2026年10月19日に読んだこれらの資料に基づいています。