OpenAIに接続するWorkerをAI Gateway経由でデプロイする
このチュートリアルでは、AI Gatewayを通じてOpenAIに呼び出しを行うWorkerをデプロイする方法を学びます。AI Gatewayは、より多くの分析、キャッシング、レート制限、ロギングを使用してAIアプリケーションをより良く観察し、制御するのに役立ちます。
このチュートリアルでは、2023年8月にリリースされた最新のv4 OpenAIノードライブラリを使用します。
すべてのチュートリアルは、Cloudflare Workersアカウント、C3 ↗、およびWranglerのセットアップを行うスタートガイドをすでに完了していることを前提としています。
CloudflareダッシュボードのAI Gatewayページで、右上のプラスボタンをクリックして新しいAI Gatewayを作成します。ゲートウェイとエンドポイントの名前を設定できます。APIエンドポイントボタンをクリックしてエンドポイントをコピーします。OpenAI、HuggingFace、Replicateなどのプロバイダー固有のエンドポイントから選択するか、特定のスキーマを受け入れ、モデルのフォールバックとリトライをサポートするユニバーサルエンドポイントを使用できます。
このチュートリアルでは、OpenAIプロバイダー固有のエンドポイントを使用するので、ドロップダウンからOpenAIを選択し、新しいエンドポイントをコピーします。
このチュートリアルにはOpenAIアカウントとAPIキーが必要です。まだ持っていない場合は、新しいOpenAIアカウントを作成し、APIキーを作成してこのチュートリアルを続行してください。APIキーは後で使用できるように安全な場所に保管してください。
コマンドラインでWorkerプロジェクトを作成します:
npm create cloudflare@latest -- openai-aigyarn create cloudflare@latest openai-aigpnpm create cloudflare@latest openai-aigFor setup, select the following options:
- For What would you like to start with?, choose
Hello Worldの例. - For Which template would you like to use?, choose
Hello World Worker. - For Which language do you want to use?, choose
JavaScript. - For Do you want to use git for version control?, choose
Yes. - For Do you want to deploy your application?, choose
No(we will be making some changes before deploying).
新しいopen Workerプロジェクトに移動します:
cd openai-aig新しいopenai-aigディレクトリ内で、src/index.jsファイルを見つけて開きます。このファイルをチュートリアルのほとんどの設定に使用します。
最初に生成されたindex.jsファイルは次のようになります:
export default { async fetch(request, env, ctx) { return new Response("Hello World!"); },};Workerプロジェクトが作成されたので、OpenAIへの最初のリクエストを行う方法を学びます。OpenAI APIと対話するためにOpenAIノードライブラリを使用します。npmを使用してOpenAIノードライブラリをインストールします:
npm install openaisrc/index.jsファイル内で、export defaultの上にopenaiのインポートを追加します:
import OpenAI from "openai";fetch関数内で、設定を行い、作成したAI Gatewayエンドポイントを使用してOpenAIApiクライアントをインスタンス化します:
import OpenAI from "openai";
export default { async fetch(request, env, ctx) { const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY, baseURL: "https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai", // ここにAI Gatewayエンドポイントを貼り付けてください }); },};これを機能させるには、wrangler secret putを使用してOPENAI_API_KEYを設定する必要があります。これにより、APIキーが環境に保存され、Workerがデプロイされたときにアクセスできるようになります。このキーは、OpenAIダッシュボードで以前に作成したAPIキーです:
npx wrangler secret put OPENAI_API_KEYローカル開発でこれを機能させるために、Workerプロジェクト内に新しいファイル.dev.varsを作成し、この行を追加します。OPENAI_API_KEYを自分のOpenAI APIキーに置き換えてください:
OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY_HERE>"これで、OpenAIのChat Completions API ↗にリクエストを行うことができます。
使用したいモデル、役割とプロンプト、リクエストの最大トークン数を指定できます。
import OpenAI from "openai";
export default { async fetch(request, env, ctx) { const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY, baseURL: "https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai", });
try { const chatCompletion = await openai.chat.completions.create({ model: "gpt-4o-mini", messages: [{ role: "user", content: "ニューロンとは何ですか?" }], max_tokens: 100, });
const response = chatCompletion.choices[0].message;
return new Response(JSON.stringify(response)); } catch (e) { return new Response(e); } },};アプリケーションをデプロイするには、npx wrangler deployコマンドを実行してWorkerアプリケーションをデプロイします:
npx wrangler deployこれで、<YOUR_WORKER>.<YOUR_SUBDOMAIN>.workers.devでWorkerをプレビューできます。
CloudflareダッシュボードのAI Gatewayに移動すると、最近のリクエストがログに記録されているのが見えるはずです。また、設定を調整して、ログ、キャッシング、レート制限の設定を管理することもできます。