はじめに
最近「Dify」の話題をよく聞きます。
ノーコードで生成AIを使ったアプリケーションが作れるということでエンジニアではない人が試してみているケースも多いようです。
今回はそんな「Dify」と「Ollama」というツール、そしてオープンソースのLLMを使ってローカル完結型のチャットボットを作ってみようと思います!
Ollamaとは
Ollamaは、Llama 2などの大規模言語モデルをローカルで簡単に実行・管理できるオープンソースツールです。オープンソースLLMと組み合わせることでプライバシーを保護しつつ生成AIを利用することができます。
オープンソースLLM
オープンソースLLMは、ソースコードが公開された大規模言語モデルです。誰でも無償で利用・改変でき、透明性が高く、カスタマイズも可能です。代表例にはMeta社のLlamaがあり、様々なアプリケーションの基盤として活用されています。
日本語に特化したLLMもあり、今回はその中から「Llama-3-ELYZA-JP-8B」を使ってみます。
セットアップ
1. Ollama
以下のページからダウンロード&インストールします。
2. Llama-3-ELYZA-JP-8B(オープンソースLLM)
以下のページからモデルをダウンロードします。
ダウンロードしたモデルがある場所に「Modelfile」という名前のファイルを作成します。
Modelfileには以下のように記載しておきます。
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
Modelfileを作成したら以下のコマンドを実行してモデルを作成します。
ollama create elyza -f Modelfile
3. Dify
以下の公式ドキュメントに従ってDockerでローカル環境を用意します。
ログインしてホーム画面が表示されたら設定の「モデルプロバイダー」を開きます。
Ollamaの「Add Model」から設定画面を開き、以下の通り設定して保存します。
※Dockerで起動しているためlocalhost:11434では接続できません!
作ってみる
それぞれのセットアップが完了したらDifyでワークフローを作っていきます。
1. アプリ作成
ログインしてホーム画面が表示されたら「最初から作成」のワークフローを選択して「作成する」をクリックします。
作成すると以下のような画面になるためブロックをつなげてワークフローを作ります。
LLMのブロックには入力値をマスキングするプロンプトを入力しました。
2. 試してみる
ワークフローが組めたら「実行」をクリックして試してみます。
こちらのジェネレーターでCSVデータを作成し、中身をinput欄に入れて「実行を開始」をクリックします。
結果の精度はイマイチでしたが、プロンプトを調整すればもう少し良くなりそうです。
まとめ
ここまで読んでいただきありがとうございます!
今回はDifyとOllama、そしてLlama-3-ELYZA-JP-8BというオープンソースのLLMを利用して完全にローカルで完結した生成AIアプリを作ってみました!
実はDify×OllamaのコラボはDifyの公式ドキュメントにも手順が記載されています!
皆さんもぜひ試してみてください!