Cloudflare Workers AIをWorkersの外からREST APIよびだしで利用する方法
Cloudflare Workers AIは、Workersから利用するためのAIサービスで、APIトークンを取得してREST APIを使用することで利用できます。記事では、APIトークンの取得方法やcURLを使用したREST APIの実行方法が紹介されています。また、リクエストBodyに質問を入れることでLLMに対して質問を送ることもできます。Cloudflareは、世界中のウェブサイトに安全性、高速化、可用性を提供するサービスプロバイダーであり、日本でも利用が増えています。Workers AIの恩恵を受けるためには、APIトークンの作成とREST APIの呼び出し方を理解する必要があります。
目次
Cloudflare Workers AIはその名の通り、Workersから利用するのが鉄板です。wrangler.toml
にBindするだけで、簡単にLLMを実行することができます。
しかし全てのシステムがCloudflare Workers上で動くわけではありません。また、プログラミング言語によっては、そもそもWorkersで実行することができないこともあります。そのようなケースのためにWorkers AIには、Publicに利用できるREST APIが用意されています。
この記事では、Cloudflare Workers AIをREST APIとして利用する方法を紹介します。
Cloudflare Workers AIのAPIトークンを取得する
Workers AIのAPIを利用するには、APIトークンが必要です。ダッシュボードの[AI] から [Workers AI]に移動しましょう。
[REST APIを使用する]をクリックすると、APIトークンの作り方が案内されます。
[APIトークンを取得する]をクリックして、CloudflareのユーザーAPIトークンを作成するページに移動しましょう。ここでWorkers AI用のトークンを作成するため、[トークンを作成する]をクリックします。
CloudflareではAPIトークンの権限等をまとめたテンプレートが用意されています。この中から[Workers AI]を選択しましょう。
すでにWorkers AIを利用できる権限設定が行われていますので、[概要に進む]に移動しましょう。
[トークンを作成する]をクリックすれば、作成完了です。
APIキーとテストコマンドが画面に表示されます。コマンドを試して、APIレスポンスがsuccess
なら成功です。
% curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \
-H "Authorization: Bearer xxxxxxxx" \
-H "Content-Type:application/json" | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 184 0 184 0 0 713 0 --:--:-- --:--:-- --:--:-- 730
{
"result": {
"id": "46810892389cbef3daec81c92cab0e8e",
"status": "active"
},
"success": true,
"errors": [],
"messages": [
{
"code": 10000,
"message": "This API Token is valid and active",
"type": null
}
]
}
cURLでWorkers AI REST APIを実行する
[Workers AI REST APIの使用]ページにもテストコマンドがあります。APIトークンとCloudflareアカウントIDを自身のものに変更すれば、早速Workers AI REST APIを利用できます。
curl -X POST \
https://api.cloudflare.com/client/v4/accounts/{あなたのアカウントID?}/ai/run/@cf/meta/llama-2-7b-chat-int8 \
-H "Authorization: Bearer {API_TOKEN}" \
-d '{"messages":[{"role":"system","content":"You are a friendly assistant that helps write stories"},{"role":"user","content":"Write a short story about a llama that goes on a journey to find an orange cloud "}]}'
リクエストBodyに質問を入れることで、LLMにさまざまな質問が送れます。日本語にも対応している様子でした。
curl -X POST \
https://api.cloudflare.com/client/v4/accounts/{あなたのアカウントID?}/ai/run/@cf/meta/llama-2-7b-chat-int8 \
-H "Authorization: Bearer {API_TOKEN}" \
-d '{"messages":[{"role":"system","content":"You are an experts of Cloudflare in Japan."},{"role":"user","content":"Cloudflareについて、日本語100文字で説明してください"}]}' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 652 100 466 100 186 79 31 0:00:06 0:00:05 0:00:01 128
{
"result": {
"response": "Cloudflareは、世界中のウェブサイトに対して、安全性、高速化、および可用性を提供するサービスプロバイダーです。彼らのサービスは、DDoS攻撃からの保護、SSL認証、およびフェードリングを含む多くの機能を提供しています。日本では、Cloudflareのサービスを使用する企業や個人が増えています。"
},
"success": true,
"errors": [],
"messages": []
}
おわりに
ほとんどのケースでは、Cloudflare WorkersからSDK経由でWorkers AIを利用するのではないかとは思います。ただ、このようにAPIトークンを作成し、REST APIで呼び出す方法を理解することで、例えばWordPressやLaravel / Ruby on Railsなどをメインとするプロジェクトでも、Workers AIの恩恵を受けることができます。
リクエストBodyの組み立てなどは、Python / TypeScript / JavaScriptで利用できるLangChainのような、メタフレームワークを利用できれば、REST APIでの利用もやりやすくなるかもしれません。