はじめに
前回までの続きになります。今回はRAGを使って図鑑の検索を進めていきます!そもそもRAGの定義があいまいな理解な部分もあるので、今回もChatGPTに教えてもらいながら進めていきます!
そもそもRAG(Retrieval-Augmented Generation)とは?
AI が外部データを検索して、その情報だけを使って答える仕組み。
ChatGPT や Gemini の「記憶」で答えるのではなく、
あなたが用意した JSON・PDF・テキスト・DB を参照して回答を作る AI。
💡 RAGのメリット
- 最新データや社内データにも対応できる
- 間違った回答(幻覚)が減る
- 自分専用の“AI図鑑”や“AIマニュアル”が作れる
- LLM を「調べて答えるAI」にできる
→ちょっとまだイメージがあやふやなので、図とか書きながら理解を深めていきます!!
RAGを使ったポケモン図鑑の構築
RAGは大きく3つのフェーズがあります。知識ベースの準備,ユーザー質問の理解と検索,回答の生成。フローにまとめると以下のような図になります!
🟩 Step 1:知識ベース(ナレッジベース)を準備する
まず最初に行うのは、AI が参照できる専用の“図鑑DB”を作ることです。
ここは料理でいう「仕込み」にあたる工程。
👉 このフェーズでやること
- 複数の情報源を集める
(公式ドキュメント、PDF、テキスト、Web、社内資料 etc.) - 情報を整理・クリーニングする
(不要部分の除去、タグ除去、改行整理など) - データ化(構造化)する
(JSON化、Markdown化、テキスト化、チャンク分割など) - ナレッジベースに格納する
(RDB / JSONデータベース / ベクターストア)
👉 何をしているのか?
「AIがあとで参照できる知識の土台をつくる」フェーズ。
LLMに“覚えさせる”のではなく、
**「参照できる資料を外に用意しておく」**という考え方が重要です。
🟦 Step 2:ユーザー質問を理解し、ナレッジベースを検索する
次に、ユーザーから質問が来たとき、
その質問の意味を解釈し、ナレッジベースから必要な情報を取り出します。
👉 このフェーズでやること
- 質問文を読み取り、余計なノイズを取り除く
(スペース除去、表記揺れの統一、正規化など) - 質問の意味を抽出する
(キーワード抽出・Embedding による意味ベクトル化) - ナレッジベースに問い合わせる
- JSON / RDB:条件検索
- ベクターストア:意味検索(類似度検索)
- 必要な情報だけを抽出する
(該当ポケモンの説明文、属性情報など)
👉 何をしているのか?
「ユーザーの曖昧な質問を、機械が検索できる形に変換する」フェーズ。
検索の結果取り出されるのは、
回答の材料(コンテキスト) です。
この材料を使って、次のステップで回答が作られます。
🟧 Step 3:AI(LLM)が回答を生成する
最後に、Step2で取り出した“材料”をもとに、
AI(Gemini/GPT)が文章として回答を作成します。
👉 このフェーズでやること
- 質問(ユーザー原文)
- コンテキスト(検索で集めた材料)
この2つを LLM に渡す。
👉 LLM が生成する内容
- 図鑑風の説明
- 要約
- 比較
- 解説
- 注意点の提示
など、多様なアウトプットが可能。
👉 何をしているのか?
「検索で集めた“事実”だけを使って、自然な文章を作る」フェーズ。
📝 3Stepまとめ(超重要)
| Step | 名前 | 役割 |
|---|---|---|
| Step 1 | 知識ベース準備 | AI が参照するデータを作る |
| Step 2 | 質問理解と検索 | 質問の意味を理解し、必要な情報を集める |
| Step 3 | 回答生成 | 集めた材料をもとに、AIが文章として回答 |
最後に
今回は、RAGの概要を学びました!次回からは実際にベクトルDBを使って実装をしていこうと思います!!