【Dify】Difyとは?RAG・外部LLM徹底活用術

今回は、話題のDifyについての続編としてRAG、外部LLM活用についてフォーカスをあてて紹介していこうと思います。

RAGとは?

RAG(検索拡張生成)の基本概念をわかりやすく解説

そもそもRAGとは、AIがより正確に答えを出すために「検索してから答える」仕組みです。

普通のAI(ChatGPTなど)は、学習した知識だけで答えるのに対して、RAGを使用したAIでは「調べたことをもとにレポートを書く」ように検索を行ってから答えを生成してくれます。

リアルタイムで学習した情報を使用するためより正確で最新の回答を生成することができます。

ナレッジの保存方法はとても簡単でDifyno上にあるタブ「ナレッジ」を選択。

保存したいファイルを選択するだけでできちゃいます。

ちょっと深掘り

他にもRAGを使うことにより、ナレッジ(知識)を活用した回答をAIが行ってくれるようにもなります。

ナレッジに自分たちの使用したいデータを保存しておくことにより、AIにより正確性の高い回答を生成させたり、それぞれに合った情報を生成してくれたりします。

これらの技術によりハルシネーション(誤情報)が生成される確率を下げることができます。

ナレッジとは

ナレッジ(知識)はAIに学習させるための情報のことを言います。

  • PDFやWord資料
  • テキストファイル、Markdown
  • Webページ、Notion、社内Wikiの内容
  • JSON/CSVなどの構造化データ

これらをナレッジ(知識)として保存してAIの生成時の資料として活用することができます。

バックエンド側ではナレッジをベクトル データベースに変換、保存をしてAIが効率的に情報を使用できる形にしているため、ナレッジにデータを保存しておけば難しい操作やコードを書くことなくデータ管理が可能になります。

DifyのRAG・外部LLMの取り扱い

DifyでRAGを使いこなす方法

データベースを用意するには?RAG活用の前提知識

まず、Difyのナレッジとして使用できるデータは

データタイプ拡張子例備考
テキスト文書.txtプレーンテキスト
Word文書.docxMicrosoft Word形式
PDF文書.pdfOCR非対応PDFも可だがテキスト抽出精度に注意
Excel文書.xlsxテーブルデータも含めて抽出可
PowerPoint資料.pptxスライドのテキストを抽出
Markdown文書.md構造化されたドキュメントに適している
CSVファイル.csvテーブル形式。FAQなどに活用可
Webページ(URL)クローリングによる読み取りも可(設定により)
Webページ(HTML).html, .htm静的HTMLファイル
JSON形式のFAQ.json構造化QAペアとして読み込む場合に便利
ZIPファイル.zip上記ファイル形式の一括アップロード用

以上のデータ形式をナレッジとして参照することができます。

これに加えて、DifyではNotionで自分で記述した文章やメモなどもデータとして使うことができます。

さらに、WebサイトのAPIを登録することでWebサイトと同期し、回答の精度を高めることが可能です。

特にnotionは最近では多くの人が導入しているツールなので、これがナレッジとして使用できることでできることが大幅に増えそうです。

RAGで実現できる応答改善・情報検索の具体例

ここでは自分なりの使い方を簡単に説明していきたいと思います。

GPTsでも似たようにナレッジを保存して、情報の角度を高得ることが可能で、ここではチャットボットを簡単にセットアップして自分オリジナルの返答をするAIを作成してみたいと思います。

ナレッジの保存方法はとても簡単で上にあるタブの「ナレッジ」を選択。

ナレッジベースを作成から自分が保存するデータを選択して保存完了です。

RAGの使用法はLLMの登録と一緒に実際にチャットボットを作成しながら説明したいと思います。

DifyでのRAG設定手順とエラー対策Q&A

知識ベースにアップロードしたのに反映されない

このような場合ファイル形式や文字コードなどが誤っているかもしれません。文字形式などはわかりずらいこともありますので、まずはファイル形式が正しく設定されているか確認してみてください。

  • 確認事項
    • テキストが実際に抽出できているか「プレビュー」で確認
    • PDFならOCR対応済かどうか確認
    • MarkdownやTXT形式で試してみる

Dify×外部LLM連携のやり方と実践例

外部LLMとの連携で何ができる?Difyの活用シーンを紹介

Difyでは外部LLMと連携してAPIを保存することにより、保存したLLMをDify内で使用することができます。

最近では多くの企業があらゆる大規模言語モデルを開発しており、日に日に良い言語モデルが登場しています。

使っていてどんどん最新のモデルが出てくると開発者は何でアプリ作成をすればいいのかわからなくなってしまいますよね。そこで活躍するのがDifyでの外部LLMとの連携機能です。保存したLLMは従量課金制で使用でき、別々のサイトに飛ばずにDify内で検証することができるので作業速度を大幅にアップすることができます。

個人開発者の人でもさまざまな言語モデルを比較してより良いアプリの制作が可能になるのでとても便利な機能です。

OpenAI以外のLLMをDifyで活用する具体的方法を紹介

STEP
まず右上にあるプラグインを選択します。
STEP
左上のマーケットプレイスを選択肢、「モデル」を選択するとLLMのモデルを選べるようになります。

試してみたいLLMを選んだらインストールをしてスタジオに戻ります。(この時、APIの登録を要求されたらリンクからAPIキーを取得して貼り付けておいてください。

STEP
ここでRAGを使うためにチャットボットにナレッジを読み込ませます。
自分の作りたいチャットボットようにプロンプトを追加したら、コンテキストの追加を選択します。
STEP
作成に進むを選択してから、ソースの選択をして使用したいファイルを追加したらナレッジの登録は完了で作成するチャットボットにさっき追加したナレッジを使わせることができるようになりました。

最後に作成画面の公開するの左側でこのアプリで使用する言語モデルを選択して公開したら、RAGを活用して言語モデルも自分用にセットアップされたAIアプリの完成です。

外部LLMで精度を高める!事例ベースの解説

モデル選びのポイント

私はAIアプリ制作段階のプレニューでは無料で使えるAIモデルを使用しています。Difyではプレビューで動作確認する際にも従量課金制が適用されてしまい高額請求される可能性があるのでプレビューでは無料のAIモデルを使用することをお勧めします。

実際に外部に公開するときに高精度なAIモデルに直すようにするとコスパよくアプリ開発ができると思います。

よくある質問・トラブルシューティング【RAG・LLM編】

RAG利用時にエラーが出た時の対処法

基本的にチャットボットを作成したときに起こるエラーではナレッジがうまく登録できていないことが原因なので上から順にもう一度登録し直すとうまく動作すると思うので試してみてください。

外部LLM連携がうまくいかない原因と解決策

この場合はAPIの登録がうまくいっていないことが考えられます。今後APIについても活用方法、設定法を紹介していく予定です。そこでエラー対処について説明していくのでそちらを参照してみてください。

終わりに

今回はDifyのRAGなどの少し高度な活用法について説明してきました。

これからもDifyの実際の使い方をハンズオンでわかりやすく説明していくのでそちらも参考にしていただけると幸いです。

さらにDifyでは外部サービスをAPIで連携することにより拡張性の高いアプリ開発が可能になります。それらを使用したチャットボット作成についてもこれから解説を出していくので、ぜひ個人や自社用のAIを利用したチャットボットを作成して、サービス運用に役立てたい方は参考にしてみてください。