1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実践!Difyのナレッジベース作成ガイド

Last updated at Posted at 2025-02-25

Difyの機能や操作手順まとめ

1. ナレッジベースとは?📚

Difyのナレッジベースとは、「よくある質問(FAQ)、マニュアル、専門記事、体験談」などの情報を一か所に整理して保管し、AIがそれらを参照できるようにするための仕組みです。つまり、RAG(Retrieval-Augmented Generation)の概念に基づいた機能です。RAGの詳細については別の記事で解説しておりますので、そちらをご参照ください。

本記事では、Difyのナレッジベースの具体的な使い方について説明します。操作方法に焦点を当てていますが、技術的な詳細を理解したい方向けに、各項目で参考リンクを掲載していますので、必要に応じてご覧ください。

2. ナレッジベースの作成・文書アップロード💾

作成手順:

1. 新規作成:トップメニューから「ナレッジベース」→「新規作成」
スクリーンショット 2025-02-18 21.40.39.png

2.ファイルアップロード

  • ローカルファイル(TXT、Markdown、DOCX、HTML、JSON、PDFなど)
  • オンラインデータソース(ウェブサイト、Notionなど)

※Difyのファイルサイズ、アップロード可能数はサブスクリプションプランに依存

新規データを作成する場合、Markdown形式が結局おすすめ
 理由...

  1. シンプルで記述しやすい
    純粋なテキストに見出しやリスト、強調などが簡単に書けるため、情報の整理が容易
  2. 編集・保守が楽
    テキストエディタで手軽に編集でき、必要に応じてHTMLやPDFに変換も可能
  3. 構造化しやすい
    各項目を階層化できるので、悩みごとや解決策を明確に区別でき、AIが情報を抽出しやすい構造

詳しくはこちら

スクリーンショット 2025-02-18 21.41.05.png

3. コンテンツの分割と前処理✂️
とりあえず「親子分割モードのデフォルト設定」を選択👍

ナレッジベースにアップロードした文書は、コンテンツ分割により小さなブロック(チャンク)に分割されます。チャンクに分ける理由は、大きな文章を小さな塊にすることで、「どこにどんな情報があるか」がわかりやすくなるため

例えば赤ずきんをチャンクに分けると...

  1. チャンク1:はじまり:赤ずきん、おばあさんに会いに森へ
  2. チャンク2:狼の罠:オオカミが先回りし、赤ずきんとおばあさんを飲み込む
  3. チャンク3:狩人救出:狩人が助け、オオカミ退治

こうやって分けておけば、どの部分に何が書いてあるかがすぐに分かりますね。

分割モードとは 📝

1. 汎用分割モード(シンプルに分けるって意味)

  • 特徴:文章を区切り(改行や句読点など)に基づいて、そのまま短いチャンクに分割

  • 「今日は雨が降っています。傘を持って行きましょう。」
    → 「今日は雨が降っています。」と「傘を持って行きましょう。」の2つに分割
  • 利点:ルールがシンプルなため、準備は簡単、どんな文章も大体使える。

2. 親子分割モード(階層的な分けるって感じ)

  • 特徴:大きなチャンク(親)と、その中に含まれる小さなチャンク(子)を組み合わせて分割
  • 例えば...
    • 親チャンク:「赤ずきん」
      • 子チャンク1:はじまり:赤ずきん、おばあさんに会いに森へ。
      • 子チャンク2:狼の罠:オオカミが先回りし、赤ずきんとおばあさんを飲み込む
      • 子チャンク3:狩人救出:狩人が助け、オオカミ退治
  • 利点:大きな流れ(親チャンク)と詳細な内容(子チャンク)の両方を持ってるから、AIが文脈を理解しやすい。

まとめ 📌

  • 分割モードでは、長い文章をどうやって分けるかのルールを決められる
  • 基本は親子分割モードでいいけど、AIの課金抑えたいなら汎用分割モードでシンプルに実装しよう!

スクリーンショット 2025-02-18 21.55.56.png

4. インデックス設定と検索方法🔎
とりあえず「高品質モード」を選択しておけばOK

解説
RAGでは、AIが知識を検索しやすくするために 「インデックス」 を作成する。これは、テキストを「意味の近さ」で検索できるようにする仕組み。

  • 例えば「DifyでRAGを設定するメリットは?」と質問したら...
    こんな手順でシステムは動く!!
    • 質問をベクトル化(Embedding)
      まずは、質問文を「数値データ(ベクトル)」に変換
    • ベクトル検索
      質問のベクトルと、事前に設定したナレッジベースのベクトル(先ほどのチャンクで設定している)を照らし合わせて検索。
    • 関連情報をLLMに渡し、回答を生成
      検索で見つけた情報をもとに、ChatGPTなどのLLMが回答を作成。

このような変換ができるように、Difyの「高品質モード」は、アップロードされたデータを、あらかじめ前処理(ベクトル化)しておいて、精度向上、検索結果の評価、できるようにしているらしい。

詳細はこちら

スクリーンショット 2025-02-18 22.21.10.png

5. 埋め込みモデルの設定
🌟 用途に合わせて選択!
正確さを最優先なら → text-embedding-3-large
速度とコストを重視なら → text-embedding-3-small
バランスを取りたいなら → text-embedding-ada-002

埋め込みモデル(Embedding Model)とは、先ほど説明した文章や単語を数値のかたまり(ベクトル)に変換するためのAIモデルです。よく使われるのが以下の3つで、お好きなのを選んでくださいということ。
下記は一応その特徴らしい(by ChatGPT)

📌 1. text-embedding-3-large(高性能・大規模モデル)
  • 特徴
    • 高い精度でテキストの意味を理解できます。
    • 大規模な学習をしており、長い文章や複雑な内容にも強いです。
  • おすすめの用途
    • 知識検索やFAQシステムなど、正確な検索結果が求められる場合
    • 大規模なナレッジベースを扱う場合
  • ポイント:高性能ですが、計算コストが高くなる場合があります💡

📌 2. text-embedding-3-small(軽量・高速モデル)

  • 特徴
    • 処理が軽く、動作が速いモデルです。
    • 意味理解は「large」より少し劣りますが、十分に実用的です。
  • おすすめの用途
    • リアルタイムのチャットボットや、高速な検索が求められる場合
    • モバイルアプリや小規模なシステム
  • ポイント:速度重視で、軽量かつコストを抑えたい場合に適しています🚀

📌 3. text-embedding-ada-002(定番モデル・コストパフォーマンス重視)

  • 特徴
    • OpenAIが提供する定番の埋め込みモデルです。
    • 高いコストパフォーマンスで、精度と速度のバランスが良いです。
  • おすすめの用途
    • コストを抑えながらも高品質な結果を求める場合
    • 多言語対応が必要なナレッジベース
  • ポイント:価格と性能のバランスが取れており、多くのプロジェクトで選ばれています💰

とりあえず、text-embedding-ada-002で設定しました

スクリーンショット 2025-02-18 22.20.49.png

6. 検索結果とRAGの実現🔄
「ハイブリッド検索」を選択!

検索とは。。。
ベクトル化したユーザーからの質問に、近い値をベクトル化したナレッジベースから探すこと
再ランキング(Rerank)とは。。。
選ばれたナレッジベースのデータを再評価して、最も適切な情報を選択すること
どの検索方法を使うかで、回答の正確さやスピードが大きく変わるのでここは結構大事
ここでは、代表的な3つの検索設定を解説!

📌 1. ベクトル検索(Vector Search) 🧠

  • 特徴:文章の「意味」に基づいて検索します。
    • AIが文章をベクトル(数値)に変換して、意味が近いものを探します。
    • キーワードが完全に一致しなくても、「意味が似ている文章」を見つけられます。

  • 質問:「安眠のコツは?」
    → 「夜はスマホを控えましょう」「就寝前にハーブティーがおすすめ」など意味の近い回答を返します。
  • おすすめの用途:FAQ検索、悩み相談、ドキュメント検索など
  • ポイント:意味を理解するので、誤字や言い回しが違っても適切な結果を出せます✨

📌 2. 全文検索(Full-Text Search) 📝

  • 特徴:文章の「言葉(キーワード)」を基に検索します。
    • 文書全体をインデックス化して、入力されたキーワードが含まれている部分を探します。
    • 検索エンジンのように、直接的なキーワード一致を得意とします。

  • 質問:「睡眠不足」
    → 「睡眠不足を改善する方法」「睡眠不足の原因とは?」など、キーワードが含まれる文章を返します。
  • おすすめの用途:FAQのキーワード検索やマニュアル内検索など
  • ポイント:キーワードがはっきりしている場合に高速で正確な検索が可能です🚀

📌 3. ハイブリッド検索(Hybrid Search) 🧩

  • 特徴ベクトル検索と全文検索を組み合わせた方法です。
    • まず全文検索で「キーワードが含まれる文章」を探し、
    • 次にベクトル検索で「意味が近い文章」を再ランキングします。

  • 質問:「快眠するには?」
    → 「睡眠の質を高める方法」「就寝前のルーティン」など、意味も関連性も高い回答を返します。
  • おすすめの用途:FAQ、ヘルプセンター、ナレッジベースなど、多様な質問が想定される場合
  • ポイント:正確さと広がりのバランスが良く、最もおすすめの検索設定です✨

📊 検索設定の選び方

  • シンプルな検索が欲しい場合 → 「全文検索」がおすすめです💨
  • 意味を理解した検索が欲しい場合 → 「ベクトル検索」がおすすめです💡
  • 正確さと意味のバランスを重視したい場合 → 「ハイブリッド検索」がおすすめです🌟

スクリーンショット 2025-02-18 22.28.33.png

まとめ🎉

  • Difyは、最新情報をリアルタイムに扱うナレッジベースプラットフォームです。
  • コンテンツの分割インデックス設定により、LLMがより正確な回答を出せる環境を構築します。
  • 高品質な検索API連携により、業務の効率化や柔軟なカスタマイズが実現可能です。

これらの機能を活用して、RAGを組み込んだ高精度なAIアプリケーションを、たった数分で構築できる点がDifyの大きな魅力です!🚀

実際に構築したRAGでアプリを作ってみる解説記事は下記を参照ください。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?