Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

検索拡張生成(RAG)

最終更新 Markdown で表示Agent セットアップ

検索拡張生成(Retrieval-Augmented Generation、RAG)は、自然言語処理(NLP)で検索の仕組みと生成モデルを組み合わせ、テキスト生成を強化する手法です。

既存の外部知識を取り込むことで、RAG は文脈に沿い、情報量のあるテキストを生成しやすくします。この組み合わせにより、従来の生成モデルの限界を補い、生成テキストを事実と文脈に根拠づけられます。RAG は情報過多の問題にも対応します。関連性の高い情報だけを効率よく取り出し、生成テキストへ組み込むことで、一貫性と正確さを高めます。RAG は NLP の大きな前進であり、文脈をより正しく捉えたテキスト生成を実現します。

この手法の例として、ナレッジベースを使ってサポート依頼に答えるカスタマーサービス用チャットボットがあります。

検索拡張生成(RAG)では、ナレッジの投入(knowledge seeding)は既存ソースの外部情報を生成プロセスへ取り込むことを指します。クエリは、これらのソースから関連知識を取り出し、一貫して文脈に沿った正確なテキスト生成に使う仕組みです。どちらも以下に示します。

ナレッジの投入

図 1: ナレッジの投入
図 1: ナレッジの投入
  1. クライアントのアップロード: API エンドポイントへドキュメントを POST します。
  2. 入力の処理: Workers で受信リクエストを処理し、Queues にメッセージを送って処理バックログへ追加します。
  3. バッチ処理: Queuesコンシューマー を起動し、入力ドキュメントをバッチで処理して下流の過負荷を防ぎます。
  4. 埋め込みの生成: Workers AIテキスト埋め込みモデル を呼び出して、ドキュメントの埋め込みベクトルを生成します。
  5. ベクトルの保存: 埋め込みベクトルを Vectorize に挿入します。
  6. ドキュメントの保存: ドキュメントを D1 に挿入して永続化します。
  7. Ack/Retry の仕組み: コンシューマーでドキュメントごとに Queues Runtime API を使い、成功 / エラーを通知します。必要に応じて Queues が再試行をスケジュールします。

ナレッジのクエリ

図 2: ナレッジのクエリ
図 2: ナレッジのクエリ
  1. クライアントのクエリ: API エンドポイントへクエリを GET します。
  2. 埋め込みの生成: Workers AIテキスト埋め込みモデル を呼び出して、受信クエリの埋め込みベクトルを生成します。
  3. ベクトル検索: クエリのベクトル表現で Vectorize を検索し、関連ベクトルを取得します。
  4. ドキュメントの参照: Vectorize の検索結果をもとに、D1 から関連ドキュメントを取得します。
  5. テキスト生成: 元のクエリと取得したドキュメントをコンテキストとして Workers AIテキスト生成モデル に渡し、応答を生成します。

関連リソース

役に立ちましたか?