コンテンツにスキップ

第7章: Workers AI を使ったサーバーレスAI機能

7.1 Workers AI とは?

Workers AI は、Cloudflareの世界中のGPU搭載エッジサーバー上で、オープンソースの最先端AIモデル(Llama 3、Mistral、Whisper、Embeddingモデルなど)をサーバーレスで直接実行できるサービスです。

  • APIキー不要: OpenAIなどの外部APIキーを管理する必要がありません。
  • 低レイテンシ: ユーザーの最寄りエッジで推論が実行されます。
  • 充実した無料枠: 毎日10,000ニューロン(一定回数の推論)が無料。

7.2 wrangler.jsonc へのAIバインディング設定

{
"name": "my-ai-app",
"main": "src/index.ts",
"ai": {
"binding": "AI"
}
}

バインディングを追加したら、型定義を更新します。

Terminal window
npx wrangler types

7.3 Hono から AI モデルを呼び出すコード例

import { Hono } from 'hono';
const app = new Hono<{ Bindings: Env }>();
app.post('/api/chat', async (c) => {
const { prompt } = await c.req.json();
const response = await c.env.AI.run('@cf/meta/llama-3-8b-instruct', {
prompt: prompt,
});
return c.json(response);
});
export default app;

7.4 Vectorize(ベクトル検索)との組み合わせ

RAG(検索拡張生成)を構築したい場合は、ベクトルデータベース Vectorize をCLIから作成します。

Terminal window
# 768次元のインデックスを作成(Embedding用)
npx wrangler vectorize create docs-index --dimensions=768 --metric=cosine

次章では、ポート開放不要で手元のMacやPCを安全に外部公開できる強力なツール cloudflared の実践に入ります。


💡 用語解説コラム

[!NOTE] Embedding (テキスト埋め込み / ベクトル化)
文章の意味を数百〜千次元以上の数値の配列(ベクトル)に変換する技術。類似した意味を持つ文章同士はベクトル間の距離が近くなるため、AI検索やRAGの基盤として使われます。

[!NOTE] ニューロン (Neurons)
Cloudflare Workers AI における計算量(推論リソース)の課金単位。モデルの大きさや生成トークン数に応じて消費されます。