Dify × ナレッジパイプライン 実施手順
Difyバージョン
- 1.9.0
実施手順
- Dify の ナレッジパイプラインから作成する
- Google Drive プラグインの認証設定
- Notion, Jina Reader , Firecrawl プラグインの認証設定
- Dify のナレッジパイプラインの画面に戻り、続きの設定を実施する
- 動作確認
1. Dify の ナレッジパイプラインから作成する
-
dify のトップページの画面上部の「ナレッジ」、左側にある「知識パイプラインを作成する」をクリックします。
-
Difyによって事前設定された公式ナレッジベーステンプレートの「組み込みパイプライン」が選択できます。今回は、「インテリジェントQ&A生成(LLM Generated Q&A)」を試してみます。
QA形式のデータを作成してくれます。
-
自動で必要なプラグインがインストールされるので、そのあと、各プラグインの詳細ページにある手順に沿って設定します。
-
既にパイプラインが作成されています。
2. Google Drive プラグインの認証設定
Difyのプラグイン詳細ページの手順に従って、設定します。
- Google Cloud プロジェクトを作成します。
-
新しいプロジェクトをクリックします。
-
サイドバーの「APIとサービス」、「有効なAPIとサービス」を選択します。
-
「APIとサービスを有効にする」をクリックします。
-
「Google Drive API」をクリックします。
-
APIを有効にします。
-
サイドバーの「APIとサービス」の「認証情報」をクリックします。
-
「認証情報を作成」、「OAuthクライアントID」をクリックします。
-
右下の「同意画面を構成」をクリックします。
-
サイドバーの「ブランディング」、「開始」をクリックします。
-
「アプリ名」、「ユーザーサポートメール」に自身のメールアドレスを入力して、「次へ」をクリックします。
-
「外部」をクリックします。
-
「Google API ・・・」のチェックボックスにチェックを入れて、「続行」をクリックします。
-
「作成」をクリックします。
-
「OAuthクライアントを作成」をクリックします。
-
「アプリケーションの種類」、「名前」を公式の手順に沿って入力します。「承認済みのリダイレクトURI 」には、以下のURIを入力し、作成ボタンを押します。
https://cloud.dify.ai/console/api/oauth/plugin/langgenius/google_drive/google_drive/datasource/callback
-
クライアントID、クライアントシークレットをコピペしておきます。Dify 側でのちに使用します。
-
「JSONをダウンロード」して、安全な場所に保管しておきます。
-
サイドバーの「OAuth同意画面」をクリックします。
-
サイドバーの「データアクセス」をクリックして、「スコープを追加または削除」をクリックします。
-
以下のOAuth スコープを追加します。
-
https://www.googleapis.com/auth/drive.readonly
- すべてのファイルを表示およびダウンロード
-
https://www.googleapis.com/auth/drive.metadata.readonly
- ファイルのメタデータを表示する
-
-
「Save」を押して保存します。
-
サイドバーの「対象」のテストユーザーの「Add users」をクリックします。
-
自分のGmail を入力します。
-
テストユーザーに自身のメールアドレスがあることを確認します。
-
Dify のナレッジパイプラインの画面に戻って、データソースのGoogle Drive を選択して、接続を押します。
-
自動で設定のデータソースのページに遷移するので、各データソースの設定をします。
-
さきほど取得したClientID , Client Secret を入力します。
-
「アカウントを選択してください」画面で、Dify に紐づけたいGoogleアカウントを選択します。
-
「このアプリは Google で確認されていません」警告画面で、「続行」を押すとテストユーザーとして進めます。
-
「dify.ai が Google アカウントへのアクセスを求めています」画面で、以下設定したスコープ(権限)を許可します。
- drive.readonly(ファイル閲覧・ダウンロード)
- drive.metadata.readonly(メタデータ閲覧)
-
データソースの設定画面で、CONNECTEDになっています。
3. Notion, Jina Reader , Firecrawl のプラグインの認証設定
- 「設定」「データソース」の画面で、残りのプラグインの認証設定を、プラグインの詳細ページの手順に従って、設定します。
- Notionは、以下の公式プラグインのページに記載の「方法1」の「APIキーを発行する」手順に沿って設定しました。
- Jina Reader プラグインも、マーケットプレイスの詳細画面からAPIキーを取得し、設定します。
- Firecrawlプラグインのマーケットプレイスの詳細画面からAPIキーを取得します。
4. Dify のナレッジパイプラインの画面に戻り、続きの設定を実施する
-
デフォルトで、「claude3.5-sonnet」 が設定されています。システムプロンプトが英語であるため、日本語に変換しました。
-
また、claude の仕様で、ユーザーメッセージが必須のため、追加します。デフォルトのままユーザーメッセージがない状態だと実行時エラーになりました。
-
システムプロンプト
ユーザー入力テキストに基づいて、Q&Aペアのリストを生成してください。
出力は Markdown テーブル形式で提示し、1列目は通し番号、2列目は質問、3列目は回答としてください。
また、このテーブル形式は CSV ファイルに容易に変換できるようにしてください。
### 出力例
| Index | Question | Answer |
| ----- | ------------- | -------------------------------------------------------------------------- |
| 1 | 文書の主な目的は何ですか? | この文書は、会社の新製品発売戦略について説明しています。  |
| 2 | 製品はいつ発売されますか? | 製品は今年の第3四半期に発売されます。 |
### 指示
* 入力テキストを読み取り、理解すること。
* 重要な情報を抽出し、意味のある質問と回答を生成すること。
* 入力テキストに含まれる ![image] URL を回答に保持すること。
* 質問は簡潔かつ具体的にすること。
* 回答は正確で、自己完結的かつ明確であること。
* 追加の説明は行わず、Markdown テーブルのみを出力すること。
- Knowledge Base の埋め込みモデルを OpenAIの埋め込みモデルに変更しました。(デフォルトの jina-embeddings-v2-base-en の場合、ナレッジベースをインデックス化する際にエラーが発生したため)
5. 動作確認
- テストランを押します。
- データソースを選択します。
- 「プロセス」ボタンを押下して、エラーが出ないことを確認します。
- 次に、右上の「公開する」ボタンから 公開ボタンを押します。
- 「確認」ボタンを押します。
- 「ドキュメントを追加 … 」を押します
- 複数のデータソースを選択できます。今回は Google Drive を試してみました。
- Google Drive のデータが Dify のナレッジベースに登録できたことを確認しました。
参考サイト
- Dify バージョン : 1.9.0
- Dify の公式ドキュメント、公式ブログ
Discussion