RAGを活用したナレッジベース構築、「やってみたいけど面倒そう…」と思っていませんか?
実は今、ナレッジベースを「楽々」構築できるサービスが充実してきています。今回は、お手軽にRAG環境を構築できる3つのサービスを比較してみました。
RAGとは?

RAG(Retrieval-Augmented Generation)は、LLMの回答精度を高める技術です。
仕組みはシンプルで、「LLMに外部の情報を検索して渡してから、回答を生成させる」というもの。
- 検索(Retrieval): ユーザーの質問に関連する情報を、データベースから探してくる
- 情報を追加(Augmented): 見つけた情報をLLMへの入力に付け加える
- 生成(Generation): LLMが、その情報を参考にして回答を作る


RAGが活躍するのは、機密情報、最新情報、専門性が高い/組織固有の情報、大量・長文のドキュメント、頻繁に更新されるデータ、構造化データ、マルチメディア情報などを扱う場面です。
ナレッジベース構築の手順
通常、RAG用のナレッジベースを構築するには、以下の工程が必要です。

- 前処理(Preprocessing): 不要な情報の削除、フォーマット統一、テキスト抽出
- チャンク化(Chunking): 文書を適切なサイズの断片に分割(例:500〜1000文字ごと)
- ベクトル化(Embedding): 各チャンクを埋め込みモデルで数値ベクトルに変換
- インデックス化(Indexing): ベクトルデータベースに格納
- メタデータ付与(任意): 出典、更新日、カテゴリなどの情報を紐づけ

…ナレッジ構築、手順が多くて、正直、めんどくさいですよね。
そこで今回は、これらの工程を楽にしてくれる3つのサービスを紹介します。
楽ナレ 3種盛り

1. Dify

楽ナレ度: ★★★★★
AIアプリ開発プラットフォームの Dify は、RAG、ワークフローを簡単に構築できます。
- ファイルを選択し、いくつかの選択をするだけでナレッジベースを作成できる
- 作成したナレッジは、「知識探索」nodeで簡単に活用できる
- 「知識探索」を含んだChatアプリをデプロイ可能
「親子チャンキング」がいい感じ

Difyの「親子チャンキング」を使用することで、段落チャンキングを実現できます。
- 検索は子チャンクを対象にし
- LLMには、親子チャンキング全体を渡す
これにより、検索精度を保ちながら、十分なコンテキストをLLMに渡すことができます。
2. AWS S3 Vector

楽ナレ度: ★★★
AWSのオブジェクトストレージS3に、ベクトル検索機能が追加されました。
- 2025-07 にプレビュー版スタート
- 2025-11 に課金スタート
- 2025-12-02 に GA(一般提供開始)
「セマンティックチャンキング」がある

詳細は不明ですが、セマンティックチャンキングオプションが用意されています。
CLIからもGUIからもナレッジベースを構築可能で、AWS CLIなど様々なルートで利用できます。AWSの他のサービスとの統合が良いのが強みです。
3. Google File Search Tool

楽ナレ度: ★★
Gemini API統合のフルマネージド型RAGです。ファイル処理、ベクトル検索、引用を自動化し、開発を効率化してくれます。
- Google AI Studioで動作するデモアプリが用意されている(これは楽ナレと呼べる)
- 実運用用のカスタムFile Store構築はCLI必須だが、シンプルで開発は早い
抽象度が高くてカスタマイズはできないけれど…

チャンキングに関しては、指定可能な項目は以下の2つに限定されています。
- maxTokensPerChunk
- maxOverlapTokens
検索に関しては、セマンティック検索がネイティブに実装されています。
抽象化度合いが高く、Google次第の面が強いですが、それでもそれなりの精度を簡単に出してくれます。
実装のおてがるさ比較表
| 項目 | Dify | AWS S3 Vector | Google File Search Tool |
|---|---|---|---|
| 楽ナレ度 | ★★★★★ | ★★★ | ★★ |
| 構築方法 | GUIで完結 | AWSコンソール+S3 | CLIでカスタムFile Store構築 |
| チャンキング | 親子チャンキングあり | セマンティックチャンキング(詳細不明) | maxTokens / maxOverlap のみ |
| ベクトルDB | 内部(自動) | S3 Vector | Google内部File Store |
| 特徴 | 最も簡単 | AWSとの統合良い | 抽象化高い・検索精度良い |
セマンティックチャンキングに着目
LLMが膨大なプロンプトを受け付けるようになり、「読みきれないから切り分ける」状態ではなくなってきています。全体を把握させるだけなら、丸ごと渡せば済むケースが多いのです。
精度と速度の向上のためにRAGを利用するステージに入りました。
固定長でのチャンキングでは、むしろ精度が落ちることもあり、セ マンティックなチャンキングが必須になりつつあります。
おまけ:精度比較

