【生成AI】Difyを利用して、ノーコードでRAGを搭載したアプリケーションを作ってみた

Tech

2024.5.21

Topics

はじめに

こんにちは、Shunです!

最近、生成AIの話題の中でDify(ディファイ)というツールを耳にすることが増えてきました!
そこで、今回はDifyを用いて簡易的にRAGを構築し、アプリケーションを公開するまでの手順をご紹介します!

Dify.AI · The Innovation Engine for Generative AI Applications

Difyとは

Difyとは、オープンソースのLLMアプリ開発プラットフォームです。
LangChainのノーコード版と捉えていただけるとわかりやすいかもしれません。

チャットボット、エージェント、ワークフローなどの機能を利用でき、外部ツールとの連携も可能です。
また、テンプレートとしてある機能をそのまま使うことができたり、ナレッジと呼ばれるRAGも簡単に構築することができます。

料金

200回分のGPTは無料で使用することが可能です。プランが上がると、作成可能なアプリ数やRAGの領域が広くなるなど、様々な機能が追加されます。

やってみた

1. Difyアカウントの登録

以下からアカウント登録を行います。

https://cloud.dify.ai/signin

GoogleもしくはGitHubアカウントと連携させることで、簡単に登録が可能です。

2. ナレッジの作成

今回は、RAG機能を持たせたアプリを作成するため、ナレッジと呼ばれる情報を格納する箱を作成します。

「知識を作成」をクリックします。

今回は、RAGをNotionで作成するため、「Notionから同期」 > 「接続する」へ進みます。

Notionとの同期は、手順に沿って行っていきます。
私は、以下のような自分の簡単なプロフィールを書いたページを作成し、ページ単位で同期をしました。

同期が完了すると、データソースを指定して、「次へ」へ進みます。

今回は、無料利用を想定しているため、以下のように設定を行い、「保存して処理」をクリックします。

チャンク設定: 自動
インデックスモード: 経済的

これでナレッジの作成は、完了です。

3. ワークフローの設定

続いて、ワークフローを作成していきます。
「ワークフロー」 > 「最初から作成」をクリックします。

適当なアプリの名前をつけ、「作成する」をクリックします。

GUIでワークフローを作成するページへと遷移します。
アプリの全体的なワークフローは以下です。

  1. ユーザーが質問を行う
  2. 質問に近い内容をナレッジから取得
  3. ナレッジ取得した内容をLLMに渡し、回答を生成
  4. ユーザーへ回答

まず、ユーザーが質問を行います。
開始ブロックの、「入力フィールド」へ変数「Input」を定義します。

次に、「Input」からナレッジを探します。
開始ブロックの + から、「知識取得」をクリックします。

知識取得ブロックに、「Input」をクエリ変数として渡し、「知識」へ先ほど作成したナレッジを設定します。

続いて、「LLM」ブロックを作成します。

LLMブロックは、以下のように設定します。

モデル: [GPT3.5のどれか]
コンテキスト: 知識取得のresult
プロンプト:

あなたは、Shunのプロフィールを紹介するBotです。
ユーザーからの<質問>に対し、<コンテキスト>を参照し、回答をしてください。

# /から入力を始めると変数を渡すことができます。
<質問>
/input 
</質問>

<コンテキスト>
/コンテキスト
</コンテキスト>

出力変数: text

最後に、「終了」ブロックを作成します。

終了ブロックの出力変数に、LLMから受け取ったtextを返すように設定します。

実際に、動かして想定した動きをしているかを確かめてみます。
画面右上の「実行」をクリックし、入力へ「Shunの趣味を教えて」と入れ、「実行を開始」します。

趣味は、バスケと筋トレと出力されます。
正解です。仕事以外の時間は、ほぼこの二つです。

これでワークフローの作成は完了です。

4. アプリケーションの公開

画面右上の「公開する」からアプリケーションを公開することも可能です。

「アプリを実行」をクリックします。

先ほど、作成したアプリのUIが用意されており、ここから実行をすることができます。
URLからアプリへアクセス可能なので、アプリの公開も可能です。

まとめ

今回は、ノーコードでRAGを搭載したアプリケーションを作ってみました!
ノーコードツールは色々とありますが、Difyはトップクラスで直感的に扱えたような気がしました!

余談ですが、Difyの公式サイトには「LangChainよりも本番環境に適しています。」とかなり大胆なことが書いています!
ただ、それほどプロダクトに自信がある表れだとも思えます!

興味がある方は、無料かつ簡単に試すことができるので、ぜひ実施してみてください!

最後まで読んでいただきありがとうございます!

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

Shun

週8バスケしたいです。Google Cloud11冠、2024 AWS All Cert

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら