# 社内ナレッジAIチャットボットの作り方|精度の高い回答システムを構築する実践ガイド
「社員が質問すると、社内資料をもとにAIが回答する」仕組みへの需要
「過去の研修資料やマニュアルを探すのに時間がかかる」「ベテラン社員に聞かないとわからないことが多い」「同じ質問が何度も来る」。こうした課題を解決するために、社内ナレッジに基づいて回答するAIチャットボットの導入を検討する企業が増えています。
しかし、ChatGPTを社内で使ってみたが「嘘を答える」「社内の情報を知らない」「回答が的外れ」という体験をして、「やはりAIは業務では使えない」と結論づけてしまうケースも少なくありません。
問題はAIの能力ではなく、AIに社内ナレッジを正しく参照させる仕組み(RAG)の設計にあります。本記事では、精度の高い社内ナレッジチャットボットを構築するための実践的なポイントを解説します。
システムの全体像
社内ナレッジチャットボットは、以下の構成で動作します。
- ナレッジベース: 社内の文書・マニュアル・FAQ・動画文字起こし等を格納するデータストア
- 検索エンジン: ユーザーの質問に関連する文書をナレッジベースから検索する仕組み(ベクトル検索、全文検索、GraphRAG等)
- 生成AI(LLM): 検索された文書をもとに、自然な日本語で回答を生成するAIモデル
- チャットUI: ユーザーが質問を入力し、回答を受け取るインターフェース
この構成をRAG(Retrieval-Augmented Generation、検索拡張生成)と呼びます。精度を左右するのは、2番目の「検索」と、その前段の「データ準備」です。
精度の8割はデータ準備で決まる
「AIモデルの性能」に注目しがちですが、実際に回答精度を左右するのはナレッジベースに入れるデータの品質です。
取り込むデータの種類と前処理
データの種類 | 前処理のポイント | 注意点 |
|---|---|---|
PDF資料 | テキスト抽出、表・図のテキスト化、ヘッダー/フッター除去 | スキャンPDFはOCRが必要。レイアウトが複雑なPDFは抽出精度が落ちる |
動画の文字起こし | Whisper等で文字起こし → 固有名詞修正 → セクション分割 | 話し言葉の冗長さ、「えー」「あのー」の除去、スライド参照箇所の補足が必要 |
社内Wiki / Notion | APIで一括取得 → Markdown/HTMLからテキスト抽出 | 更新日時の管理が重要。古い情報が最新として検索されないようにする |
メール / チャットログ | 個人情報のマスキング、署名・免責事項の除去 | プライバシー配慮が必須。全文取り込みではなく、ナレッジ価値の高いやり取りを選別 |
FAQ | 質問と回答のペアを構造化データとして格納 | 最も精度が出やすいデータ形式。既存のFAQがあれば優先的に取り込む |
チャンク分割の戦略
長い文書をそのままベクトル化すると検索精度が落ちるため、適切なサイズに分割(チャンキング)します。
- 段落・セクション単位で分割: 文の途中で切れないように、見出しや改行を基準に分割する
- オーバーラップを持たせる: 前後のチャンクと一部を重複させることで、文脈の断絶を防ぐ
- メタデータを付与: 各チャンクに「どの文書の何章か」「最終更新日」「機密度」等のメタデータを付ける
- チャンクサイズの目安: 200〜500トークン(日本語で300〜700文字程度)。業務文書の場合、短すぎると文脈が失われ、長すぎると検索ノイズが増える
検索の精度を上げる設計
ハイブリッド検索
ベクトル検索(意味的な類似度)と全文検索(キーワード一致)を組み合わせます。「年次有給休暇」で検索したとき、ベクトル検索は「休暇制度」全般を拾い、全文検索は「年次有給休暇」を正確に含む文書を拾います。両方を組み合わせることで、意味的な柔軟性とキーワードの正確性を両立できます。
リランキング
検索で上位に来た候補を、別のモデルで再評価して順位を調整します。最初の検索で20件取得し、リランカーで上位5件に絞ることで、AIに渡す情報の精度が向上します。
クエリ拡張
ユーザーの質問を、検索に適した形に変換します。「有給って何日あるの?」→「年次有給休暇 付与日数 規程」のように、検索キーワードを補完することで検索精度が上がります。この変換自体もLLMに行わせることができます。
GraphRAGの活用
社内規程のように文書間の参照関係が複雑な場合、GraphRAGが効果的です。規程A → 参照 → 規程B → 例外規定 → 細則C のような関係をグラフ構造で保持し、複数文書をまたぐ質問にも正確に回答できます。
プロンプト設計のポイント
検索された文書をもとにLLMが回答を生成する際のプロンプト設計も重要です。
- 回答は検索結果のみに基づくこと: 「以下の参考資料に書かれている内容のみに基づいて回答してください。参考資料に記載がない場合は『この質問に関する情報は見つかりませんでした』と回答してください」
- 根拠の明示: 「回答の根拠として、参照した資料名とセクションを明記してください」
- 略語・固有名詞の扱い: 「略語の正式名称は参考資料に明示されている場合のみ記載してください。推測で正式名称を補完しないでください」
- URLの生成禁止: 回答にURLを含める場合は、参考資料に記載されているURLのみを使用する。存在しないURLの生成を明示的に禁止する
精度を測り、改善し続ける仕組み
チャットボットは作って終わりではありません。継続的に精度を測定し、改善するサイクルが必要です。
評価データセットの構築
実際の業務で発生する質問を50〜100件収集し、正解となる回答を人間が用意します。このデータセットでAIの回答精度を定期的に計測します。
ユーザーフィードバックの収集
回答に対して「役に立った / 役に立たなかった」のフィードバックボタンを設置します。「役に立たなかった」回答を収集・分析し、ナレッジベースの追加やプロンプトの改善に活かします。
ナレッジベースの定期更新
社内文書が更新されたら、ナレッジベースも更新する運用を設計します。手動更新は漏れやすいため、可能であれば自動同期の仕組みを組み込みます。
Beekleの対応
Beekleでは、社内ナレッジAIチャットボットの構築をゼロスタート(MVP開発・PoC開発)で承っています。PDF資料や動画文字起こしデータの取り込み、ベクトルDB化、インフラ構築を含めた一気通貫対応が可能です。Claude APIを活用したRAG構築の実績があり、非エンジニアでも運用しやすい設計を前提にしています。
よくある質問(FAQ)
Q. 社内の資料が数百件ありますが、すべてAIに取り込む必要がありますか?
A. 最初は対象業務に関連する資料だけで十分です。問い合わせが多い業務のマニュアル・FAQ・規程から始めて、利用状況を見ながら段階的にデータを追加していくアプローチが効率的です。
Q. 動画の文字起こしデータはそのまま使えますか?
A. そのままでは精度が落ちます。話し言葉の冗長さの除去、固有名詞の修正、トピックごとのセクション分割が必要です。特に「スライドの図を参照しながら説明している箇所」は、図の内容をテキストで補足する前処理が重要になります。
Q. 回答に「情報が見つかりませんでした」と表示される頻度が高い場合はどうすればよいですか?
A. 原因は「ナレッジベースにデータが不足している」か「検索が質問にマッチしていない」のいずれかです。「見つかりませんでした」が出た質問を収集し、(1)その質問に答えるデータがナレッジベースに存在するか確認、(2)存在するなら検索パラメータを調整、(3)存在しないならデータを追加、という手順で改善します。
Q. チャットボットの構築費用はどのくらいかかりますか?
A. スコープによりますが、PoCレベル(1業務領域、数十件の文書)であれば100万円から200万円程度で構築可能です。本番化(UI整備、セキュリティ対策、運用設計)を含めると200〜500万円程度が目安です。詳しくは生成AI開発の費用相場を参考にしてください。
Beekleでは、生成AI/CDP/業務システムの企画・要件定義・開発・運用までワンストップで支援しています。「何を作れば成功か」の整理、検証フェーズの設計、本番化判断まで、発注側の判断材料が揃うように伴走します。費用感の概算だけでも歓迎です。