
本講座(Dify講座 第2弾)の内容紹介になります。
初めてUdemyで講座受講される方向けに簡単な使い方の解説をしています。
講座で扱っている資料をまとめて保存しています。必要に応じてダウンロードしご利用ください。
Difyの概要・特徴と、本講座はDockerやGitが前提知識として必要になるため、
セクション1の途中からDocker・Gitの解説をしております。
すでに知識がある場合はスキップいただいてセクション2から動画視聴ください。
2025年2月末 Difyのバージョンが1に上がりました。
バージョン1になったタイミングで下記の機能が追加されました。
- マーケットプレイス
- プラグイン
これまでのモデルやツールはプラグインとして、
マーケットプレイス上で追加インストールが必要になりますので、
その方法を解説しています。
OpenAIのAPI登録方法について解説しています。
OpenAIのAPI登録方法について解説しています。
Dockerの概要や簡易年表について解説しています。
Dockerができる事を5つに絞りできるだけわかりやすく解説しています。
mac PCでDockerの管理ソフトであるDocker Desktop のインストール方法とターミナルの操作方法を解説しています。
WindowsにDockerDesktopをインストールする方法を解説しています。
イメージをカスタマイズするためのDockerfileの設定内容について解説しています。
コンテナを複数管理・構築するためのdocker-compose.ymlについて解説しています。
GitとDockerを使ったDifyコミュニティ版(ローカル版)のインストール方法を解説しています。
Dify起動時の管理者アカウントの設定、ログイン、パスワード忘れ時の対応、アップデート方法を解説しています。
Dify管理画面の初期設定方法を解説しています。(LLM設定、言語、タイムゾーン)
ワークフローとチャットフローの違いを解説後、新規でワークフローを作成します。またブロックや変数の考え方について簡単に解説しています。
HTTPリクエストブロック、コードブロック、イテレーションブロック、テンプレートブロックなどを前処理、本処理、後処理に分けて解説をしています。
文字列、数値、オブジェクト、配列について改めて紹介をしています。
外部APIから情報取得する際にJSON形式の場合が多いため、事前にJSON形式について解説しています。
JSON形式をオブジェクトに変換する際にコードブロックを使うと便利なので、コードブロックの仕組みについて事前に解説しています。
日本語でコード生成する機能が追加されましたので使い方やプロンプト例を紹介しています。
後処理として整形して描画するためのテンプレートブロック(Jinjaテンプレート)について解説しています。
3パターンの練習を通じて、JSON形式、コードブロック、テンプレートブロック、イテレーションブロックを扱う方法を学んでいきます。
外部APIからの情報取得を想定し、入力としてJSON形式の情報を渡しつつ、オブジェクトに変換する方法を解説しています。
後処理として配列をわかりやすく表示するためにJinjaテンプレートを使って描画をしています。
2つ目の例として、JSON形式の情報を変換し配列を抽出する方法を解説しています。
イテレーションブロックに配列を渡し、LLM(gpt-4o-mini)を使って文書生成を繰り返す方法を解説しています。
既存の配列にLLMで生成した配列を組み合わせる方法を解説しています。
このセクションのまとめになります。
HTTPリクエストブロックを扱うための前提知識となるWeb通信(GET・POST)について解説をしています。
今回の講座では楽天市場APIと接続して動作確認しますので、ログイン方法、アプリ作成方法、テストフォームの使い方などを解説しています。
まずは前処理として楽天APIキーを環境変数として埋め込み、HTTPリクエストブロックを接続して情報取得するところまでを確認しています。
楽天市場APIからJSON(文字列)で情報取得できたので、続いてIF/ELSEで分岐しつつコードブロックを使って必要な情報だけを抜き取った配列を作成しています。
必要な情報だけに加工した配列を、イテレーションで繰り返し文書生成します。生成した文章と元の文書を配列に結合する方法を解説しています。
結合した配列をテンプレートブロックを使って見やすくする方法を解説しています。
外部サービス(GAS)からDify APIに接続する概要を解説しています。(Web版とNgrokの2パターンを紹介しています。)
Ngrokサイトへログインし、Dockerイメージをpullして起動・表示確認をする方法を解説しています。
ワークフローを作成し公開する方法と、公開後にAPIキーを発行する方法を解説します。
Googleドライブ上でスプレッドシートを作成し、APIキーを設定する方法を解説しています。
Dify APIアクセスのページも参照しつつ今回の処理に関わる箇所を解説しています。
Dify APIサーバと通信するために必要なheaderやpayloadなどを解説し、必要なコードをGASに貼り付けていきます。
UrlFetchApp.fetch()関数を使い実際にDify APIサーバにアクセスし情報を取得する方法を解説しています。
作成したGASをカスタム関数として、スプレッドシートから使えるようにし、キーワードを自由に変更できるようにする方法を解説しています。
このセクションのまとめになります。
ナレッジ(RAG)の概要について、Dify講座第1弾と同じ内容になりますが解説をいたします。
ナレッジのセキュリティについて、Dify講座第1弾と同様になりますが解説をいたします。
Firecrawl OSS版の概要・インストール方法・Difyとの連携方法を解説しています。
Firecrawlを使ってナレッジとして登録し、チャットフローを使って動作確認する方法を解説しています。
環境変数(.env)で設定できる内容を簡単に紹介した後に、ナレッジにアップロードできるファイルサイズの上限変更を試してみます。
NGINXにBasic認証をかけ、第3者からアクセスが来た際にユーザー入力を必須にする方法を解説しています。
Difyが提供しているUIテンプレートの概要とインストール方法について解説しています。
Webapp-conversationをインストールし接続設定をして、ブラウザで表示確認する方法を解説しています。
GoogleChrome拡張機能も追加しつつ、コンポーネントの確認方法、ボタンの色の変更方法などを簡単に解説しています。
XServer VPSへ登録しイメージを使ってインストール・起動する方法を解説しています。
XServerVPSのイメージが少し古いので、アップデート方法を解説しています。
このセクションのまとめになります。
ボーナスレクチャーはudemy講座内で唯一 宣伝を行っていい場所になっております。
この講座は【Dify講座第2弾】になります。
生成AIを組み合わせ、高度で専門的なAIアプリを構築できるDifyにはたくさんの機能が搭載されています。
楽天市場などの外部APIと通信して情報を取得したり、
繰り返しブロックを使って生成AIを複数回活用したり、
ナレッジやクローリングの上限制限を気にせずに扱う方法もあるため、
今回の【Dify講座第2弾】にギュッと詰め込んで講座としてまとめる事にしました。
この講座ではコミュニティ版(ローカル版)の環境構築方法から、
外部APIとの連携では必須になるJSON形式の解説、JSONからオブジェクトへの変換や配列への変換、
イテレーションブロックを使った繰り返し方法などを、
いくつかのパターンを繰り返し実施することで、効率的に身につける事ができるように構成しています。
またDifyをAPIサーバーとして起動し、外部サービスから起動する方法や、
Webサイトの情報をナレッジとして登録し返答に用いる方法も解説しています。
さらにBasic認証をつけることでパスワードを知っている人だけがチャットボットを扱えるようにしたり、
ユーザー画面のカスタマイズ方法も解説しています。
エンジニア寄りの専門用語・専門知識も含まれておりますが、
しっかりとDifyを身につけたい場合はぜひこの講座をご活用いただければ幸いです。
講座の内容
- Difyコミュニティ版のインストール方法
- JSON形式の扱い方
- JSONからオブジェクトへの変換
- JSONから配列への変換
- イテレーションブロックを使った繰り返し処理
- HTTPリクエストブロックを用いて外部APIに接続する方法
- DifyをAPIサーバーとして起動し外部サービスから起動する方法
- Firecrawlローカル版のインストール方法
- Firecrawlローカル版を使い無制限にクローリング(スクレイピング)する方法
- 環境変数の設定項目
- Basic認証を設定する方法
- ユーザー画面のカスタマイズ方法
- XServerVPSへイメージを使ったインストール方法
- Dockerの概要・インストール方法
- Git/GitHubの概要・操作方法
収録時のバージョン
Dify v0.8.0〜v0.9.1
(この講座ではWeb版(SaaS版)は扱っていませんのでご注意ください(【Dify講座第1弾】で扱っております)
追加情報
2024年11月 コードジェネレーター追加
2025年3月 Dify v1 アップデートに伴いマーケットプレイス、プラグインの解説追加