「社内の規程やマニュアルをAIに読ませて、質問に答えさせたい」。そう考えたときに候補に挙がるのがDifyです。

この記事では、Difyの「ナレッジ」機能を使って、社内文書に答えるAIチャットを作る手順を紹介します。後半では、当社が自社のサーバーで診療報酬の通知を読ませるAIを作り直したときに、実際につまずいた点もまとめました。

Difyとは:AIアプリを画面で組み立てるツール

Difyは、生成AIを使ったチャットや業務アプリを、プログラムをほとんど書かずに画面上で組み立てられるオープンソースのツールです。使うAIモデルは選べます。OpenAIやAnthropicなどのクラウドのモデルも、Ollamaなどで社内のPCに置いたローカルLLMもつなげます。

使い方は2通りあります。

  • クラウド版(Dify Cloud):Difyの運営会社のサーバーで使う。登録すればすぐに試せる
  • セルフホスト版:自社のPCやサーバーにDifyを入れて動かす。ローカルLLMと組み合わせれば、文書も質問も社外に出さない構成にできる

当社はセルフホスト版を自社のGPU搭載PCで動かし、社内向けのAIアプリを組んでいます。

RAGとは:社内文書から探して答える仕組み

AIのモデルが持っているのは、学習した時点の一般的な知識だけです。自社の規程や最新の通知について聞くと、知らないことをそれらしく作ってしまうことがあります(ローカルLLMのおすすめモデル比較と必要スペックの「落とし穴2」で、実際の例を紹介しています)。

そこで、質問のたびに社内文書から関係する部分を探し、その部分をAIに渡して答えさせる仕組みがRAG(検索拡張生成)です。流れは3段階です。

  1. 探す:あらかじめ小さく区切っておいた文書の中から、質問に近い部分を探す
  2. 渡す:見つかった部分を、質問と一緒にAIに渡す
  3. 答える:AIは渡された部分をもとに答える。どの文書のどこを見たかも示せる

Difyでは、この「探す」ための文書置き場をナレッジと呼びます。答えの正しさは、AIモデルの賢さと同じくらい、1の「探す」がうまくいくかで決まります。

Difyの使い方:ナレッジで社内文書AIチャットを作る5手順

画面の名前はバージョンや表示言語で変わることがあります。ここでは公式ドキュメントの名称に合わせて書いています。

手順1:ナレッジを作り、文書を入れる

ナレッジの画面で新しいナレッジを作り、文書をアップロードします。読み込めるのは、PDF・Word(.docx)・Excel(.xlsx/.xls)・CSV・Markdown・HTML・テキストなどです。

最初は、よく聞かれる質問の答えが載っている文書を数本に絞ります。文書が少ないうちのほうが、うまく答えられなかったときに原因を追いやすくなります。

手順2:区切り方(チャンク)を決める

文書は「チャンク」と呼ぶ小さなまとまりに区切って保存されます。区切り方は2種類です。

  • General:すべてのチャンクを同じ設定で区切る
  • Parent-child(親子):探すときは小さいまとまり(子)を使い、AIに渡すときはそれを含む大きいまとまり(親)を使う

区切りに使う文字(改行など)や、1つのチャンクの長さも決められます。条文や項目ごとに見出しがある文書なら、見出しの単位で区切られているかを、取り込み後のチャンクの一覧で確かめてください。

手順3:検索の方法を決める

保存のしかた(インデックス方法)は「High Quality」と「Economical」の2つです。High Qualityは、文章の意味を数値に変える埋め込みモデルを使い、次の3つの探し方から選べます。

  • ベクトル検索:意味の近さで探す
  • 全文検索:言葉が含まれているかで探す
  • ハイブリッド検索:両方を組み合わせて探す

あわせて、AIに渡す件数(TopK・既定は3)、関連度の下限(スコアのしきい値。使う場合の初期値は0.5)、検索結果を並べ直すRerankモデル(既定はオフ)を設定します。Economicalは1チャンクあたり10個のキーワードで探す方式で、埋め込みモデルを使わないぶん、検索の精度は下がります。

日本語の文書では、全文検索の効き方に注意が要ります。当社のセルフホスト版(ベクトルDBは既定のWeaviate)では、そのままの設定だと日本語の全文検索がほとんど当たりませんでした。試験用の8問のうち7問で、全文検索の結果が0件です。日本語用の分かち書き(kagome_ja)を有効にしてから、ナレッジを新しく作り直しています。この設定は、有効にしたあとに作るナレッジにだけ効きます。

