Vectorize
概要
Vectorize は Cloudflare のベクトルデータベースです。埋め込み(テキスト・画像・その他のデータの意味を捉えた数値のリスト)を保存し、指定したベクトルに最も類似したものを検索できます。これはセマンティック検索や検索拡張生成(RAG)における「検索」の役割を担う部分であり、埋め込みを生成できる Workers AI と並んで Worker に直接バインドできます。
強み
- 埋め込みに対する類似検索に特化して設計されており、高速な最近傍検索が可能。
- Workers に直接バインドできる。別途ベクトルサービスを動かす必要がない。
- エンドツーエンドの RAG パイプラインを Cloudflare 上で構築するために Workers AI ときれいに連携する。
- メタデータによるフィルタリングをサポートし、結果を絞り込める。
- サーバーレスかつグローバルに利用でき、アプリの規模に合わせてスケールする。
トレードオフ
- 保存するのはベクトルとメタデータであり、元のドキュメントではありません。それらは D1 や R2 に保管してください。
- 挿入前に埋め込みを自分で生成する必要があります(例: Workers AI を利用)。
- インデックスの次元数と距離計量は作成時に固定されます。慎重に選んでください。
- 汎用データベースではなく、特化型のストアです。
使いどころ
セマンティック検索、レコメンデーション、重複排除、そして RAG の検索ステップに Vectorize を使いましょう。「これに最も類似したものを探す」という要件が、完全一致のキーワード検索よりも適しているあらゆる場面で有効です。
バイブコーディングとの相性
Vectorize を使えば、エージェントは Cloudflare の外に出ることなく完全な RAG 機能を構築できます。Workers AI が埋め込みを作り、Vectorize がそれを保存・検索し、D1 や R2 が元データを保持します。インデックスの次元数は埋め込みモデルの出力と一致させる必要があるため、埋め込みモデルは事前にエージェントへ伝えておきましょう。次の例ではインデックスを作成してバインドしています。
# wrangler.toml
[[vectorize]]
binding = "VECTORIZE"
index_name = "docs-index"
# 次元数は埋め込みモデルの出力と一致させる必要がある
npx wrangler vectorize create docs-index --dimensions=768 --metric=cosine