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

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark