社内データ検索AIの作り方|RAGシステム構築ガイド
公開日: 2025年1月15日 | 読了時間: 約12分
「社内の膨大なマニュアルや規程から、必要な情報を探すのに時間がかかる」 「過去の議事録やノウハウが埋もれていて、活用できていない」 そんな課題を解決するのが、RAG(Retrieval-Augmented Generation)という技術です。
この記事では、社内データを自然言語で検索できるAIシステムの作り方を、 技術的な内容も含めて分かりやすく解説します。
RAGとは?従来の検索との違い
従来の検索(キーワード検索)の限界
従来の検索(Google検索や社内の文書検索)は、入力したキーワードと文書内の単語が 「完全一致」または「部分一致」する文書を探します。
❌ 従来の検索の問題点
- 「リモートワーク」で検索しても、「在宅勤務」と書かれた文書は見つからない
- 「経費精算のやり方」で検索しても、正確なキーワードが分からないと見つからない
- 質問に対する「答え」ではなく、キーワードが含まれる「文書」が表示されるだけ
RAG(検索拡張生成)の仕組み
RAGは、「検索(Retrieval)」と「生成AI(Generation)」を組み合わせた技術です。
- 意味を理解する検索: 質問の「意味」を理解して、関連する文書を探す
- AIが回答を生成: 見つけた文書をもとに、ChatGPTが質問に対する回答を生成
- 情報源も表示: どの文書から回答を作ったのか、出典も明示
✅ RAGの利点
質問: 「リモートワークは週何日まで可能?」
AI回答:
リモートワークは週3日まで可能です。申請は勤怠システムから実施日の3営業日前までに行い、 直属の上長の承認が必要です。詳細は「就業規則第7条-2」をご確認ください。
📄 出典: 就業規則2024年版.pdf(15ページ)
RAGシステムの構成要素
RAGシステムは、主に以下の4つの要素で構成されます。
1. ドキュメントデータベース(知識の保管庫)
社内の文書(PDF、Word、Excel、議事録など)を保管する場所です。
- 社内規程・マニュアル
- 過去の議事録・報告書
- FAQ・ナレッジベース
- 商品マニュアル・技術資料
2. Embedding(文書の意味をベクトル化)
文書を「数値の配列(ベクトル)」に変換する技術です。 これにより、文書の「意味」を数学的に表現でき、似た意味の文書を探せるようになります。
「リモートワーク」 → [0.23, -0.45, 0.89, ...] (1536次元)
「在宅勤務」 → [0.21, -0.43, 0.87, ...] (似た数値になる)
使用技術: OpenAI Embeddings API, Sentence Transformers など
3. ベクトルデータベース(高速検索エンジン)
Embeddingで変換した「ベクトル」を保存し、高速に類似検索できるデータベースです。
- Pinecone: クラウド型、セットアップが簡単
- Chroma: オープンソース、無料で使える
- Qdrant: 高性能、オンプレミス可能
- Supabase Vector: PostgreSQL拡張、既存DBと統合可能
4. LLM(回答を生成するAI)
検索した文書をもとに、自然な文章で回答を生成するAIです。
- ChatGPT (GPT-4): 最も高性能、日本語も得意
- Claude: 長文に強い、より正確
- Gemini: Google製、無料枠が大きい
RAGシステムの動作フロー
実際にRAGシステムがどう動くのか、ステップごとに見ていきましょう。
🔄 RAGの処理フロー
【準備フェーズ】データの登録
- 社内文書(PDF, Word等)を収集
- 文書を小さなチャンク(塊)に分割(500文字程度)
- 各チャンクをEmbeddingでベクトル化
- ベクトルデータベースに保存
【検索フェーズ】質問への回答
- ユーザーが質問を入力「リモートワークのルールは?」
- 質問をEmbeddingでベクトル化
- ベクトルデータベースで類似度の高いチャンクを検索(Top 3〜5件)
- 見つかったチャンクをChatGPTに渡す
- ChatGPTが文書をもとに回答を生成
- 回答 + 出典を表示
構築手順: 実際に作ってみよう
ステップ1: 必要なツールを準備
📦 必要なもの
- OpenAI APIキー: ChatGPTとEmbeddingsを使用(月3,000円〜)
- ベクトルDB: Pinecone(無料枠あり)またはChroma(完全無料)
- 開発環境: Python 3.9以上
- ライブラリ: LangChain(RAG構築フレームワーク)
ステップ2: 文書をベクトル化して保存
社内文書をRAGシステムに読み込ませる処理です。
# 1. 文書を読み込み
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("社内規程.pdf")
documents = loader.load()
# 2. 文書を小さなチャンクに分割
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500, # 500文字ごとに分割
chunk_overlap=50 # 50文字重複させる
)
chunks = text_splitter.split_documents(documents)
# 3. ベクトル化してデータベースに保存
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="./vector_db" # 保存先
)ステップ3: 検索と回答生成の仕組みを構築
ユーザーの質問に対して、関連文書を検索し、ChatGPTで回答を生成します。
from langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
# ChatGPTモデルを初期化
llm = ChatOpenAI(model_name="gpt-4", temperature=0)
# RAGチェーンを構築
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectordb.as_retriever(search_kwargs={"k": 3}) # 上位3件を検索
)
# 質問を投げる
question = "リモートワークは週何日まで可能ですか?"
answer = qa_chain.run(question)
print(answer)ステップ4: Webインターフェースを作成(オプション)
社内メンバーが使いやすいように、チャット画面を作成します。
🎨 UI構築の選択肢
- Streamlit: Pythonだけで簡単にWebアプリ作成(初心者向け)
- Gradio: チャットUIを数行で作成可能
- Next.js + API: 本格的なWebアプリ(カスタマイズ性高)
- Slack Bot: Slackから直接質問できる
導入コストと運用費用
💰 コスト内訳(50人規模の会社の場合)
| 項目 | 費用 |
|---|---|
| 【初期費用】 | |
| システム設計・開発 | 15万円 |
| 社内文書の整理・投入 | 5万円 |
| UIデザイン・実装 | 5万円 |
| 初期費用 合計 | 25万円 |
| 【月額費用】 | |
| OpenAI API(Embeddings + GPT-4) | 1万円 |
| ベクトルDB(Pinecone等) | 5,000円 |
| サーバー・保守 | 5,000円 |
| 月額費用 合計 | 2万円 |
※ 文書量や利用頻度によって変動します
精度を上げるためのポイント
1. チャンクサイズの最適化
文書を分割する際のサイズ(chunk_size)を調整します。
- 小さすぎる(200文字): 文脈が失われる
- 大きすぎる(2000文字): 無関係な情報も含まれる
- 推奨: 500〜1000文字程度
2. プロンプトエンジニアリング
ChatGPTに渡す指示(プロンプト)を工夫することで、回答の質が向上します。
良い例:
「以下の社内文書をもとに、質問に簡潔に答えてください。 文書に情報がない場合は『該当する情報が見つかりませんでした』と答えてください。 必ず出典(ファイル名とページ)を明記してください。」
3. メタデータの活用
文書に「部署」「更新日」「カテゴリ」などのメタデータを付けることで、 検索精度を向上できます。
例: 「人事部の規程だけを検索」「2024年以降の文書に限定」など
よくある質問
Q. プログラミングの知識がなくても導入できる?
A. 完全にノーコードで構築するのは難しいですが、最近では以下のようなサービスを使えば、 プログラミング不要で導入できます:
- Notion AI(Notion内の文書を検索)
- ChatGPT Enterprise(社内データアップロード可能)
- 各種SaaS型RAGツール(月額3万円〜)
Q. セキュリティは大丈夫?
A. OpenAIのAPIを使う場合、送信したデータは学習には使われません(2023年3月以降)。 さらにセキュリティを高めたい場合は:
- Azure OpenAI Service(Microsoft管理、エンタープライズ向け)
- オンプレミス型のLLM(社内サーバーで完結)
- 日本製のLLM(ELYZA、rinna等)
Q. どれくらいの文書量まで対応できる?
A. ベクトルデータベースの性能次第ですが、Pineconeの無料プランでも 数万件のチャンク(= 数千ページ分)を保存できます。 有料プランなら数百万件まで対応可能です。
まとめ: RAGで社内ナレッジを最大活用
RAGシステムを導入することで、社内の膨大な情報を「検索する」のではなく、 「質問すれば答えが返ってくる」環境を実現できます。
✅ RAG導入のメリット
- 情報検索時間を80%削減(平均10分 → 2分)
- 新入社員のオンボーディング期間を短縮
- 過去の知見が埋もれず、組織全体で活用できる
- 問い合わせ対応の負担を大幅に削減
初期費用20〜30万円、月額2万円程度で導入でき、 社員全員の業務効率を上げられるRAGシステム。 社内のナレッジを最大限活用したい企業におすすめです。
🤖 RAGシステム構築のご相談
「自社でRAGを導入したい」「どんな文書から始めればいいか分からない」という方は、 無料相談(30分)でお気軽にご相談ください。技術選定から構築まで、最適なプランをご提案します。
📅 無料相談を予約する