うさラボ

お勉強と備忘録

【Dify】Difyでサクッとアプリを作ってみる

概要

最近はやりのDifyを触ってみました
簡単なチャットボットを作ってみます

Difyとは

DifyについてはChatGPTに要約をお願いしました。

「Dify」はオープンソースのLLM(Large Language Model)アプリケーション開発プラットフォームです。
このプラットフォームは、AIのワークフロー、RAGパイプライン、エージェント機能、モデル管理、観察機能などを組み合わせた直感的なインターフェースを提供しており、プロトタイプから製品化まで迅速に移行することができます。
また、DifyはBackend-as-a-ServiceやLLMOpsといった概念を組み込んでおり、開発者が本格的なジェネラティブAIアプリケーションを迅速に構築できるよう支援しています​
by ChatGPT

ざっくりいうと、 GUIでポチポチするだけでLLMアプリを作れるようなプラットフォームです

作ったもの

早速Dify Cloudを使って、 シンプルなチャットボットを作成します

Difyクラウドは以下のことが無料でできます。
- アプリ10個まで作成可能
- ベクトルスペース5MB利用可能

cloud.dify.ai

作り方

  1. アプリ作成
    Difyにログイン後、[アプリを作成する] -> [最初から作成]をクリック
    アプリのタイプをチャットボット、オーケストレーション方法をChatflowにします
    適当な名前を付けて[作成する]をクリックします
    オーケストレーション方法を基本にするとよりシンプルに作れますが、今回はChatflowにします

  2. 作成後、以下画面のようなワークフローがデフォルトで設定されています 今回は、モデルはCohere Command R+を利用します。 LLM をクリックしてモデルをgpt-3.5-turboからcommand-r-plusに切り替えます
    ※ 設定 -> モデルプロバイダーからAPI KEYの登録が必要です

  3. 変更後、動作確認をします
    LLMの文字の横にある再生ボタン[▷]をクリックし、開始のインプットに適当な文字を入れます
    文字を入れたら[実行を開始]をクリックします。

    実行結果からCohereのモデルで回答されていることが出力エリアで確認ができます
    トークンの合計も見れちゃうのいいですね

  4. アプリのデバックを試します
    画面右上の方にある[デバッグとプレビュー]をクリックします

    デバッグとプレビューのエリアが表示されたら、画面下部から適当な文字を入れ送信します。

    エラーになってしまいました
    LLMでSYSTEMプロンプトの設定がされていないことが原因です
    今回はおしゃべりさせるだけのなので、SYSTEMプロンプトは「楽しく会話してくれ」にしました

    リトライしてみます

    回答が確認できるようになりました

  5. 機能の追加
    基本的な機能は、実装できましたが、簡単に便利な機能が追加できるので紹介します
    画面右上の[機能]ボタンをクリックすると機能の追加が表示されます
    いろいろありますが、今回は「フォローアップ」を有効化させます
    この機能は回答に対するサジェストが複数個表示されるようなものです
    トグルをクリックして有効化させ[×]ボタンを押して画面を閉じます

    機能にフォローアップが追加されました

    動作を確認します
    回答に対して、画面下部にサジェストが表示されるのが確認できます

  6. 公開
    実装が完了したの公開をします、画面右上の[公開する]をクリックし[公開する]をクリックします
    表示が公開済みに変われば完了です

    下に表示される、[アプリを実行]をクリックし、作成したアプリに移動します。

    適当に質問をしてみます
    あっという間にチャットBOTが作れてしましました

  7. せっかくなので少し改造
    あまりにも簡単にできてしまったので、少し改造してみます
    モデルがCommand R+しか選べなかったのでGPT-3.5のモデルも選べるようにしてみました
    チャット開始時の選択により分岐するIF/ELSEを追加、
    それぞれ、個別のプロンプトを用意するため、変数をj2で加工できるテンプレートを挟んでいます 公開ボタンから[更新]をクリックで更新をします
    更新後の動作を確認してみます
    GPT3.5


    Command R

    うまく動いています、やったね

感想

触ってみた感想ですが、シンプルなアプリを作るのは本当に簡単で感動しました。
今回説明できなかったですが、バックエンドサービスAPIなども公開でき柔軟性も高いです。
HTMLの埋め込みも簡単にできるのでチャットボット導入がとてもしやすくなりますね。

RAGやエージェントも作成できるためほかにもいろいろと試してみようと思います。

似たようなサービスがぼこぼこ出てきそうな気配も感じますが、勉強しといて損なさそうなだなーと感じています。

おわり