Dify×Google AI Studioで簡単LLMアプリ開発 ― GeminiとRAGでごみ分別AIを作ってみた【株式会社ライトコード】
はじめに
LLMアプリをコードなしで視覚的に開発できるプラットフォーム「Dify」を触ってみました。
Difyとは何か
Difyは、プロンプト管理、RAG(検索拡張生成)、APIによる外部連携までを一つのGUI上で完結できるオープンソースのツールです。
環境は「クラウド版」と「セルフホスト版」の2種類があり、用途に応じて使い分けられます。
※1 クラウド版に含まれるLLMの無料枠はDifyプラットフォームが提供するものです。別途、自身で用意したAPIキーを使うことも可能です。
※2 メッセージ数はDifyプラットフォーム側のカウントで、Difyアプリ上でチャットをやり取りした回数です。LLMプロバイダー側のレート制限とは別の制限です。
クラウド版のSandboxプランは環境構築が不要で試せるため、とりあえず触ってみたい場合に向いています。
セルフホスト版はデータを外部に送りたくない場合や、制限なしで検証したい場合に向いているかと思います。
今回はセルフホスト版を中心に、動作検証を行いました。
なお、セルフホスト版のLLMには、開発者向けに無料枠が提供されているGoogle AI Studio(Gemini API)を活用しています。
アカウント登録後すぐにAPIキーを発行でき、無料枠の範囲内であれば費用なしで使い始められます。
今回のような検証を行うにあたって、少し試してみたいんだよな…という場合に便利です。
この記事で作るもの
検証の題材として「ごみ分別AI」を構築しました。
チャット形式のWebアプリで「◯◯(ごみ名)は△△市では何ごみですか?」と入力すると、DifyのRAG(ナレッジ機能)が特定の自治体のルールを参照し、分別方法を返す仕組みです。
全体の作業の流れはざっくり以下のとおりです。
- ローカルにセルフホスト版Difyを立てる/クラウド版のアカウント版を取得する
- まずはシンプルなチャットフローを作り、LLMとつなぐ
- 自治体ごとの分別情報をナレッジに登録し、RAGを構築する
- 最後にWebアプリからDify APIを叩いて動かす
それでは順を追って説明していきます。
Difyの環境準備
クラウド版のセットアップ
公式サイト(Dify.ai)からGitHubやGoogleアカウントでサインアップするだけです。アカウント登録後、すぐにダッシュボードから利用できます。
セルフホスト版(Docker)の構築
公式リポジトリをクローンし、docker compose upを実行するだけで、Difyを動かすためのバックエンド、フロントエンド、ベクトルDB(Weaviate)など、必要なコンテナ群が一発で立ち上がります。
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d起動後、http://localhostにアクセスして管理者アカウントを作成すれば準備完了です。
基本的なチャットフローの構築
ダッシュボードの「アプリを作成する」から「チャットフロー」を選択します。
Difyでは、各処理のまとまりである「ノード」を視覚的に繋いでアプリを作っていきます。
まずはRAGを挟まない、シンプルな「開始ノード → LLMノード →回答ノード」の構成を作成しました。
LLMにGoogle AI Studioを接続する
ここではDocker版のDifyでLLMと接続する手順について説明します。
Difyで「設定」→「モデルプロバイダー」を開き、Googleを選択してAPIキーを入力します。
設定が完了したら、LLMノードでGeminiのモデルを選択します。
フローを実際に動かしてみる
フロー画面右上の「プレビュー」ボタンから動作確認ができます。 試しに
「ペットボトルは沖縄市では何ごみですか?」
と入力してみます。
無事フローが動作し、LLMが一般的な知識で回答してくれました。
これだけでもちょっと感動。
といっても、これでは普段LLMに直接質問しているのと変わりませんし、この段階では自治体ごとのルールも一切考慮されていません。
ということで、ここからRAGを組み込んでいきます。
RAGを使ってごみ分別に対応する
ナレッジ機能について
LLMは学習データに含まれない情報(例えば社内の情報など。今回のケースでは「各自治体独自のごみ分別ルール」)を答えることができません。
これを補うのが、外部ドキュメントを検索してLLMに文脈として与えるRAG(検索拡張生成) という仕組みです。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/55721
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「データエンジニア」「ゲームエンジニア」「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】をのぞいてみてください。