Startup Dev Partner
← ブログ一覧に戻る
AI活用・技術解説

社内データ検索AIの作り方|RAGシステム構築ガイド

公開日: 2025年1月15日 | 読了時間: 約12分

「社内の膨大なマニュアルや規程から、必要な情報を探すのに時間がかかる」 「過去の議事録やノウハウが埋もれていて、活用できていない」 そんな課題を解決するのが、RAG(Retrieval-Augmented Generation)という技術です。

この記事では、社内データを自然言語で検索できるAIシステムの作り方を、 技術的な内容も含めて分かりやすく解説します。

RAGとは?従来の検索との違い

従来の検索(キーワード検索)の限界

従来の検索(Google検索や社内の文書検索)は、入力したキーワードと文書内の単語が 「完全一致」または「部分一致」する文書を探します。

❌ 従来の検索の問題点

  • 「リモートワーク」で検索しても、「在宅勤務」と書かれた文書は見つからない
  • 「経費精算のやり方」で検索しても、正確なキーワードが分からないと見つからない
  • 質問に対する「答え」ではなく、キーワードが含まれる「文書」が表示されるだけ

RAG(検索拡張生成)の仕組み

RAGは、「検索(Retrieval)」と「生成AI(Generation)」を組み合わせた技術です。

  1. 意味を理解する検索: 質問の「意味」を理解して、関連する文書を探す
  2. AIが回答を生成: 見つけた文書をもとに、ChatGPTが質問に対する回答を生成
  3. 情報源も表示: どの文書から回答を作ったのか、出典も明示

✅ 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の処理フロー

【準備フェーズ】データの登録
  1. 社内文書(PDF, Word等)を収集
  2. 文書を小さなチャンク(塊)に分割(500文字程度)
  3. 各チャンクをEmbeddingでベクトル化
  4. ベクトルデータベースに保存
【検索フェーズ】質問への回答
  1. ユーザーが質問を入力「リモートワークのルールは?」
  2. 質問をEmbeddingでベクトル化
  3. ベクトルデータベースで類似度の高いチャンクを検索(Top 3〜5件)
  4. 見つかったチャンクをChatGPTに渡す
  5. ChatGPTが文書をもとに回答を生成
  6. 回答 + 出典を表示

構築手順: 実際に作ってみよう

ステップ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分)でお気軽にご相談ください。技術選定から構築まで、最適なプランをご提案します。

📅 無料相談を予約する
← ブログ一覧に戻る