今回は Dify v1.9.0 で新たに追加された「ナレッジパイプライン(Knowledge Pipeline)」機能を実際に触ってみたので、概要と使い方をまとめます。
ナレッジパイプラインとは?
Dify のナレッジパイプラインは、RAG(Retrieval-Augmented Generation)に使うナレッジソースをより柔軟かつ自動的に管理するための仕組みです。
従来は:
- ナレッジ = ドキュメント or ファイルを直接アップロードしてベクトル化
- 埋め込み生成・チャンク化・インデックス化が一括で行われる
でしたが、
ナレッジパイプライン では「データの流れ(Pipeline)」を明確に可視化して設定できます。
ナレッジパイプラインの主な特徴
- RAG における ETL(Extract=抽出、Transform=変換、Load=格納)プロセス を可視化
- データソース接続、ドキュメント解析、チャンキング戦略の適用などを ノード単位で管理
- テキスト・画像・表・スキャン文書など多様なモーダルに対応
これまでDifyでアプリケーションを作成する際と同じようなキャンバスで、処理の流れを直感的に構築していきます。
また、テキストだけでなく「画像」「HTML」「PDF」などのマルチモーダルな入力や、Google DriveやSharepointなど複数のデータソースとの連携加えて、段階的に処理可能になったようです。
対応バージョンと参考
- この機能は Dify v1.9.0(2025年9月リリース) で初登場しました。
v1.9.1 ではパイプラインの可視化UIやワークフロー連携も改善されています。 - GitHub のリリースノート:
- Dify Japan(@DifyJapan)のQiita記事
バージョンアップ
コミュニティ版でDifyを利用している場合は、ナレッジパイプラインを利用するために対応バージョンにアップグレードする必要があります。(クラウド版の場合は自動的に最新バージョンが利用できます。)
上記リリースノートの「Upgrade Guide」を参考にバージョンアップします。
過去のバージョンアップをQiita記事にまとめていますので、こちらもご参考ください。
ナレッジパイプラインの注目ポイントまとめ
-
複数のデータソース連携が簡単に
Google Driveなど外部サービスとの接続が数クリックで完了し、異なる情報源をシームレスに扱える。 -
複雑なデータ変換や前処理を自分で構築・調整できる
ノード単位でフローを作成できるため、これまでブラックボックスだった中間処理を自分の手で制御・最適化できる。 -
処理の流れが一目で分かるワークフローUI
どの段階で何が行われているかが視覚的に把握でき、デバッグや改善が容易に。 -
テンプレートで手軽に始められる
サンプル構成を選ぶだけで基本的なパイプラインを構築でき、学習コストを抑えながらすぐ試せる。
実際に使ってみる
【前提】
★まずはテンプレートから作成してみる
「ナレッジ」を開きます。
「知識パイプラインから作成する」をクリックします。
テンプレートもいくつか用意されています。
まずはテンプレートで用意されている「文書形式変換」を使って、知識パイプラインの使い方を確認してみます。
必要なプラグインをインストールするようにポップアップが出てきます。
いくつかのブロックがあらかじめ作成されて表示されました。
ポストイットでコメントが記載されているので、それを読みながら進めてみます。
作成直後は “Unavailable” 状態になっており、編集画面から「公開する」と利用できるようになるようです。
一度「公開」するとチャンク構造は変更できないため、事前にテストラン機能で動作確認しておきましょう。
公開する前に、Jinaの認証設定がないと更新を保存できなかったので、その設定を行っておきます。
ユーザーアイコンをクリックし、「設定」を押します。
「モデルプロバイダー」からJinaのAPIキーを入力します。
Jinaとは
RAGなどの検索に特化した機能を提供するOSSです。
EmbeddingsやRerankerモデルや、ドキュメントのテキスト抽出を行うReaderを提供しています。
以下からAPIキーを取得でき、無償で1Million Tokenを利用できます。
https://jina.ai/
編集画面から「公開する」を押して、ナレッジパイプラインの作成が完了しました。
公開されたナレッジパイプラインが表示されています。作成したナレッジパイプラインをクリックします。
ここまで設定が完了したら、実際にナレッジパイプラインを使ってみましょう。
まずはドキュメントをアップロードして動作を確認します。
パイプラインで設定した前処理や分割を行いドキュメントをベクトル化します。
★一から作成してみる
ナレッジパイプラインの作成の仕方、利用の仕方の流れが分かったところで
実際に簡単なナレッジパイプラインを作成してみようと思います。
今回は、Google Driveからテキストファイルを参照して、ナレッジとして登録するパイプラインを作成してみます。
テンプレートを使わず、「空白のナレッジパイプライン」から一から作成してみようと思います。
まずはRAGで参照するデータソース。
デフォルトではファイルのみが選択できるようになっています。
Google Driveをデータソースとして利用してみます。
マーケットプレースで、データソースとしてGoogle Driveをインストールします。
インストールが出来たら、認証設定を行います。
「設定」から「データソース」を確認すると、「Google Drive」が追加されています。
「OAuthクライアントの設定」をクリックします。
以下のリンクからOAuthクライアントを作成し、クライアントIDとクライアントシークレットを入手します。
参考:
- GCPセットアップ
設定が完了すると、CONNECTEDになります。
ナレッジパイプラインの作成画面に戻ります。
データソースが設定できたので、次のノードを追加します。
「Dify Extractor」のツールをインストールします。
入力変数として、Google DriveのFileを設定しておきます。
続いて、抽出したテキストをチャンク分割するため、「General Chunker」を利用します。
ツールからインストールしてブロックを作成します。
入力としてDify Extractorで抽出したtextを変数として指定しておきます。
必須項目となっている、区切り文字と最大チャンク長を入力します。
最後に、General Chunkerのブロックと知識ベースを繋げます。
チャンク構造は、「汎用」としておきます。
チャンクは、前ブロックで分割されたチャンクを指定します。
インデックス方法は高品質、任意の埋め込みモデルを指定、検索設定(ここではベクトル検索)を選択します。
ここまで出来たら、テストランをしてみます。
Google Driveから登録するドキュメントを選択します。(ここでは複数選択は出来ない様子。)
左から順番に処理が行われ、分割された状態のテキストを確認出来ました。
ここで更新を公開します。これでナレッジパイプラインの作成が完了です。
ナレッジをクリックします。
作成したナレッジパイプラインを選択して、実際にドキュメントを登録してみます。
対象ファイルを選択します。ここで一度に処理できるファイルは、最大5ファイルまで、各ファイル最大15MBです。
それぞれのファイルに対して、プレビューチャンクをクリックすることでどのように分割されるか確認できます。
「保存して処理する」をクリックします。
★作成したナレッジを使ってみる
コンテキストとして先程作成したナレッジを指定します。
ナレッジを参照するようにプロンプトで指定し、チャットボットを作成しました。
正確な情報を返してくれました。
おわりに
ナレッジパイプラインによって、これまで一括処理されていたRAGの「抽出・変換・格納(ETL)」の流れを、ノード単位で可視化・制御できるようになりました。
これにより、データソースの種類や前処理方法に応じた柔軟な設計が可能になり、より精度の高いナレッジ管理と再利用ができるようになります。
実際に触ってみると、「データがどのように加工・分割され、最終的にナレッジ化されるか」を視覚的に理解できる点が非常に分かりやすく、RAG構築の学習にも役立つと感じました。
このアップデートでさらにDifyの活用範囲は一層広がり、ナレッジパイプラインは欠かせない基盤機能になりそうです。