見出し画像

勝手にDify化計画①

割引あり

※有料エリアについて
note を使い始めなのでいろいろ実験中です。有料エリアとありますが、DSL ファイルをダウンロードできるようにしてあるだけです。またその DSL ファイルも、リツイートいただければ無料でダウンロードできます。

はじめに ~勝手にDify化計画とは~

「勝手にDify化計画」とは、ネット上の題材を勝手に選んで勝手にDifyで構築することで、Difyの利用と理解を促進するプロジェクトです。Difyで何かを試したいけれど、何をすればいいか分からない→結局Difyを触らない、のネガティブサイクルからの脱却を図ります。


今回のDify化対象

今回はこちらの note で紹介されている「ターゲット分析プロンプト」を勝手に Dify 化していきたいと思います。

author: GenAI研究所 さん
description: こちらの note では、マーケティングで役立つ実用的な7つのプロンプトが紹介されています。

実行手順ビフォーアフター

従来の生成AIにおける実行手順

  1. プロンプト内の入力欄に必要事項を記入
    ・製品・サービス名
    ・ターゲット顧客の属性

  2. 生成AIでプロンプトを実行

  3. 結果が出力されたら、続けて「成果物を出す。最初から最後まで実行」と入力して実行

Dify化後の実行手順

  1. アプリを開く

  2. 入力フィールドに必要事項を記入(またはデモモードをon) > Start Chat

  3. 「開始」ボタンを押す

Dify化に向けての整理

考えたこと・工夫したこと

  • 極力手間を減らしたい① → ワンボタンでポン出し

    • 本来は一度出力後、その出力に続けて「成果物を出す。最初から最後まで実行」を入力して再送信するが、せっかくなのでフロー化してそれを一発でポン出ししたい。

    • 開始時は必要事項記入+「開始」ボタンを押すだけの親切設計。

    • その代わり、ポン出し後のやり取りは行わない前提。終わるたびに「New Chat」を促す。

  • 極力手間を減らしたい② → demoモード

    • いざ試行する際、入力項目をいちいち考えたり入力したりするのが面倒だったりするので、あらかじめ項目が設定されたdemoモードを設置して簡単に呼び出せるようにする。

仕様・実施環境

  • Dify:v0.8.2 Xserver VPS版(4GBメモリ 仮想4コア NVMe 100GB)

  • アプリタイプ:チャットボット > Chatflow

  • モデルプロバイダー:

    • システム推論モデル:Gemini / Gemini 1.5 Flash(LLMならなんでも)

  • 使用ブロック

    • 開始、IF/ELSE、変数代入、LLM、回答

  • 機能:会話の開始(開始ボタン)

Chatflowの全体像

構築手順

  1. Chatflowの新規作成

  2. 機能の設定

  3. 会話変数の設定

  4. 後述の各ブロックの説明を参考に、Chatflowの全体像のようにブロックを組み立てる

1. Chatflowの新規作成

アプリを作成する > 最初から作成 > チャットボット > Chatflow(アプリ名は適当に)

2. 機能の設定

機能 > +機能を追加 > 会話の開始をオン

  1. 会話開始:開始ボタンを押してください

  2. 開始質問:開始

開始ボタン

3. 会話変数の設定

会話変数 > +変数を追加 から arg1 と arg2 を定義し、それぞれにdemoモード用のデフォルト値を設定。
arg1:
 タイプ:string
 デフォルト値:(何でも)※demoモード用
 説明:製品・サービス名
arg2:
 タイプ:string
 デフォルト値:(何でも)※demoモード用
 説明:ターゲット顧客の属性

会話変数:arg1
会話変数:arg2

4. 各ブロックの説明

【開始】

必要事項用の入力フィールド(arg1、arg2)を追加する。
 →いずれも 短文 / 最大長を100 / 必須をオフ に
demoモード用のスイッチを追加する。
 →選択 / オプション on, off

arg1、arg2、demoを追加
demoスイッチ

【IF/ELSE】開始チェック

