皆さんは自作のチャットボットを作成したいと思ったことがございますでしょうか?チャットボットはOpen AIのChat GPTやAnthropicのClaudeといったテキスト形式でAIと会話するように情報を得ることができる点において非常に使いやすいツールとなっています。
さらに、自作のチャットボットを作るメリットとして一般的には知られていない自分に必要な情報を読み込ませることで、自分のためだけのチャットボットを作成できるという点があります。
このようなチャットボット生成ツールとして最近注目を浴びているのがDifyというツールです。今回は、自作チャットボットの効果的な利用方法やDifyを使った実際にチャットボットアプリを作る様子を実際にご紹介したいと思います。
目次
1章 Dify・自作チャットボットの概要
Difyとは?
Dify AIは、生成型AIアプリケーションの開発と運用を効率化するための革新的なプラットフォームです。Difyの最大の特徴として、ノーコードでアプリケーションを作成することができるということがあります。従来までの自作のチャットボットを作る大きなハーードルとして、コーディングなどの知識を要するという点がありましたが、この点は解決できたと言えるでしょう!
Dify AIは、生成型AIアプリケーションを開発するために必要な機能を網羅しています。以下に、主要な機能を紹介します。
AIワークフロー
ビジュアルなキャンバス上でAIワークフローを構築し、テストできます。複雑なタスクを処理するために、独立して様々なツールを使用するカスタムエージェントを作成することも可能です。

画像出典 Dify
包括的なモデルサポート
OpenAIやAnthropicなど、数十のモデルプロバイダーからの数百の独自または オープンソースのLLMと、GPT、Mistral、Llama2、およびOpenAI API互換のモデルをシームレスに統合できます。

画像出典 Dify
RAGパイプライン
RAGとは、チャットボットに事前にドキュメントを読み込ませて回答を得る手法です。独自の情報や確実な情報をソースを元にチャットボットに回答させることができる利点があります。
ドキュメントの取り込みから検索まで、RAGに必要なすべての機能を網羅しています。PDF、PPT、その他の一般的なドキュメント形式からのテキスト抽出をすぐに使えます。
RAGについて詳しく知りたい方はこちらの記事をご覧ください!
自作チャットボットを作成するメリット
ここまで聞いてそもそも自作チャットボットを作成する必要性を感じられていない方もいるでしょう。自作チャットボットを利用することのできる環境として1番に上がるのが企業です。
社内チャットボット
社内チャットボットを作ることで、社内での業務をスムーズにすることができます。例えば営業部門で営業先の会社名や進捗状況を書かれているドキュメントを読み込ませたとします。
営業先の会社について知りたいことや、担当者がわからないときにChatGPTに尋ねるように
⚪︎⚪︎社の担当の方は誰ですか?また、プロジェクトの内容や提示金額について教えてください。
といったプロンプトを打ち込むとこれに答えてくれます。
対顧客用チャットボット
お客様向けにチャットボットを作成することもできます。例えば、役所などではさまざまな書類の手続きがさまざまな窓口に分かれており申請先や方法がわからなくなることがありますよね。
これに問い合わせる人が多いと役所側も対応する窓口を教えるための窓口といった新たな人員を割く必要が出てきます。これをチャットボットで解決できるのです。
公式サイトに
⚪︎⚪︎の更新はどの窓口に行けば良いですか?また、必要な書類は何ですか?
と尋ねるだけでお客様は気軽に情報を知ることができますし、役所側も人員を他の他の窓口に割くことができるわけです。
ここまでのお話からチャットボットの有用な使い方はご理解いただけたでしょうか?
2章 チャットボットは信用できる?
ここまで聞いてチャットボットに興味を持っていただけたかと思います。ここでチャットボットについていくつか懸念点もあるかと思います。
チャットボットの精度について
皆さんは、ChatGPTなどを使っていて明らかに誤りである回答が返ってきたこともあるかと思います。

画像出典 OpenAI
例えば、こちらはChat GPTのGPT3.5という1番性能が低いモデルに総理大臣の名前を聞いた様子です。2024年現在の総理大臣の名前は岸田文雄ですが、一つ前の総理大臣の名前を出してしまっています。
このようにChatGPTが誤りの情報を出すのにはいくつかの原因が考えられます。一つが、「学習データが最新ではない」ということ。もう一つが「学習データにない情報を無理やり回答している」ということです。どちらにせよチャットボットの回答の精度は学習データによって左右されることが多いということがわかります。
一方自作チャットボットではこちら側で必要な情報を必要な時期に学習させることができます。今回の例で言えばリアルタイムでの総理大臣の名簿を学習させていればChatGPTはこちらの回答に答えることができるということです。このように自作チャットボットではリアルタイムでのカスタマイズされた情報を読み込ませることができるのです。
社内チャットボットの情報漏洩の危険性は?
社内チャットボットとして社内の文書をチャットボットに学習させる際に学習データが外部に漏れることはないかという心配もあるでしょう。
これについては、ローカル環境やセキュリティがしっかりしたツールで文書を読み込ませることによって対応することができます。ローカルLLMについて詳しく知りたい方はこちらをご覧ください。簡単にいうと、自分のパソコンの中にチャットボットの環境を整えることで、Chat GPTを使ってもOpenAI社のサーバに情報が送られないようにすることができるのです。
また、マイクロソフトのAzureなどのセキュリティ環境が担保されている場所に文書をアップロードすることも重要です。
3章 Difyでチャットボットを作成してみた!
今回は、上の画像のように四字熟語とその意味を書かれたドキュメントをチャットボットに読み込ませてこの文書を元に回答させていきたいと思います。

画像出典 Dify
Difyのホームページから今回は画面赤枠の「テンプレートから作成」からアプリを作成したいと思います!

画像出典 Dify
テンプレートからはさまざまな用途のアプリケーションを選ぶことができます。今回は、RAGを使うので、「Knowledge Retreival ± Chatbot」を選択します。

画像出典 Dify
アプリケーションの名前や説明を設定しましょう。
このように自動でワークフローを作ってくれました。このワークフローを使うことでRAGのチャットボットを作ることができます!後行うことは、読み込むドキュメントを選択するだけです。
流れとしては、ドキュメントをLLMに読み込ませ、LLMにしたプロンプトの回答をAnswerが返ってくるというようになります。

画像出典 Dify
このように、「ナレッジ」からドキュメントを追加することができます。

画像出典 Dify
こちら実際にpdfに書かれた四字熟語の意味を問うてみると。ドキュメントに書いた通りの意味をそのまま回答してくれました。引用したドキュメントを明記してくれるのがありがたいですね。複数のドキュメントを使っている際にはソースを確認できるのは必要な機能です。

画像出典 Dify
コードを利用

画像出典 Dify
Difyはノーコードでアプリケーションを作れるというお話をしましたが、もちろんコードを使った本格的なコードを描くこともできます。
こちらは、スプレッドシートの情報をGAS(google apps scripts)から抽出し、URLで取得します。このURLから実際にpythonコードで文字として取得してLLMに流します。この取得した文字列がLLMへのテキストプロンプトとなり、回答を表すことができます。
このように、簡単なノーコードツールから本格的なコードを用いたツールまでさまざまなものを作ることができるのです。
3章 まとめ
今回は、自作チャットボットを作る意義から実際にDifyを用いて作るまでを紹介していきました。業務効率化でAIを用いるにあたってチャットボットは1番効果を感じやすいものであるのではないでしょうか?
ぜひ皆さんも自分に合ったチャットボットを作ってみてください。
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント