アーキテクチャ·設計

DifyはRAGの何を解決して、何を解決しないのか — 自前実装で引いた境界線

n8n・pgvector・Ollamaを使ってRAGパイプラインを自前実装した話は、DifyのRAGを自前実装した記事に書いた。埋め込みモデルの選定からチャンク分割・ベクトル検索まで、Difyが「裏側で自動でやっていること」を1ステップずつ手動で追う作業だ。その過程で見えてきたのは、「Difyに任せてよいこと」と「Difyを使っても自分で考え続けることが変わらないこと」の境界線だった。この記事ではその境界線を6つのカテゴリで整理する。


結論を先に

境界線の要約 Difyが肩代わりするのは「配管・器・運用UI」の8割と「基本パラメータのデフォルト設定」だ。自分でやり続けないといけないのは「データ品質・チャンキング設計・評価・プロンプト設計・ドメイン知識」の意思決定だ。



精度の上限はデータとチューニングで決まる。Difyにしても無思考で高精度にはならない。ただし試行錯誤のスピードが数倍〜10倍速くなる、という位置づけだ。


Difyを使えば「考えなくていい」こと

RAGシステムを自前で作ろうとすると、データを入れる前の段階だけで数週間〜数ヶ月かかる。Difyはその「配管」を丸ごと引き受ける。GUIで設定するだけで以下がすべて動く。

インフラ
ベクトルDB・LLM接続
Weaviate / Qdrant / pgvector 等の選定・接続設定。埋め込みモデル・LLM・RerankerはGUIで切り替えるだけだ
インフラ
APIサーバ・チャットUI・認証
APIキー管理・チャットUI・社内向け公開URLの発行まで一括で手配される。自前実装ではこれだけで数週間かかる
検索
Hybrid検索・Rerank・top_k
ベクトル検索+全文検索のHybrid構成、Rerankモデルの閾値調整、top_kの数値もGUIのスライダーで完結する
検索
チャンクサイズ推奨値
チャンクサイズとオーバーラップには推奨値プリセットが存在する。汎用文書であればそのまま使える出発点が用意されている
運用
ログ収集・👍👎フィードバック
会話ログの保存とユーザーフィードバックの収集が内蔵されている。外部ツールなしで実運用データを蓄積できる
運用
バージョン公開・モデル切替
公開・ロールバック・モデル変更(GPT-4→Claude→Qwen)が数分で完了する。自前実装では再デプロイの工数が毎回かかる

これを自前で作ると数週間〜数ヶ月かかる。Difyを選ぶ最大の理由はここだ。


Difyを使っても「自分で考え続けないといけない」こと

Difyは配管を引き受けるが、配管の中に何を流すか、流した結果が正しいかの判断はツールでは代替できない。精度の天井を決める3つから始める。

精度の天井を決める3つ

① データ品質・PDFパースの精度

PDFパースの品質が最終精度の天井を決める。論文・複雑な表・数式・2カラムレイアウトのPDFは、Dify標準パーサでは情報損失が生じやすい。

自前実装でMinerUに切り替えるまで、2カラムレイアウトのPDFが1行おきに断片化していることに気づかなかった。Difyに投入されているデータが壊れていれば、Difyは壊れたデータしか返せない。

対策: 高品質なMarkdownに事前変換してからDifyに投入する。Difyはその「入れ物」として機能する。

② チャンキング設計

Difyの標準チャンカーは汎用文書向けだ。ドメイン固有の文書構造に合わせた設計は自分でやる必要がある。

「チャンクサイズを500から200に変えたら精度が上がった。しかしなぜ上がったのかが分からなかった」——この疑問が自前実装の出発点だった。1チャンクに含まれる情報の粒度、文脈の途切れ方、これはドメインによって最適値が変わる。

詳しいパラメータの意味はチャンク分割の設定値と実務ガイドを参照してほしい。設定値の意味を理解した上でDifyのスライダーを動かすのと、なんとなく動かすのでは、チューニングの到達点が変わる。

③ 評価データセットの構築

ログ収集機構はDifyに内蔵されているが、正解セット(ゴールドセット)は自分で作るしかない。何が「正解」かは人間にしか決められないからだ。

20〜30問の正解付きテスト質問を用意しなければ、チャンクサイズを変えた効果が「なんとなく良くなった気がする」以上に測れない。改善が測れなければ、投資が正当化できない。

ゴールドセットの作り方と測定方法はゴールドセットの作り方と精度測定で詳しく解説している。

その他 — 運用を左右する4つ

メタデータ設計
フィルタ検索を機能させるには事前設計が必要だ。Difyはメタデータのフィールドという「入れ物」を用意するが、「部門コード」「文書更新日」「カテゴリタグ」のような何を入れるかの設計は人間の仕事だ。設計なしに投入したデータはフィルタで絞れない。
プロンプト設計
GUIのプロンプト入力欄はDifyが用意する。しかし「ナレッジに情報がない場合は正直に答えなさい」「回答は箇条書きで3点以内にまとめなさい」という指示は自分で書く。プロンプトの質がそのまま回答品質に直結する。
失敗の分析と改善判断
どのクエリで何を落としているか、原因はデータ品質なのか検索設定なのかプロンプトなのかの診断は人間が行う。Difyはログを提供するが、ログを読んで「何が悪いか」を判断するのはツールではできない。
継続クロール・データ更新
DifyのナレッジベースAPIは存在するが、定期的なデータ更新のスケジューラは内蔵されていない。外部ツール(n8n等)でクロール・前処理・APIへの投入を定期実行する設計を自分で組む必要がある。古いデータのまま運用し続けると、精度は時間とともに下がる。

まとめ — 一覧表

6カテゴリで整理する。「気にしなくていい」はDifyのGUI・自動処理で完結するもの、「気にし続けろ」は人間が意思決定し続けるものだ。

カテゴリDifyで気にしなくていいDifyでも気にし続けろ
インフラベクトルDB / LLM / API / UI / 認証 / ログ収集DR・バックアップ(PostgreSQL等)
データ標準PDF取込・チャンクサイズ設定パース品質・前処理・チャンキング戦略・メタデータ設計
検索Hybrid / top_k / Rerank / フィルタ高度技法(MMR等)・クエリ書換
生成LLM切替・テンプレ管理・引用返却・コンテキスト長プロンプト設計そのもの
評価ログ収集・👍👎フィードバック評価データセット・メトリクス設計・改善判断
運用デプロイ・スケール・モニタリング継続クロール・ドメイン知識更新

Difyは意思決定のスピードを上げるツールだ

精度への投資は結局、データとチューニングの意思決定に帰着する。Difyが解決してくれない部分こそ、RAGシステムの品質を左右する。ツールを導入することと、精度が上がることはイコールではない。

次回予告 次回はn8nで構築したドキュメント自動取り込みパイプラインの設計を書く予定だ。MinerUでPDFを変換し、差分検知・リトライ・完全性検証をどう設計したかを示す。個人の論文管理システムで実証した構成だが、社内マニュアルPDFの自動取り込みにも応用できる設計になっている。


参考資料