0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudflareAdvent Calendar 2023

Day 8

Chatpad を Cloudflare Pages にデプロイして Cloudflare AI Gateway を使う

Last updated at Posted at 2024-02-14

目的

deiucanta/chatpad をフォーク・修正した kyouheicf/chatpad を使って、以下のような構成を組んで、Cloudflare AI Gateway がどのように使えるかを試してみます。

chatpad.png

参考:Cloudflare AI Gateway とは

主な機能は以下の通りです:

  • 分析: リクエスト数、トークン数、アプリケーションの実行にかかるコストなどのメトリクスを表示します。
  • リアルタイムログ: リクエストとエラーに関する洞察を得る
  • キャッシュ: 元のモデルプロバイダーの代わりにCloudflareのキャッシュから直接リクエストを配信することで、リクエストの高速化とコスト削減を実現します。
  • レート制限: アプリケーションが受け取るリクエスト数を制限することで、アプリケーションのスケールをコントロール
  • リクエストの再試行とフォールバック: エラー発生時のリクエストの再試行とモデルのフォールバックを定義することで、回復力を向上させます。
  • お気に入りのプロバイダーのサポート Workers AI、OpenAI、Azure OpenAI、HuggingFace、ReplicateはすべてAI Gatewayで動作します。
  • レスポンスストリーミング:AI Gatewayはレスポンスストリーミングをサポートします。

cf_ai_gateway.png

cf_ai_valuechain.png

Cloudflare Pages にデプロイ

以下のガイドに沿って進めます。

image.png

ビルド設定では、以下のようにしてください。

  • Framework preset : Create React App
  • ビルド出力先 /dist
  • 環境変数 NODE_VERSION = 18.15.0
  • 環境変数 YARN_VERSION = 1

image.png

デプロイ成功時のログは以下のような形になります。

image.png

Cloudflare Access 設定

後ほど API キーを入力して利用する場面が出てくるため、Cloudflare Access で認証を設定します。
Pages プロジェクトの Settings > Access policy から有効化します。

image.png

Manage Policies から Cloudflare Access の設定を確認できます。

image.png
image.png

デフォルトだと *.chatpadXXXX.pages.dev は登録されますが、chatpadXXXX.pages.dev は対象外となってしまっているため、ワイルドカードなしの chatpadXXXX.pages.dev も登録します。

image.png

デフォルトでは以下のように Email で One Time PIN を求められるような認証です。

image.png

Cloudflare AI Gateway 設定

以下の手順で Cloudflare AI Gateway のエンドポイントを作成します。

image.png

エンドポイント作成後、リアルタイムログを有効化します。

image.png

また、上記の API Endpoints から OpenAI 等の AI プロバイダ向けエンドポイントが確認できます。
このたった1行のコードで始められるというところがミソですね。

image.png

Chatpad 設定

Cloudflare Access によって保護された Cloudflare Pages 上に Chatpad がデプロイされたので、Chatpad でカスタムプロバイダを設定します。

image.png

今回は OpenAI の API キーを使って Cloudflare AI Gateway のエンドポイントを設定します。

image.png

保存すると、ブラウザ開発者ツール内のコンソールでも以下の表示が得られます。

image.png

Cloudflare AI Gateway の分析とログ

この状態でチャットを開始すると、返答を得られました。

image.png

Cloudflare AI Gateway のリアルタイムログでもストリーミングデータが Parsed された状態でのレスポンスが確認できます。

image.png

分析画面では、トークン数やコストも含めた統計的な傾向が把握できました。

image.png

また、以下のファイル内で返答トークン数を制限していますが、必要に応じて変えてみてください。

src/utils/openai.ts
max_tokens: 256,

まとめ

Chatpad のツールと簡単なコード変更で Cloudflare AI Gateway を通して OpenAI の chat/completions API を使い始めることができました。

Cloudflare AI Gateway に接続することで、分析やロギングによってアプリケーションの利用状況を把握し、キャッシングやレート制限、リクエストの再試行、モデルのフォールバックなどの機能によってアプリケーションのスケールを制御することができます。ぜひ活用してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?