Cloudflare AI Search で RAG を構築する
AI Search instance を作成し、PDF を Built-in Storage にアップロードして index の進行を確認し、Playground の Search と Chat で結果を検証します。
Lab Overview and Learning Objectives
開始前の注意
Cloudflare アカウントと index 対象の資料(本ラボでは約 1 MB の PDF)を準備します。AI Search は Beta のため、画面や項目が変わる場合があります。社外秘や個人データを含む資料は使用しないでください。
1. AI Search を開く
AI Search は Cloudflare のマネージド RAG サービスで、chunking、embedding 生成、vector 保存、検索をまとめて処理します。
- Cloudflare Dashboard にログインします。
- 左メニューの AI を開き、AI Search を選択します。
- Create Instance を押します。

2. 名前とデータソースを指定
instance 名は小文字、数字、アンダースコア、単一ハイフンのみで最大 64 文字です。Built-in Storage はすべての instance で利用できるため最初の選択肢に適しています。
- Instance name を入力します(例: cmp-rag-lab)。
- Namespace は default のままにします。
- Data source で Built-in Storage を選択します。
- Next を押します。

3. Index と Retrieval の設定を確認
回答品質を左右する項目です。後で調整する前に、既定値を把握しておきます。
- INDEXING を確認します: Smart default (auto)、1024 tokens、10% overlap。
- RETRIEVAL を確認します: 10 results、Score 0.4、Rewriting と Reranking はオフ。
- CACHE を確認します: Similarity cache が Strong でオン。
- 既定値のまま Next を押します。

4. instance を作成
最後に名前と namespace を確認してからリソースが払い出されます。
- Instance name と Namespace を確認します。
- Create を押します。

5. instance の概要を確認
Overview では index の状況と、同時に払い出されたリソースを確認できます。
- Total index results を確認します: Queued、Processing、Indexed、Errors がすべて 0。
- Built-in Vector database を確認します: Dimensions は 1,024。
- Last job で直近の同期と所要時間を確認します。
- Overview、Metrics、Playground、Jobs、Items、Public endpoint、Settings の各タブを確認します。

6. 資料をアップロード
Built-in Storage は 1 回につき最大 100 ファイル、1 ファイル 4 MB まで対応し、フォルダー単位のアップロードも可能です。
- Get Started バナーの Upload files を押します。
- choose files から index する PDF を選択します。
- 一覧に表示されたファイル名とサイズを確認します。
- Upload files を押します。

7. アップロード完了を確認
進捗バーに成功件数と失敗件数が表示されます。
- 進捗バーが完了するまで待ちます。
- 1 of 1 uploaded、1 succeeded、0 failed と表示されることを確認します。
- Close を押してダイアログを閉じます。

8. Queued の状態を確認
アップロード後、資料は index ジョブの処理を待ちます。ここは障害と誤解されやすい段階です。
- Items タブを開きます。
- アップロードしたファイルを一覧から探します。
- Status が Queued で、Chunks と File Size が空であることを確認します。
- 行を選択して詳細を開きます。

9. index 完了を確認
ジョブが完了すると Status が Indexed になり、chunk 数が表示されます。chunk 数は資料の長さと手順 3 の chunk サイズで決まります。
- Items タブの更新ボタンを押します。
- Status が Indexed に変わったことを確認します。
- Chunks 列で分割数を確認します。
- 詳細を開き、filename と timestamp などの Metadata を確認します。

10. Playground Search で検索を検証
Search タブは一致した chunk をスコア付きで返すため、アプリに組み込む前に検索品質を検証できます。
- Playground タブを開き、Search を選択します。
- 資料の内容に関連する検索語を入力します。
- 検索を実行します。
- 各結果の Score を確認し、Show full content で chunk 本文を読みます。

11. Playground Chat で質問する
Chat タブは検索と生成モデルを組み合わせ、自然言語の回答を作ります。これが通常の検索と RAG の違いです。
- Chat タブに切り替えます。
- 手順 10 と同じ質問を入力します。
- 資料から生成された回答を読みます。
- Sources を開き、回答と元の chunk を照合します。
- 右パネルの Generation model で使用中のモデルを確認します。

12. クリーンアップ
検索を停止しても vector database と storage はリソースを消費し続けます。
- Items タブでアップロードした資料を削除します。
- instance の Settings から cmp-rag-lab を削除します。
- AI Search の一覧を再読み込みし、instance が消えたことを確認します。