RAG設計 · 実務ガイド

Difyで社内FAQを構築する — チャンク分割と検索精度の実務ガイド

社内ドキュメントが増えるにつれ、「どこに書いてあるか分からない」という問い合わせが情シスに集中する。ExcelやNotionで作ったFAQページは更新が滞り、キーワード検索では欲しい答えにたどり着けないケースも多い。

DifyはRAG(Retrieval-Augmented Generation)を使った問い合わせ対応ボットをローコードで構築できるプラットフォームだ。自社ドキュメントを読み込ませ、自然言語で質問するだけで関連する情報を引き出して回答を生成する。ワークフロー構築はGUIで完結するためプログラミング不要だが、チャンク分割の設定を誤ると的外れな回答ばかり返ってくるという落とし穴がある。

本記事では、Difyで社内FAQボットを構築するときの実務的な手順と、検索精度を上げるための設定を解説する。


なぜDifyが選ばれるのか

社内FAQボットを作る選択肢はいくつかある。Slack botを自作する、ChatGPT APIを直接叩く、既製品のチャットボットを導入するなど様々だ。その中でDifyが選ばれる理由は3つある。

🔧
ローコードで構築できる
GUIでRAGパイプラインを組めるためワークフロー構築はプログラミング不要。Dify Cloud を使えばインフラ管理も不要。
🔄
マルチLLM対応
OpenAI / Anthropic / Gemini など主要LLMを切り替えて使える
🔒
セルフホスト可能
社内機密ドキュメントを外部に出さずに運用できる

🐝 IroHive メモ Difyはオープンソース(Apache 2.0)なので、DockerでVPS上にセルフホストするか、Dify Cloudのマネージドサービスを使うかを選択できる。機密情報を扱う場合はセルフホスト一択。


RAGとチャンク分割の役割

RAGの仕組みを簡単に整理しておく。

  1. 社内ドキュメント(PDF・Word・Notionなど)をDifyに読み込む
  2. ドキュメントを「チャンク」と呼ぶ小さな塊に分割してベクトル化・保存
  3. ユーザーが質問すると、質問に近いチャンクを検索(Retrieve)
  4. 取得したチャンクをコンテキストとしてLLMに渡し、回答を生成(Generate)

このプロセスでボトルネックになりやすいのがステップ2のチャンク分割だ。チャンクが大きすぎると関係ない情報が混入し、小さすぎると文脈が失われる。

最大チャンク長の目安

Dify の UI では「最大チャンク長」を文字数(characters)で入力する。ドキュメントの種類別の目安は以下の通りだ。

300〜600
文字
オーバーラップ:50文字
Q&A形式・単純な事実の検索
800〜1,200
文字
オーバーラップ:100文字
社内マニュアル・手順書
✅ 推奨
2,000+
文字
オーバーラップ:150〜200文字
長文レポート・技術文書の要約

✅ 推奨設定(社内FAQ) 社内FAQには最大チャンク長 800〜1,200文字・オーバーラップ 100文字が最もバランスが良い。オーバーラップを設けることで、チャンクの境界をまたぐ情報も取りこぼさない。

チャンク識別子(区切り文字)

チャンクサイズと同じくらい重要なのがチャンク識別子(区切り文字)の設定だ。ドキュメントを「どこで」分割するかを指定する。デフォルトは \n(改行ごと)だが、これを使うと1行=1チャンクになり細かくなりすぎる。

\n(改行ごと)
1行 = 1チャンク。「ローコードで構築できる。」のような断片が大量発生。文脈が失われて回答精度が落ちる。
\n\n(空行ごと)
段落単位でまとめて分割。Q&Aの1問1答が1チャンクに収まり、検索精度が大幅に改善する。

📌 Dify の設定画面で識別子フィールドに \n\n と入力する。\n(バックスラッシュ+n)の2連続が空行区切りを意味する。テキストを実際に貼り付けても動作する。

埋め込みモデルの選び方

チャンクを「ベクトル(数値の配列)」に変換して保存・検索するのが埋め込みモデル(Embedding Model)だ。ナレッジベース作成時に選択する。後から変更すると全チャンクの再インデックスが必要になるため、構築前に決めておく。

🔵
OpenAI
text-embedding-3-small

API課金型で導入が最もかんたん。日本語の精度は実用十分。小規模FAQなら月数百円以内に収まる。

✅ 情シス向け推奨
🟡
名古屋大学 OSS
ruri-v3-310m

日本語KB特化のOSS最高峰(JMTEB Retrieval 81.89)。Ollama経由でローカル利用可。クエリに 検索クエリ: 、文書に 検索文書: プレフィックスが必須。

🇯🇵 日本語KB・精度最優先
🟢
Cohere
embed-multilingual-v3.0

日英混在ドキュメントに強い。Cohere Rerankと組み合わせると精度が上がる。なお v3.5 が2026年時点の最新版。