手順4:チャットボットにナレッジをつなぐ

アプリを作る画面で「チャットボット」を選び、コンテキスト(AIに渡す資料)の欄に、手順1で作ったナレッジを追加します。答えに使うAIモデルもここで選びます。

指示文(プロンプト)には、「渡された資料に書かれていないことは『資料に記載がありません』と答える」と書いておきます。資料にないことをモデルが知識で補うのを減らせます。

手順5:質問して、答えの出典を確かめる

ふだん実際に聞かれる質問を10問ほど用意し、答えが正しいか、どの文書のどこを根拠にしたかを確かめます。引用(出典)の表示をオンにしておくと、答えと一緒に参照した文書が出ます。

間違えた質問は、ナレッジの「検索テスト」に同じ質問を入れて、どのチャンクが見つかったかを見ます。正しい部分が見つかっていなければ手順2・3の見直し、見つかっているのに間違えるならプロンプトやモデルの見直し、と原因を分けられます。

つまずきやすい点:自社の診療報酬RAGで実際に起きたこと

当社は2026年9月、自社のGPU搭載PCで動かしているDify(セルフホスト版)で、診療報酬の通知を読ませるナレッジを作り直しました。主要な通知5本から始め、最終的に28文書・約1万600チャンクまで増やしています。そのときに実際につまずいた点と、あらかじめ工夫した点を紹介します。

Difyに区切らせると、本文が段落ごと抜けることがある

ナレッジに入ったチャンクを元の通知と突き合わせたところ、本文の一部が段落ごと入っていませんでした。1つの通知で取り込み方を比べると、PDFをそのまま入れた方法では約4%、文字を取り出してから入れても、区切り方の設定によって0.3〜2%程度が欠けていました。どの設定でも欠けたため、取り込み方そのものを変えています。PDFから取り出した文字を自分で見出しの単位に区切り、そのチャンクをDifyのAPIで直接入れる方法です。検証では、この方法で本文がすべて入ることを確かめました。

当社のGPU搭載PCで動かしているDify 1.17.1(セルフホスト版)で、2026年9月に診療報酬の通知1つを使って比べた結果。2本目の棒の濃い部分が0.3%、薄い部分が2%までの幅を表します。文書の種類・設定・バージョンによって変わります。

文書を入れたら一度、重要な段落の言葉で検索テストをして、実際に入っているかを確かめてください。

同じ文書の古い版が混ざっていた

ナレッジの中を調べると、主要な通知が3つの版ずつ入っていました。重複は全体の約2割です。古い版の記述が探されると、古い内容で答えるおそれがあります。作り直したナレッジには、各通知の最新版だけを入れました。

文書を増やすと、渡す件数も増やす必要がある

通知5本の段階では、AIに渡す件数を30件から8件に減らしても、試験用の質問で根拠の部分が見つかる順位は変わりませんでした。ところが23文書を追加すると、ある質問で根拠の部分が上位8件に入らなくなりました。渡す件数を15件に増やすと、どの質問でも根拠の部分が再び候補に入りました。

文書を足したら、同じ試験用の質問で検索テストをやり直し、前は見つかった根拠の部分が落ちていないかを確かめます。

問答集は、問と答を1つのまとまりにする

疑義解釈のように「問」と「答」が対になった文書は、区切り方によって問と答が別のチャンクに分かれます。当社では、問だけが見つかって答えが渡らない、というずれが起きないように、最初から問と答を1つのチャンクにして入れています。社内のFAQやQ&A集でも同じ工夫が使えます。

Windowsでは「localhost」が遅いことがある

Windows上のスクリプトからDifyのAPIを呼ぶ宛先を「localhost」にしていたところ、リクエスト1回ごとに約21秒の待ちが入っていました。原因は、localhostがIPv6の宛先として先に解決され、つながるまで待たされていたことです。宛先を「127.0.0.1」にすると、同じリクエストが約0.4秒で返りました。スクリプトやほかのツールからDifyを呼ぶと遅いと感じたら、PCの性能を疑う前に、宛先の書き方を確かめてみてください。

Difyの料金:クラウド版とセルフホスト版

2026年10月6日時点の公式サイトの料金は次のとおりです。最新の金額と条件は、使う前にDifyの料金ページで確かめてください。

