始める前に、次を用意します。
- Workers と Workers AI が有効な Cloudflare アカウント ↗。
CLOUDFLARE_ACCOUNT_IDとCLOUDFLARE_AUTH_TOKEN。- API トークンは、Cloudflare ダッシュボードの API Tokens で生成できます。
- Cloudflare Workers を扱うための Node.js(任意ですが推奨)。
Llama 3.2 11B Vision Instruct モデルを初めて使うときは、Meta の License と Acceptable Use Policy に同意する必要があります。
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/meta/llama-3.2-11b-vision-instruct \
-X POST \
-H "Authorization: Bearer $CLOUDFLARE_AUTH_TOKEN" \
-d '{ "prompt": "agree" }'$CLOUDFLARE_ACCOUNT_ID と $CLOUDFLARE_AUTH_TOKEN を、実際のアカウント ID とトークンに置き換えます。
-
Worker プロジェクトを作成する
create-cloudflareCLI(C3)で新しい Worker プロジェクトを作成します。このツールは、Cloudflare への新規アプリケーションのセットアップとデプロイを簡単にします。ターミナルで次のコマンドを実行します。
npm create cloudflare@latest -- llama-vision-tutorialyarn create cloudflare llama-vision-tutorialpnpm create cloudflare@latest llama-vision-tutorialセットアップでは、次のオプションを選びます。
- What would you like to start with? では、
Hello World exampleを選びます。 - Which template would you like to use? では、
Worker onlyを選びます。 - Which language do you want to use? では、
JavaScriptを選びます。 - Do you want to use git for version control? では、
Yesを選びます。 - Do you want to deploy your application? では、
Noを選びます(デプロイ前にいくつか変更します)。
セットアップが終わると、llama-vision-tutorial というディレクトリが作成されます。
-
アプリケーションのディレクトリへ移動する プロジェクトディレクトリへ移動します。
cd llama-vision-tutorial -
プロジェクト構成
llama-vision-tutorialディレクトリには次が含まれます。src/index.tsの "Hello World" Worker。- デプロイ設定を管理する
wrangler.json設定ファイル。
src/index.ts(TypeScript を使わない場合は index.js)を編集し、次のコードに置き換えます。
export interface Env {
AI: Ai;
}
export default {
async fetch(request, env): Promise<Response> {
const messages = [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Describe the image I'm providing." },
];
// Replace this with your image data encoded as base64 or a URL
const imageBase64 = "data:image/png;base64,IMAGE_DATA_HERE";
const response = await env.AI.run("@cf/meta/llama-3.2-11b-vision-instruct", {
messages,
image: imageBase64,
});
return Response.json(response);
},
} satisfies ExportedHandler<Env>;- Wrangler 設定ファイル を開き、次の設定を追加します。
{
"env": {},
"ai": {
"binding": "AI"
}
}env = { }
[ai]
binding = "AI"- ファイルを保存します。
次のコマンドで Worker をデプロイします。
wrangler deploy- デプロイ後、Worker 用の一意の URL が発行されます(例:
https://llama-vision-tutorial.<your-subdomain>.workers.dev)。 curlや Postman などのツールで、Worker にリクエストを送ります。
curl -X POST https://llama-vision-tutorial.<your-subdomain>.workers.dev \
-d '{ "image": "BASE64_ENCODED_IMAGE" }'BASE64_ENCODED_IMAGE を、実際の base64 エンコード済み画像文字列に置き換えます。
レスポンスには、提供した画像に基づくモデルの出力(説明やプロンプトへの回答など)が含まれます。
レスポンスの例:
{
"result": "This is a golden retriever sitting in a grassy park."
}