大規模言語モデル(LLM)や様々なAIサービスの普及に伴い、開発者がアプリケーションにこれらの機能を統合することが一般的になりつつある。しかし OpenAI
そしてHugging Face
や他のサービスプロバイダのAPIエンドポイントは、しばしば様々な管理とO&Mの課題を提示する:
- 不透明なコストAPIリクエストの量が増えるにつれて、関連するコストも増加する。しかし、開発者にとって、どの特定の呼び出しが最もリソースを消費しているのか、どれが無効または冗長なリクエストなのかを正確に追跡することは困難な場合が多く、コストの最適化を難しくしている。
- パフォーマンス変動混雑時には、AIサービスのAPIレスポンスタイムが長くなったり、タイムアウトが発生したりすることがあります。
- モニタリングの欠如ユーザーによって最も頻繁に使用される機能、最も効果的なプロンプト(促し)、誤ったリクエストの種類と頻度など、主要な指標を監視する統一されたプラットフォームがないため、サービスの最適化はデータに支えられていない。
- IPアドレスの制限と評判の問題AIサービスの中には、リクエストの発信元IPアドレスに厳しい制限やポリシーを設けているものがあります。共有IPアドレスや評判の悪いIPアドレスを使用して呼び出しを開始すると、リクエストが失敗したり、モデル出力の品質に影響することさえあります。
こうした課題に対処するためだ。Cloudflare
打ち上げ AI Gateway
サービス。これは、アプリケーションとバックエンドAIサービスの間に位置する、自由に利用できるインテリジェントなプロキシレイヤーで、AI計算そのものを実行するのではなく、AIリクエストの管理、監視、最適化に重点を置いている。
Cloudflare AI Gateway
中核となる価値は、統合された分析とロギング、インテリジェントなキャッシュ、レート制限、自動再試行を提供することにある。AIリクエスト・トラフィックを AI Gateway
さらに、開発者は、上記のペインポイントに効果的に対処する集中管理ポイントを得ることができる。特に、そのグローバル・ネットワーク・ノードは、信頼できるリレーとして機能し、IPアドレスの制限や地理的な位置による問題を軽減するのに役立つ。
を設定し、使用する方法を説明します。 Cloudflare AI Gateway
.
ステップ1:AIゲートウェイのインスタンスを作成する
があれば、設定プロセスは簡単である。 Cloudflare
アカウント(未登録の場合は無料で作成できます)。
- Cloudflare Consoleへのログインアクセス
dashboard.cloudflare.com
. - AIにナビゲートする左のメニューから "AI "を探してクリックします。
- AIゲートウェイを選択AIサブメニューで "AI Gateway "をクリックします。
- ゲートウェイの作成ゲートウェイを作成する」ボタンをクリックしてください。
- ネームド・ゲートウェイゲートウェイに明確な名前を付ける。
my-app-gateway
この名前は、後続のAPIエンドポイントのURLの一部になる。この名前は、後続のAPIエンドポイントのURLの一部になる。 - (オプション)説明を追加その後の管理を容易にするために、記述情報を追加することができる。
- 創造の確認名前と説明が完了したら、"Confirm Creation "をクリックします。
作成に成功すると、ゲートウェイの詳細ページが表示されます。主な情報は以下の通りです。 ゲートウェイ・エンドポイントURL(ゲートウェ イ・エンドポイントURL)を必ず文書化してください。基本的な書式は以下の通り:
https://gateway.ai.cloudflare.com/v1/<ACCOUNT_TAG>/<GATEWAY_NAME>/<PROVIDER>
<ACCOUNT_TAG>
::Cloudflare
アカウントの一意な識別子で、自動的に入力されます。<GATEWAY_NAME>
前のステップでゲートウェイに設定された名前。my-app-gateway
.<PROVIDER>
: 対象となるAIサービス・プロバイダーの識別子。openai
,workers-ai
,huggingface
など。これはAI Gateway
どのバックエンドサービスにリクエストを転送するか。
ステップ2:AIゲートウェイをアプリケーションに組み込む
これは核となるステップだ。AIサービスAPIに直接アクセスするBase URLを、前のステップで取得したものに置き換えるために、アプリケーションコードを修正する必要がある。 Cloudflare AI Gateway
URL。
重要な注意事項ベースとなるURL部分のみを置き換える必要があります。リクエストパス、クエリパラメータ、リクエストヘッダ(APIキーを含む)などは変更しないでください。AI Gateway
APIキーを含むリクエストヘッダは、最終的なAIサービスプロバイダーに安全にパススルーされる。
例1:PythonアプリケーションでOpenAI SDKを使う
を直接呼び出したと仮定すると OpenAI
APIのコードは以下の通り:
# --- 原始代码 (直接调用 OpenAI) ---
import openai
import os
# 从环境变量加载 OpenAI API Key
client = openai.OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# 默认 base_url 指向 https://api.openai.com/v1
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "你好,世界!"}]
)
print("OpenAI Direct Response:", response.choices[0].message.content)
except Exception as e:
print(f"Error: {e}")
修正者 AI Gateway
リクエストを送信
# --- 修改后代码 (通过 Cloudflare AI Gateway) ---
import openai
import os
# Cloudflare 账户 Tag 和 网关名称 (替换为实际值)
cf_account_tag = "YOUR_CLOUDFLARE_ACCOUNT_TAG"
cf_gateway_name = "my-app-gateway"
# 构造指向 OpenAI 的 AI Gateway URL
# 注意末尾的 /openai 是提供商标识
gateway_url = f"https://gateway.ai.cloudflare.com/v1/{cf_account_tag}/{cf_gateway_name}/openai"
# OpenAI API Key 保持不变,从环境变量加载
api_key = os.environ.get("OPENAI_API_KEY")
# 核心修改:在初始化 OpenAI 客户端时传入 base_url 参数
client = openai.OpenAI(
api_key=api_key,
base_url=gateway_url # 指向 Cloudflare AI Gateway
)
try:
# 请求的模型、消息等其他参数保持不变
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "你好,世界!(通过 Gateway)"}]
)
print("Via AI Gateway Response:", response.choices[0].message.content)
except Exception as e:
print(f"Error hitting Gateway: {e}")
重要な変更は初期化である。 OpenAI
クライアントに base_url
パラメータは AI Gateway
URL。
例2:JavaScriptでfetch APIを使う(Node.jsまたはブラウザ)
元のコードが fetch
ダイレクト・コール OpenAI
::
// --- 原始代码 (直接 fetch OpenAI) ---
const apiKey = process.env.OPENAI_API_KEY; // 或其他获取方式
const openAIBaseUrl = "https://api.openai.com/v1";
fetch(`${openAIBaseUrl}/chat/completions`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify({
model: "gpt-3.5-turbo",
messages: [{"role": "user", "content": "Hello from fetch!"}]
})
})
.then(res => res.json())
.then(data => console.log("OpenAI Direct Fetch:", data.choices[0].message.content))
.catch(err => console.error("Error:", err));
を採用するよう修正された。 AI Gateway
リクエストを送信
// --- 修改后代码 (通过 AI Gateway fetch) ---
const apiKey = process.env.OPENAI_API_KEY;
const cfAccountTag = "YOUR_CLOUDFLARE_ACCOUNT_TAG"; // 替换为实际值
const cfGatewayName = "my-app-gateway"; // 替换为实际值
// 构造 AI Gateway URL
const gatewayBaseUrl = `https://gateway.ai.cloudflare.com/v1/${cfAccountTag}/${cfGatewayName}/openai`;
// 核心修改:替换请求 URL 的基础部分
fetch(`${gatewayBaseUrl}/chat/completions`, { // URL 指向 Gateway
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}` // API Key 仍在 Header 中发送
},
body: JSON.stringify({ // 请求体不变
model: "gpt-3.5-turbo",
messages: [{"role": "user", "content": "Hello from fetch via Gateway!"}]
})
})
.then(res => res.json())
.then(data => console.log("Via AI Gateway Fetch:", data.choices[0].message.content))
.catch(err => console.error("Error hitting Gateway:", err));
使用されるプログラミング言語やフレームワークに関係なく(例えば LangChain
, LlamaIndex
AIサービスのAPIエンドポイントやベースURLが設定されている場所を探し、対応する Cloudflare AI Gateway
URL。
コードの変更を完了し、アプリケーションをデプロイすると、ターゲットのAIサービスへのリクエストはすべて AI Gateway
.
ステップ3:AIゲートウェイの内蔵機能を活用する
かえる Cloudflare
コンソールで AI Gateway
管理ページでは、その機能を観察し、活用することができます:
- アナリティクスリクエスト量、成功率、エラー分布、トークン使用量、推定コスト、レイテンシ(P95/P99)などの主要メトリクスを視覚的なチャートで表示します。これにより、パフォーマンスのボトルネックやコストの異常値を迅速に特定できます。
- 過去ログ: 詳細なリクエストログを提供し、各リクエストのタイムスタンプ、ステータスコード、ターゲットモデル、部分的なリクエスト/レスポンスメタデータ、経過時間、キャッシュステータスなどの情報を記録します。これは、問題のトラブルシューティングとユーザー行動分析のための重要なツールです。
- キャッシングキャッシュはゲートウェイの "Settings "ページで有効にすることができます。適切な TTL(タイム・ツー・ライブ)例えば、1時間(3600秒)。
AI Gateway
同一のリクエスト(同一のプロンプトワード、同一のモデルなど)に対する 応答はキャッシュできる。TTL の有効期間中、それ以降の同一のリクエストは直接Gateway
キャッシュされた結果を返す。バックエンドのAIサービス・プロバイダーからトークンやコンピュート・リソースを消費しない。.これは、AIが生成するコンテンツ(商品説明など)のように、繰り返しリクエストがあるシナリオに特に有効で、コストとレイテンシーを大幅に削減できる。 - レート制限レート制限ルールは設定ページで設定することもできます。IPアドレスやカスタムリクエストヘッダー(ユーザーIDや特定のAPIキーを渡すなど)に基づいてリクエストの頻度を制限することができます。例えば、「1つのIPアドレスに対して1分間に20回までのリクエストを許可する」と設定できます。これにより、悪意のある攻撃やプログラミングエラーによるリソースの悪用を防ぐことができます。
戦略的価値
つまたは複数のAIサービスを統合して管理する必要がある開発者やチームにとってCloudflare AI Gateway
は、一元化された管理しやすいソリューションを提供します。直接APIコールによくあるコスト、パフォーマンス、モニタリングの課題に対処するだけでなく、キャッシュやレート制限などの機能を通じて、最適化と保護の追加レイヤーを提供します。開発者が独自に同様のプロキシ、キャッシング、モニタリング・システムを構築・維持するのではなくAI Gateway
複雑さと作業負荷を大幅に軽減AIアプリケーションが深化するにつれ、このようなゲートウェイ・サービスによる統合管理は、システムの堅牢性を維持し、運用コストを抑制し、将来の拡張に柔軟に対応するために不可欠である。