はじめに
前回に続いて、生成AI関連ネタです。
連休で試したこと(含むその過程)を、複数回に分けて紹介してゆきます。
本稿は、3本目です。
1本目:生成AI、はじめました ~環境の準備とお試し~
2本目:生成AI、はじめました ~Difyのデプロイとプロバイダー登録~
3本目:生成AI、はじめました ~Difyのチャットボット作成~ ★本稿
箸休め:生成AI、はじめました ~Difyのチャットボット作成Ⅱ ハイプリッド検索~
4本目:生成AI、はじめました ~PCのリソース使用量確認~ (!Coming Soon!)
本稿で紹介すること
- 最もシンプルなチャットボット作成
- ナレッジ登録
- ナレッジを参照したチャットボット作成
- チャットボットお試し
1.最もシンプルなチャットボット作成
「スタジオ」ビュー、左側の「最初から作成」を押下します。
アプリのアイコンはデフォルトまま、アプリの名前と説明をそれっぽく入力します。
「スタート」「LLM」「回答」という3つのブロックをつなげたフローがデフォで組まれています。
右上の「プレビュー」を押下し、その場でチャットアプリを実験します。
とりあえず、動いています。ノーコードでチャットアプリを作れてしまえていますね、すごい。。。
2.ナレッジ登録
「ナレッジ」ビュー、左側の「ナレッジベースを作成」を押下します。
いろいろな拡張子のファイルを、D&Dで登録できます。
以下のページを、予めPDF形式で保存し、D&Dでアップロード対象に登録します。
検索設定はデフォ≒経済的のまま登録します。
(予めEmbeddingモデルを登録してインデックス方法に高品質を選択すれば、ハイブリッド検索の仕組みにできるようです。が、それはまた別の機会に。)
その後、(恐らくは)スクレイピング→チャンキング→エンベディングの処理が走ります。
全てのファイルに対して処理が完了するまで待ちましょう。
3.ナレッジを参照したチャットボット作成
改めてチャットアプリのフローに手を加えて、ナレッジ参照するようにします。
「スタート」「LLM」の間のコネクタで、「知識検索」を押下します。
「知識検索」の設定パネル、「ナレッジベース」の項で「+(プラス)」ボタンを押下し、前のステップで登録したナレッジを選択します。
「LLM」のブロックを選択します。
「LLM」の設定パネル、「コンテキスト」の項で「知識検索/{x}result」を選択します。
そのすぐ下にある「SYSTEM(プロンプト)」には以下を定義しています。(ここも微調整したいですが、一旦後回し)
あなたはITに詳しい親切なアシスタントです。
ユーザからの質問に対して、ナレッジPDFに基づいて回答してください。
#ナレッジPDF
4.チャットボットお試し
Dify自体についての質問です。
予め登録したナレッジに基づいて回答を生成しており、回答の最後に引用したPDFファイルが添えられています。きちんとナレッジを参照しているようですね。
画面右上の「公開する」ボタンを押下します。
Dify内部的にどう扱いが変わるのか把握できていませんが、Tableauで管理者がDashboardを一般ユーザ向けに公開する行為に相当するようなイメージですね・・・
Streamlitで簡単に作ったチャットボットUI風な見た目で使えるようになりました。
まとめ
とりあえず、ノーコードでチャットボットを作ることができました。
Pythonプログラムを書いて細かいロジックを含めたパイプラインを組み立てることもできはしますが、Difyは便利かつ強力ですね・・・
無駄にページ数が多く読んでられない製品マニュアルや、社内規程や技術資料といったものをナレッジ登録して、ハイブリッド検索するチャットボットを作るのは1つのユースケースかもしれませんね。
そのためには、EmbeddingモデルをLM Studioで提供する方法と合わせて、連載ネタにはなりそうな予感。
ではあるけれども!次回は、PCリソースをどれくらい食って動いているのかモニタリングしようと思います。
























