difyというサービスをご存知でしょうか?
2024年の5月にリリースされた後、その便利さがゆえかあっという間に世間(?)に広まったサービスですが、プログラミングは一切不要でマウスをポチポチするだけでChatGPTをはじめとするLLMを使ったサービスを作成・デプロイすることができます。
詳しい使い方は他の記事に任せるとして、今回はdifyを使って簡単なサービスを作ってみようと思います。
ルートエフ・データムの代表である大庫のBlog「あしたのルート」の情報を元に会話をしてくれるチャットボットを作ります。技術的な用語でいうとRAG(Retrieval-Augmented Generation:検索拡張生成)というものです。
■ 準備するもの
- difyのアカウント
- 使用するLLMのAPI情報
- 「あしたのルート」のタイトル・記事・urlをクローリングしたテキストファイル
1はdify公式サイトの手順に従ってアカウントを作成します。
2について、今回はGroq Cloudのllama3-70B-8192を使います。Groq CloudはllamaやmixtralといったオープンソースのLLMで高速な推論を実現するサービスで、現在β版ということでAPIを無料で使用することができます。
3については、今回はpythonを使ってクローリングしたcsvデータでナレッジを作成します1。Difyではcsv等のテキストデータを自動的にベクトル化してくれる機能があります。ベクトル化のモデルも様々なものから選択できますが、今回はデフォルト(無料)のベクトルエンジンを使用します。
さて、準備が整ったらアプリケーションを組み立てていきます。パーツを追加してそれを線でつなぐだけなので、とても簡単です。流れとしてはユーザーの入力(会話)に関連する情報をナレッジから検索してチャットボットにわたす、となります。少しだけ手を加えた点としてはユーザーの入力をそのままクエリにせずに、クエリを生成するためのLLMを間に挟んでいるところです。こうすることで、知りたいこと以外のノイズを除去することができます。
このようにしてアプリケーションを作ったら「公開する」ボタンを押すだけでURLが発行されて実際に使えるようになります。サイトに埋め込むためのコードも生成してくれるのでそれをコピペするだけで、このブログにも貼り付けることができます。
実際に作ったものを下に埋め込んでみたので、ぜひ触ってみてください(サービスを停止することもありますことご了承ください)。なんかイマイチだな~と感じるかもしれませんが、GPTをはじめとする有料のサービスに置き換えることで精度も良くなると思いますので、気になる方はぜひご自身で作ってみてください!
r.suzuki