種類プラン料金ナレッジの上限など
クラウド版Sandbox無料メッセージクレジット200・文書50件・容量50MB・メンバー1人
クラウド版Professional年590ドル(1ワークスペース)メッセージクレジット月5,000・文書500件・容量5GB・メンバー3人
クラウド版Team年1,590ドル(1ワークスペース)メッセージクレジット月10,000・文書1,000件・容量20GB・メンバー50人
セルフホスト版Community無料公開リポジトリの機能。ライセンスの条件あり
セルフホスト版Enterprise個別見積商用ライセンスと専用サポート

セルフホスト版のソフトは無料ですが、動かすPCやサーバーの費用はかかります。クラウドのAIモデルを自社のAPIキーでつなぐ場合は、モデルの利用料を各社に別に支払います。ローカルLLMを使えば、モデルにかかるのは電気代だけです。

セルフホスト版のライセンスは、Apache 2.0に条件を足したものです。複数の会社に向けたサービス(マルチテナント)として動かすには書面での許可が要ることと、Difyの画面(フロントエンド)を使う場合は、ロゴや著作権表示を消したり変えたりしないことが定められています。使う前にライセンスの本文を確認してください。

社外に出さずに使うには:セルフホスト版とローカルLLM

クラウド版や、クラウドのAIモデルを使う構成では、文書や質問が社外のサーバーに送られます。顧客情報や社内の数字を含む文書を扱うなら、セルフホスト版のDifyに、ローカルLLMと埋め込みモデルをつなぐ構成にすると、文書の取り込みから答えまでを社内で完結させられます。構築の手順はDifyとOllamaでローカルAI環境を構築する方法にまとめています。

このとき必要なPCの性能は、主にAIモデルを動かすGPUのメモリ(VRAM)で決まります。社内文書に答えさせる用途では、見つかった部分をまとめてAIに渡すぶん、一度に読ませる文章が長くなり、その分のメモリも要ります。手元のGPUで使いたいモデルが載るかは、読ませる文章の長さも選べるローカルLLM 必要スペック診断で確かめられます。

よくある質問

Difyは無料で使えますか?

クラウド版の無料プラン(Sandbox)と、セルフホスト版(Community)は無料です。ただしSandboxは、ナレッジの文書が50件・容量50MBまでです。セルフホスト版は、動かすPCやサーバーの費用と、クラウドのAIモデルを使う場合はその利用料がかかります。

PDFやExcelもナレッジに入れられますか?

入れられます。PDF・Word(.docx)・Excel(.xlsx/.xls)・CSV・Markdown・HTML・テキストなどを読み込めます。PDFは取り込んだあと、本文が欠けていないかを検索テストで確かめてください。

社内文書を社外に出さずに使えますか?

セルフホスト版のDifyに、社内で動かすローカルLLMと埋め込みモデルをつなげば、社外に送らずに使えます。クラウド版のDifyや、クラウドのAIモデルを使う構成では、文書や質問が外部のサーバーに送られます。

ナレッジを入れたのに、答えが間違うのはなぜですか?

まず「探す」段階を疑ってください。正しい部分がAIに渡っていなければ、モデルを替えても答えは直りません。ナレッジの検索テストで、どのチャンクが見つかったかを確かめてください。区切り方、渡す件数、古い版が混ざっていないかを見直すと改善することがあります。

実例の数値は、当社のGPU搭載PC(NVIDIA RTX 5080)で動かしているDify 1.17.1(セルフホスト版)で2026年9月に測ったものです(ハイブリッド検索・Rerankあり・スコアのしきい値0.3。欠落の比較は1つの通知で行った検証)。文書の種類・設定・バージョンによって変わります。手順・料金・機能の説明は、2026年10月6日時点のDify公式サイト・公式ドキュメントにもとづきます。

ネットにつながないAI(オフラインAI)の導入を支援しています

院内・社内のPCだけで動き、データを外に出さないAIです。近いほうからご覧ください。

医療機関・介護事業所の方 中小企業の方
沼尻 義弘 — 株式会社giverth 代表取締役
沼尻 義弘
株式会社giverth 代表取締役

病院勤務12年(筑波メディカルセンター病院/システム部門・医事部門)の現場経験を持つITコンサルタント。医療機関・中小企業向けの完全オフラインAI導入支援(ローカルLLM・Dify)に特化。

無料相談はこちら →

社内文書AIを、社外に出さずに動かすなら

まずは手元のGPUで、使いたいモデルが載るかを確かめてください。GPUのメモリ・モデルの大きさ・読ませる文章の長さを選ぶだけで、必要なVRAMの目安を表示します。登録不要です。

必要スペック診断を開く