※慣れない制度比較に挑戦した記録です。比較対象自体の選定、コーパスの選定に問題があります。あくまで参考程度してください。
青空文庫の作品を使って、3つのサービスの精度を比較してみました。
評価用コーパス
- 短編(数千〜1万字:軽量テスト): 芥川龍之介「羅生門」「鼻」
- 中編(1〜5万字:運用近似テスト): 夏目漱石「坊っちゃん」、森鷗外「高瀬舟」、太宰治「走れメロス」
- 長編(5万字〜:負荷テスト): 夏目漱石「こころ」
評価指標
- Faithfulness: 回答が文書の事実に基づくか
- Answer Relevance: 回答が質問に適切か
- Context Precision: 返した文脈の適切さ
- Context Recall: 必要文脈の取り逃し度合 い
質問
各作品に15質問、合計90質問で評価しました。
例として、羅生門のデータセットは以下のものです。
{"work_id": "rashomon", "category": "fact", "difficulty": "easy", "question": "下人は羅生門の下で何を待っていたか?また、その時の空模様はどのようなものだったか?", "ground_truth": "下人は雨やみを待っていた。時は暮れ方で、雨が降っており、夕闇が次第に空を低くして、門の屋根が重たく薄暗い雲を支えているような空模様であった。"}
{"work_id": "rashomon", "category": "fact", "difficulty": "medium", "question": "当時の京都の荒廃を示す例として、仏像や仏具などはどのように扱われていたと本文に記されているか?", "ground_truth": "旧記によると、仏像や仏具を打ち砕いて、丹がついたり金銀の箔がついたりした木を、路ばたに積み重ねて薪の料(しろ)に売っていたと記されている。"}
{"work_id": "rashomon", "category": "fact", "difficulty": "hard", "question": "楼の上で下人が見た老婆の容貌や特徴的な身体の部位はどのようなものであったか、本文の描写を用いて答えよ。", "ground_truth": "老婆は檜皮色の着物を着ており、背が低く痩せていて、白髪頭の猿のような姿であった。また、眼の縁が赤く、肉食鳥のような鋭い眼をしていたことが描写されている。"}
{"work_id": "rashomon", "category": "causal", "difficulty": "easy", "question": "下人が長年使われていた主人から暇を出されたのはなぜか?", "ground_truth": "当時京都の町が一通りならず衰微しており、その小さな余波として、下人は長年使われていた主人から暇を出されたのである。"}
{"work_id": "rashomon", "category": "causal", "difficulty": "medium", "question": "羅生門の近所へ人々が足踏みをしなくなった理由として、本文にはどのような経緯が書かれているか?", "ground_truth": "羅生門が荒れ果てたのをよいことにして狐狸や盗人が棲み、ついには引き取り手のない死人を門へ捨てて行く習慣ができたため、日の目が見えなくなると誰でも気味悪がって近寄らなくなった。"}
{"work_id": "rashomon", "category": "causal", "difficulty": "hard", "question": "老婆の話を聞いた後、下人が老婆の着物を剥ぎ取るという行動に出たのは、どのような考えに至ったからか?", "ground_truth": "老婆の話から「生きるためには悪事も仕方がない」という理屈を聞いた下人は、自分が盗人になることも肯定し、「己もそうしなければ飢死をする体なのだ」という論理で老婆から着物を奪うことを正当化したから。"}
{"work_id": "rashomon", "category": "relation", "difficulty": "easy", "question": "本文中で、下人の身体的な特徴として繰り返し言及され、下人が気にしているものは何か?", "ground_truth": "下人の右の頬には大きな面皰(にきび)が出来ており、彼はそれを気にして触ったり、手で抑えたりする描写が本文中で何度か繰り返されている。"}
{"work_id": "rashomon", "category": "relation", "difficulty": "medium", "question": "老婆が髪を抜いていた死人の女性と、老婆自身の行動との間には、老婆の論理によるとどのような共通の関係があるか?", "ground_truth": "どちらも「それをしなければ飢死をする」という状況下で、仕方なく行っている悪事であるという点で共通しており、老婆はその論理によって互いの行為を許されるものと考えている。"}
{"work_id": "rashomon", "category": "relation", "difficulty": "hard", "question": "下人が老婆の生死を完全に自分の意志で支配していると意識した時、彼の老婆に対する「憎悪」の感情はどのように変化したか?", "ground_truth": "老婆の生死を支配しているという意識は、それまで険しく燃えていた憎悪の心をいつの間にか冷ましてしまい、ある仕事をしてそれが円満に成就した時の安らかな得意と満足に変化させた。"}
{"work_id": "rashomon", "category": "sentiment", "difficulty": "easy", "question": "下人が楼の上で老婆が死人の髪を抜いているのを初めて見た時、どのような感情を抱いたか?", "ground_truth": "下人は六分の恐怖と四分の好奇心とに動かされ、暫時は呼吸をするのさえ忘れていた。「頭身の毛も太る」ように感じたと記述されている。"}
{"work_id": "rashomon", "category": "sentiment", "difficulty": "medium", "question": "老婆が「髪を抜いて鬘(かつら)にしようと思った」と答えた時、下人はどのような感情を抱き、それが老婆に対する態度にどう影響したか?", "ground_truth": "下人は答えが存外平凡なことに失望し、それと同時に前の憎悪が冷ややかな侮蔑と一緒に心の中へ入ってきた。その気色が先方にも通じたか、老婆は口ごもるようになった。"}
{"work_id": "rashomon", "category": "sentiment", "difficulty": "hard", "question": "老婆の話を聞くうちに下人の心に生まれた「ある勇気」とは、門の下にいた時の勇気や、老婆を捕らえた時の勇気と比べてどのような性質のものか?", "ground_truth": "門の下にいた時には欠けていた勇気であり、老婆を捕らえた時の正義感からくる勇気とは正反対の方向に動こうとする勇気である。飢え死にを意識の外に追い出し、悪を行うことを肯定する勇気であった。"}
{"work_id": "rashomon", "category": "structure", "difficulty": "easy", "question": "本文において、下人が門の下から楼の上へ移動する際、梯子を上る行動はどのような段階を経て描かれているか?", "ground_truth": "まず一番下の段へ足をかけ、何分か後に中段で身を縮めて上の様子を窺い、最後に守宮のように足音を盗んで一番上の段まで這うように上りつめ、楼の内を覗くという順序で描かれている。"}
{"work_id": "rashomon", "category": "structure", "difficulty": "medium", "question": "物語の冒頭と結末において、下人の「行き先」に関する記述はどのように対比されているか?", "ground_truth": "冒頭では「雨がやんでも格別どうしようという当てはない」「途方に暮れていた」と記述されていたが、結末では老婆の着物を奪って「夜の底へかけ下りた」後、「下人の行方は、誰も知らない」と締めくくられている。"}
{"work_id": "rashomon", "category": "structure", "difficulty": "hard", "question": "下人の心理描写において、「どうにもならない事をどうにかする」ための思考プロセスは、本文中でどのように推移したと記述されているか?", "ground_truth": "最初は手段を選ばず盗人になるしかないという結論に逢着しながらも、それを肯定する勇気が出ずにいたが、老婆の話を聞いた後には、飢死を意識の外へ追い出し、盗人になることを躊躇なく選ぶ心理へと推移した。"}
結果の傾向
- Dify: よい作品もあるが、坊っちゃん(botchan)が壊滅的。chunkingまたはembeddingの設定問題が濃厚
- AWS: Precisionが常に最高(ほぼ1.0)。ピンポイントで必要な文脈だけを返す。ただしrecallが低い作品がある(情報不足)
- Google: Faithfulnessがすべての作品でトップまたは同等。Recallはほぼ常に0.8〜1.0。最も安定的に原作に沿った回答を生成できる
結論
今回の精度比較は、コーパスや比較対象そのものに問題があり、きちんとした比較になっていません。
Google File Search Toolは、RAGというよりも「マネージド型のナレッジベース活用サービス」と言えるかもしれません。
Difyのチャンキング設定も、ちゃんとチューニングすれば精度が向上すると思います。
ですが、「とりあえずナレッジベース組まなきゃ!」という場合には、
手軽さを重視するならDify、
AWSエコシステムとの統合が必要ならAWS S3 Vector、
安定した精度を求めるならGoogle File Search Toolという選び方が良さそうです。
スライド
今回の内容は Slideshare でも公開しています。
https://www.slideshare.net/slideshow/dify-aws-s3-vector-google-file-search-tool/284605925