入力クエリが「開始」かどうか、demoモードがオンかどうかをチェック。

  • 入力が「開始」でない
    → ①再始動を促すメッセージを出して終了

  • 入力が「開始」&demoモードが「on」ではない
    → ②手動で設定したパラメータで上書きした後③へ

  • 上記以外(入力が「開始」&demoモードが「on」)
    → ③プロンプトを実行

IF CASE 1
開始/sys.query でない
開始

ELIF CASE 2
開始/demo でない
on

①再始動を促すメッセージを出して終了

【回答】return -1(エラー)

エラーメッセージを出すだけ。

再度[New chat]から新規チャットを開始してください。

②手動で設定したパラメータで上書きし③へ

【IF/ELSE】入力チェック

demoモードがオフの場合、入力情報が欠けていたら終了させたいのでそのために入力情報をチェックする。

  • arg1、arg2いずれかが空
    → ②-a ①と同様に再始動を促すメッセージを出して終了。

  • arg1、arg2いずれも設定されている
    → ②-b それぞれを会話変数に代入する。

IF
開始/arg1 空
  OR
開始/arg2 空

②-b それぞれを会話変数に代入する

【変数代入】arg1


【変数代入】arg2


③プロンプトを実行

【LLM】Plan

モデル:Gemini 1.5 Flash

SYSTEM
ターゲット顧客を深く理解し、効果的なマーケティング戦略を策定する。
USER
入力欄:
・製品・サービス名: {{#conversation.arg1#}}
・ターゲット顧客の属性: {{#conversation.arg2#}}

実行:
Output 1: ターゲット分析に必要なステップの分解
・P1: ターゲット顧客の属性を詳細に分析する
・P2: ターゲット顧客の行動パターンを調査する
・P3: ターゲット顧客のニーズを特定する
・P4: ターゲット顧客の競合商品・サービスに対する意識を調査する
・P5: ターゲット顧客の購買行動を分析する
Output 2:
・製品・サービス名: {{#conversation.arg1#}}
・ターゲット顧客の属性: {{#conversation.arg2#}}
・goal: {{#conversation.arg1#}}のターゲット顧客を深く理解し、効果的なマーケティング戦略を策定する。
Output 3: {{#conversation.arg1#}}のターゲット顧客を深く理解し、効果的なマーケティング戦略を策定する。
Output 4:
・O1: ターゲット顧客の属性を詳細に分析し、顧客像を明確にした。
・O2: ターゲット顧客の行動パターンを調査し、顧客の行動特性を把握した。
・O3: ターゲット顧客のニーズを特定し、顧客が求める価値を理解した。
・O4: ターゲット顧客の競合商品・サービスに対する意識を調査し、競合との差別化ポイントを分析した。
・O5: ターゲット顧客の購買行動を分析し、顧客の購買プロセスを理解した。

【LLM】Action

モデル:Gemini 1.5 Flash
コンテキスト:Plan / text

SYSTEM
ターゲット顧客を深く理解し、効果的なマーケティング戦略を策定する。
USER
{{#context#}}
成果物を出す。最初から最後まで実行

【回答】return 0(正常終了)

Action/text

---
再び実行する場合は、[New chat]から新規チャットを開始してください。

使い方

・とりあえずdemoモードで試行したい

  1. demo を on にする

  2. Start Chat

  3. 開始ボタンを押す

・手動で情報を入力して実行したい

  1. 「製品・サービス名」と「ターゲット顧客の属性」を入力する

  2. demo を "on 以外"にする(空白のままでもよい)

  3. Start Chat

  4. 開始ボタンを押す


まとめ

DifyのChatflowを使って、ネット上の題材をDify化してみました。
※本来は2手目で終了せずに、その後もやり取りを繰り返してブラッシュアップしていくのが、オリジナル制作者の意図かもしれませんが…。

Difyを使って何をすればいいか迷っている方、この記事を「Dify写経」に活用されてはいかがでしょうか。

「うまく動かない」など、記事に関する疑問や質問などありましたら、気軽にDMください。


※基本的にここまでの内容がすべてです。
 以下の有料エリアでは、めんどくさがりな人向けに DSL ファイルがダウンロードできるだけ、です。

ここから先は

0字 / 1ファイル

この記事が気に入ったらサポートをしてみませんか?