多言語・Rerank併用向け
🖥️
Ollama(ローカル)
nomic-embed-text

完全ローカル・無料。ただし英語ベースで日本語特化ではない。機密データでAPI不可の場合に限り、日本語専用KBには ruri-v3 の方が適切。

完全ローカル・無料

⚠️ 埋め込みモデルはナレッジベース作成時にのみ選択できる。後から変更すると全チャンクの再インデックスが必要になり、処理時間とAPI費用が再度かかる。最初に決めておくこと。


Difyでの設定手順

① ナレッジベースの作成

  1. Dify管理画面 → 「ナレッジ」→「ナレッジを作成」
  2. ドキュメントをアップロード(PDF・TXT・Markdown・Notionページ対応)
  3. チャンク設定:自動ではなくカスタム(汎用)を選択
  4. チャンク識別子:\n\n を入力(空行で段落ごとに分割)
  5. 最大チャンク長:1,000 / オーバーラップ:100(単位は文字数
  6. インデックスモード:高品質(ハイブリッド検索はここで有効になる)を選択
  7. 埋め込みモデル:text-embedding-3-small(OpenAI・手軽)/ ruri-v3-310m(Ollama・日本語精度優先)/ embed-multilingual-v3.0(Cohere・多言語)から選択 — 後から変更不可

② アプリケーションとの接続

  1. 「スタジオ」→ チャットボットアプリを作成(または既存アプリを選択)
  2. 「コンテキスト」セクションで上記ナレッジベースを追加
  3. 「Top K」を 6、「スコアしきい値」を 0.5 に設定
🐝 関連ツール

社内FAQ自動応答ボット — Dify DSL テンプレート

この記事の推奨設定(チャンクサイズ・スコアしきい値・システムプロンプト)をそのまま適用済み。ナレッジベースを接続するだけで動く。

Dify DSLRAGFAQv1.x 対応

精度を上げるTips

🔍 ハイブリッド検索を使う
Difyはベクトル検索(意味的類似性)とキーワード検索(BM25)を組み合わせたハイブリッド検索に対応している。どちらか一方より圧倒的に精度が上がるため、必ずハイブリッドモードを選ぶこと。
🎛️ Temperatureを下げる

FAQボットは「正確な情報を返す」ことが目的なので、LLMの創造性は不要だ。

  • Temperature0.1〜0.3(低いほど保守的・正確)
  • Max Tokens500〜800(長すぎる回答は読まれない)
💬 システムプロンプトでキャラクターを固定する
「ナレッジベースに情報がない場合は『分かりません』と答えてください」とシステムプロンプトに明記することで、LLMのハルシネーション(でたらめな回答)を抑制できる。

よくある失敗と対処法

⚠️ 質問と無関係な回答が返る
原因
チャンクサイズが大きすぎる
対処法
500〜800文字程度に調整
⚠️ 「分かりません」ばかり返る
原因
スコアしきい値が高すぎる
対処法
0.5 → 0.3〜0.4 に下げて再調整
⚠️ 回答の文章が途中で切れる
原因
Max Tokens が低すぎる
対処法
Max Tokens を 800〜1200 に増やす
⚠️ 段落境界付近の情報が欠落する
原因
オーバーラップが少ない
対処法
オーバーラップを 50〜100 に増やす
⚠️ 古い情報で回答される
原因
ドキュメントが更新されていない
対処法
月次でナレッジベースを再インデックス

まとめ

✅ 実践チェックリスト
  • 埋め込みモデルを先に決める(後から変更不可)— 日本語KB精度優先: ruri-v3-310m(Ollama)/ 手軽さ優先: text-embedding-3-small(OpenAI)/ 多言語: embed-multilingual-v3.0(Cohere)
  • チャンク識別子:\n\n(空行区切り)を設定する
  • 最大チャンク長:800〜1,200文字(Q&A形式なら800、手順書なら1,200)
  • オーバーラップ:100文字
  • インデックスモード:高品質(ベクトル検索 + ハイブリッド検索が有効になる)
  • Top K:6
  • スコアしきい値:0.5(「分からない」が多ければ 0.3〜0.4 に下げる)
  • Temperature:0.1〜0.3
  • システムプロンプトに「不明な場合は正直に答えよ」を明記する

Difyのチャンク設定はデフォルトのままでは精度が出ないケースが多い。本記事の設定値を起点に、自社ドキュメントに合わせて調整してほしい。月次でドキュメントを更新しナレッジベースを再インデックスする運用フローを整えることで、長期的に精度を維持できる。


参考資料

📌 バージョン注記 本記事の手順・設定値は Dify v1.x 系(最新 v1.15.0・2026年7月時点)を参考にしています。Difyは月に複数回アップデートされるため、UIのラベルや設定項目が変わっている場合があります。公式ドキュメントと照合しながらご利用ください。