AI / MLCloudflareLLMSaaS / FaaS

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での利用もやりやすくなるかもしれません。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts