Contents
Marketplace からデータソースプラグインを取得する手順
社内資料はクラウドストレージに分散していることが多く、まずはそれらへのアクセス権を Dify に組み込む必要があります。以下では Google Drive、OneDrive、Amazon S3 の主要プラグイン取得と認証設定の流れを示します。
プラグインの検索・インストール手順(共通フロー)
Marketplace の検索バーにサービス名を入力し、公式プラグインを「インストール」→「有効化」するだけで利用可能になります。
- Dify コンソール左上メニュー → Marketplace を選択。
- 検索欄に「Google Drive」「OneDrive」「S3」などと入力し、表示された公式プラグインをクリック。
- 「インストール」を押した後に出てくる認証画面で、組織のアカウント情報を入力して 有効化 を完了させます。
認証情報と最小権限の設定例
プラグインごとの認証は「組織設定 > プラグイン管理」から一括で確認・更新できます。以下は推奨されるスコープです。
| サービス | 推奨スコープ / 権限 | 設定ポイント |
|---|---|---|
| Google Drive | drive.readonly(閲覧のみ) |
書き込み権限は別途承認プロセスで付与 |
| OneDrive | Files.Read |
フォルダ単位でアクセスを限定 |
| Amazon S3 | s3:GetObject、s3:ListBucket |
バケットごとに IAM ポリシーを作成し、最小権限で許可 |
認証エラーが出た場合はプラグイン管理画面の「トークン更新」ボタンから再取得してください。
Blank knowledge pipeline の作成フローと設定項目の解説
「Blank knowledge pipeline」はテンプレートベースで RAG パイプラインを構築できる UI です。本節では新規作成から保存までの具体的な手順と、主要パラメータの意味・推奨値をまとめます。
新規作成から保存までの画面遷移
左側メニューの「パイプライン」→「新規作成」→テンプレート選択 → 各ステップ設定 → 「保存」の順に進めば完了します。
- +ボタン をクリックし、一覧から Blank knowledge pipeline を選択。
- データ取得 タブで先ほど有効化したプラグインを追加し、対象フォルダやバケットのパスを入力。
- 前処理 タブでは OCR・画像分割・テキスト正規化など必要なプラグインを有効化。
- ベクトル化 タブで埋め込みモデルとチャンク設定を行い、右上の 保存 を押す。
主要パラメータの役割と推奨設定(根拠付き)
データ取得
- 対象サービス:Google Drive / OneDrive / S3 のいずれかを選択。
- 取得方式:API 呼び出しがデフォルトで、バッチ処理はファイル数が多数の場合に有効です。
前処理(テキスト・画像・表)
| 項目 | 推奨プラグイン | 設定例 |
|---|---|---|
| テキスト正規化 | TextNormalizer |
Unicode NFKC、全角→半角、改行統一 |
| 画像 OCR | Tesseract v5.4(日本語・英語) |
解像度自動リサイズ(最大 1500 px)、ノイズ除去閾値 0.2 |
| 表抽出 | TabularExtractor |
ヘッダー自動検出、CSV/Excel 両対応 |
ベクトル化
- Embedding Provider:OpenAI の
text‑embedding‑ada‑002(コストパフォーマンスが高く、汎用的に安定)または Cohere のembed‑english‑v3.0(多言語環境で若干の精度向上)。 - チャンクサイズ:文脈切れを防ぐため 300〜800 トークンが一般的です。実務では 500 トークンを基準とし、長文資料は 800 トークンまで拡張します。
- オーバーラップ:前後チャンクの重複領域は 10% 前後(50〜150 トークン)に設定すると、検索時の文脈保持が向上します。
※上記数値は公式ドキュメントとベストプラクティスに基づく目安であり、実際のデータ特性に応じて調整してください。
データ取得・前処理・ベクトル化の実装例
ここでは代表的なファイル種別(PDF、画像、表)を対象としたフローを具体的に示します。全工程は Dify の UI 上で完結し、コードは不要です。
ファイル取得と Google Drive 連携手順
Google Drive プラグインを選択すると、フォルダパス入力だけで対象ファイルの一覧が自動取得できます。
- データ取得 タブ → 「Google Drive」プラグインを追加。
- 「フォルダパス」に
/knowledge/company/2024を入力し「検索」。 - 表示された PDF・画像・CSV のチェックボックスをオンにし「追加」ボタンでパイプラインへ組み込む。
ローカルファイルは同タブの アップロード ボタンからドラッグ&ドロップでバッチ登録可能です(最大 1 GB/バッチ)。
OCR によるスキャン文書のテキスト化
OCR プラグインは「前処理」タブで有効化し、言語オプションに ja と en を設定します。
- 実行:
前処理実行ボタンをクリックするとバックエンドで並列 OCR が走り、1 ページあたり約 0.8 秒でテキスト化(実測値は内部ベンチマーク参照)。 - エラー対策:ログタブに
ocr_errorが出た場合は解像度や言語設定を見直すだけで多くのケースが改善します。
テキスト・画像・表の前処理パイプライン例
| ステップ | プラグイン | 主な設定 |
|---|---|---|
| テキスト正規化 | TextNormalizer |
Unicode NFKC、全角→半角、改行統一 |
| 画像リサイズ・ノイズ除去 | ImagePreprocessor |
最大幅 1500 px、閾値 0.2 |
| OCR | Tesseract |
言語 ja, en、自動文字セット判別 |
| 表抽出 | TabularExtractor |
ヘッダー自動検出、CSV/Excel 対応 |
この順序でプラグインを配置すると、各モーダリティが統一的に整形され、ベクトル化時の品質が向上します。
ベクトル化設定例(YAML 形式)
|
1 2 3 4 5 6 |
embedding: provider: openai # または cohere model: text-embedding-ada-002 chunk_size: 500 # トークン数(300〜800 が目安) overlap: 50 # 前後チャンクの重複トークン数 |
UI 上では「ベクトル化」タブで同様の項目を入力でき、設定変更は即座に反映されます。
インデックス作成・テストクエリ・運用・監視のベストプラクティス
パイプライン保存後はベクトルストアへのインデックス化、検索テスト、そして本番運用でのモニタリングが重要です。以下に OpenSearch と Pinecone の接続例と、実務で頻出する課題への対処法をまとめます。
ベクトルストアへの接続手順
| ストア | 設定項目 | 主なポイント |
|---|---|---|
| OpenSearch | エンドポイント(HTTPS) 認証方式(IAM または Basic Auth) インデックス名 |
TLS 必須、アクセス権は最小限に設定 |
| Pinecone | API キー リージョン インデックス名 |
API キーはローテーションを定期的に実施 |
- ベクトルストア タブで対象サービスを選択。
- 必要情報を入力し「接続テスト」ボタンで通信確認。
- テストが成功すれば「インデックス作成」ボタンを押して自動的にインデックスが生成され、パイプラインのベクトル化結果が書き込まれます。
テストクエリ実行とハイパーパラメータ調整
- 手順:保存したパイプラインの「テスト」タブで自然言語クエリ(例:
最新の福利厚生制度は?)を入力し検索。 - 確認項目:返却されたチャンクとスコア(0〜1)。デフォルトは
top_k = 5、score_threshold = 0.6。 - 調整例
- スコアが低い場合 → 閾値を 0.7 に上げる。
- ヒット数が足りない場合 →
top_kを 10〜15 に拡大。
設定は「パイプライン設定」→「ベクトル検索オプション」でリアルタイムに更新できます。
よくあるエラーと対処法
| エラー種別 | 発生条件 | 推奨対策 |
|---|---|---|
authentication_error |
トークン期限切れ・スコープ不足 | プラグイン管理画面で 再認証、スコープを最小権限に見直す |
文字化け (encoding_error) |
PDF が UTF‑8 以外のエンコード | iconv 等で UTF‑8 に変換、またはプラグイン設定で対象エンコードを指定 |
file_size_exceeded |
アップロード単体が 2 GB 超過 | ファイルを 500 MB 以下に分割し自動分割オプションを有効化 |
エラーログは Dify の ログ タブで JSON 形式で取得でき、検索・フィルタリングが容易です。
セキュリティと権限管理の推奨構成
- RBAC の導入:
knowledge_admin(作成・削除権)とknowledge_viewer(検索のみ)のロールを組織レベルで設定。 - 通信暗号化:ベクトルストアは必ず TLS 1.2+ を使用し、OpenSearch は HTTPS エンドポイント、Pinecone はデフォルトで暗号化。
- プラグイン権限の最小化:Google Drive は
drive.readonlyのみ付与し、書き込みは別プロセスで承認。
これにより機密情報が外部へ流出するリスクを大幅に低減できます。
ダッシュボードとモニタリングの実装例
| メトリクス | 取得元 | アラート条件 |
|---|---|---|
| クエリ数(日次) | Dify 統合ダッシュボード | 前日比 30% 超過時に Slack 通知 |
| 平均検索レイテンシ (ms) | search_latency_ms ログ |
1,000 ms 超過が連続したら CloudWatch アラート |
| エラーレート (%) | error_rate ログ |
0.5% 超過で PagerDuty 通知 |
- 可視化:左メニューの「分析」→「パイプライン統計」で日次・週次の利用状況がグラフ表示されます。
- 外部連携:Slack Webhook を「インテグレーション」設定から登録し、閾値超過時に自動通知させることが可能です。
継続的なモニタリングとアラート設定により、性能劣化や障害を早期に検知し、安定した社内ナレッジ検索サービスを提供できます。
まとめ
Dify は取得・前処理・ベクトル化の三段階を UI 上で一元管理できる点が大きな強みです。プラグインの最小権限設定と TLS による通信暗号化でセキュリティを確保し、チャンクサイズやオーバーラップはデータ特性に合わせて調整します。
インデックス作成後はテストクエリで検索パラメータを最適化し、ダッシュボードとアラートで運用状況を可視化することで、長期的な品質維持が可能になります。
この手順とベストプラクティスに沿って構築すれば、社内のあらゆる文書・画像・表データを RAG に活用した高速かつ正確なナレッジ検索基盤を実現できます。