50話:【Dify】「パラメーター抽出」とは?曖昧な指示をデータに変える魔法の翻訳機

テキスト: 画像上部に大きな黄色い文字で「50話:【Dify】『パラメーター抽出』とは? 曖昧な指示をデータに変える魔法の翻訳機」と記載されています。 キャラクター: 短髪で笑顔の男性が青いシャツを着て、左側でノートパソコンを操作しながら右側を指差しています。 ビジュアルエフェクト: 中央には光の輪に囲まれた円柱状のデータ構造が浮かび、その右側にはAIを象徴する脳のアイコンと、Difyのパラメータ設定画面を模したデジタルパネルが表示されています。 背景: サイバー空間のような青と金の光が散りばめられた、技術的で未来的な雰囲気の背景です。 Uncategorized

前回の振り返り

前回の第49話では、AIツール作成の最大の山場とも言える**「コード実行ブロックの実装」**についに挑戦しましたね。

「32文字以内のタイトルだけを合格にする」という厳格な検品ルールを、コピペだけで組み込む体験、いかがでしたか? AIが出したたくさんの案を、プログラムが瞬時に判定し、「✅ 合格」のものだけをズラリと並べてくれる……。

あの一瞬で、「あ、自分はいまシステムを作っているんだ!」というエンジニアのような高揚感を味わえたのではないでしょうか。

これで、あなたのAIは「ただ喋るだけ」ではなく、**「ルールを守って仕事をする」**ことができるようになりました。 しかし、自動化の道はまだ終わりません。

今回は、その「仕事ができるAI」をさらに進化させるための、**「聞き上手な秘書」**にする機能を追加していきます。


1. チャットAIの「弱点」を知っていますか?

私たちは普段、ChatGPTなどにこんな風に話しかけますよね。

「Difyの使い方について、初心者向けの面白い記事を書いて」

人間ならこれで通じます。 でも、これを「システム(Excelやデータベース)」に保存しようとすると、困ったことが起きます。

  • システムの声:「えっと…『テーマ』はどれ? 『ターゲット』は誰? 『雰囲気』は何? 全部ごちゃ混ぜで、どの列に保存すればいいか分からないよ!」

そう、AIは「会話」は得意ですが、**「事務処理(整理整頓)」**が苦手なんです。 引越しで例えるなら、食器も服も本も全部ひとつのダンボールに投げ込まれている状態。これでは新居(スプレッドシート)の棚にきれいにしまえません。

そこで登場するのが、今回の主役**「パラメーター抽出」ブロック**です。


2. 救世主「パラメーター抽出」ブロック

このブロックは、ごちゃごちゃした会話の中から、**必要な情報だけをピンセットで抜き出して、ラベルを貼ってくれる「仕分け係」**です。

ユーザーが「Difyの使い方について、初心者向けの面白い記事を書いて」と言うだけで、裏側で勝手にこう整理してくれます。

  • テーマDifyの使い方
  • ターゲット初心者
  • トーン面白い
  • 種類ブログ記事

すごくないですか? ユーザーはいちいち入力欄を埋める必要なし。 ただ話しかけるだけで、裏側ではきれいにデータが整っていく。これが「パラメーター抽出」の魔法です。


【コラム】もしユーザーが「言い忘れた」場合は?

ここで、鋭い方はこう思うかもしれません。

「もしユーザーが『Difyの面白い記事書いて』とだけ言って、ターゲット(初心者など)を言わなかったらどうなるの? エラーになるの?」

安心してください。そこが従来のプログラムと違う、AIの凄いところです。 Difyのパラメーター抽出には、主に2つの動き方があります。

パターンA:正直に「なし」とする

何も設定しなければ、AIは「ターゲットについては何も言われてないな」と判断し、その項目を**空っぽ(空欄)**にして処理を進めます。エラーにはなりません。

パターンB:AIが「気を利かせて」埋める(おすすめ!)

ここが腕の見せ所です。設定画面の「説明」欄に、こっそりこう書いておくことができます。

  • 「ターゲットが指定されていない場合は、文脈から推測するか、’一般’ と入力してください」

するとAIは、「ターゲットの指定はないけど、Difyの記事なら『ブロガー』か『初心者』かな…よし、入れておこう!」と、気を利かせて勝手に埋めてくれるのです。

言わなくても分かってくれる。まさに**「熟練の秘書」**ですよね!


3. 実践!「気の利く入力フォーム」への改造手術

では、前回の記事で作ったアプリを開いてください。 今回は、今まで使っていた「アンケート形式(項目別入力)」を卒業し、**「チャット形式(自由入力)」**に作り変えます。

ちょっとした手術になりますが、順番通りやれば簡単です!

手順①:「開始」ノードを掃除する(ここ重要!)

まずは入り口である「開始」ノードを、チャット用にスッキリさせます。

  1. 「開始」ノードをクリックして設定を開きます。
  2. 今まであった targettheme の変数を、ゴミ箱アイコン🗑️で削除してください。
  3. **「+追加」**ボタンを押し、「段落 (Paragraph)」を選びます。
  4. 以下のように入力して保存します。
    • 変数キーinput
    • ラベル名指示を入力
    • 必須:✅チェック入れる

(※入力欄が1つだけのシンプルな状態になりましたね!)


手順②:「パラメーター抽出」ブロックを配置する

次に、新しいブロックを配置します。

  1. 「開始」ノードの後ろにある「+」を押し、**「パラメーター抽出」**を選択します。
  2. 「開始」と「テンプレート(またはLLM)」の間に割り込ませる形で置きます。
Difyのワークフロー編集画面。「ユーザー入力」ノードと「テンプレート」ノードの間に、新しく「パラメータ抽出」ノード(gpt-4)が挿入されています。ノードの上には赤字で「ここに追加 ↓」という注釈があります。画面右側には「パラメータ抽出」の設定パネルが表示されており、モデルの選択や抽出するパラメータの設定を行う前の状態を示しています。

簡潔版: Difyワークフローの「ユーザー入力」と「テンプレート」の間に「パラメータ抽出」ノードを挿入し、設定を行おうとしている画面。

手順③:AIへの「仕分け指示」を入力する

ここが今回のメイン作業です! 「パラメーター抽出」ノードをクリックし、右側の設定パネルを上から順に埋めていきます。

1. 入力変数 (Input Variable)

「どの文章を分析しますか?」という設定です。

  • ここをクリックし、「開始 (Start)」の中にある input を選択します。

2. モデル (Model)

仕分け担当のAIを選びます。

  • gpt-4o-mini を選んでください(安くて高速です!)。

3. パラメーター (Parameters) ★一番大事!

ここで「仕分け用の箱」を3つ作ります。 **「+追加」**ボタンを押して、以下の通りに入力してください。

【1つ目の箱:テーマ用】

  • 名前theme
    • (※英語の小文字で入力します)
  • タイプString(文字列)
    • (※そのままでOK)
  • 説明ブログ記事のテーマやトピック
    • (※ここには日本語で、AIへのヒントを書きます)
  • 必須:✅チェック入れる

【2つ目の箱:ターゲット用】

  • 名前target
  • タイプString
  • 説明記事の読者ターゲット。指定がない場合は「一般読者」としてください
    • (※こう書くと、AIが気を利かせて補完してくれます!)
  • 必須:⬜チェック外す

【3つ目の箱:トーン用】

  • 名前tone
  • タイプString
  • 説明記事の文体や雰囲気(例:面白い、真面目)
  • 必須:⬜チェック外す
「抽出パラメーターを追加」というポップアップ設定画面。

名前: 赤い注釈で「ここを入力 ↓」とあり、theme という変数名が入力されています。

タイプ: String が選択されています。

説明: 赤い注釈の下に「ユーザーが書きたいブログ記事のテーマやトピック」という説明文が入力されています。 特定の情報をAIに識別させるための詳細設定を行っている場面です。

(※画面に theme target tone という3つの項目が並べば成功です!)

左側(キャンバス部): 「パラメータ抽出」という名前のLLMノードが配置されており、モデルとして「gpt-4o-mini」が選択されています。

右側(設定パネル):

モデル: gpt-4o-mini が設定されています。

入力変数: 「ここを入力 ↓」という赤い手書きの注釈があり、{{sys.query}} String(ユーザー入力)が指定されています。

パラメータを抽出: 「ここから追加 ↓」という赤い手書きの注釈があり、以下の3つの変数が定義されています。

theme (String): ユーザーが書きたいブログ記事のテーマやトピック。

target (String): 記事の読者ターゲット(例:初心者、主婦)。指定がない場合は「一般読者」とする。

tone (String): 記事の文体や雰囲気(例:面白い、真面目)。

指示: プロンプト入力欄は空の状態です。

手順④:迷子になった線を繋ぎ直す(忘れずに!)

最後に、とても重要な作業があります。 手順①で「開始」ノードの中身を変えたので、後ろに繋がっている**「テンプレート」ブロックの設定がエラーになっているはず**です。

  1. 「テンプレート」ブロックをクリックして開きます。
  2. {{theme}}{{target}} と書かれた変数の設定欄を見てください。
  3. 参照元が「開始」になっている部分を、ユーザー入力のinput に変更します。
  4. 新しいプロンプト
    Plaintext コピーしてご利用ください

    あなたはプロのWebライターです。 以下の情報を元に、読者が思わずクリックしたくなる魅力的なブログ記事のタイトル案を5つ作成してください。 【入力情報】 ・記事のテーマ: {{theme}} ・ターゲット読者: {{target}} ・記事の雰囲気(トーン): {{tone}} 【制約事項】 ・文字数は35文字前後を目安にしてください(短すぎず長すぎず)。 ・出力はタイトル案のみを箇条書きで出してください。 ・番号や「」などの記号は不要です。 ・前置きや挨拶は不要です。

これで、データのバトンパスが**「開始 → パラメーター抽出 → テンプレート」**と正しく繋がりました!


4. 実際に動かしてみよう

プレビューで、適当にこう入力してみてください。 「在宅ワークの始め方について、主婦向けに優しく教えて」

実行結果の「トレーシング(追跡)」画面を見ると……

  • theme: 在宅ワークの始め方
  • target: 主婦
  • tone: 優しい
左側(ワークフロー図): 「完成図」という赤い文字が上部に記載されており、以下の5つのノードが線で結ばれています。

ユーザー入力: 必須項目として query 変数が設定されています。

パラメータ抽出: LLMモデル gpt-4o-mini を使用しています。

テンプレート: テキストの整形や構造化を行うノード。

LLM: モデル gpt-4 を使用し、最終的なコンテンツを生成します。

出力: 最終結果として {{LLM.text}} String を出力するように設定されています。

すべてのノードの右上には、実行が正常に完了したことを示す緑色のチェックマークが付いています。

右側(テスト結果パネル): 「テスト結果 →」という赤い手書きの注釈があり、以下の5つのブログ記事タイトルの案が表示されています。

"主婦でもできる!在宅ワークの始め方ガイド"

"自宅で稼ぐ!主婦のための在宅ワーク入門"

"主婦必見!在宅ワークを始めるためのステップ"

"自宅で仕事!主婦のための在宅ワークスタートガイド"

"主婦の時間を活用!在宅ワークの始め方教えます"

成功です! AIが文脈を読んで、勝手にデータを分解してくれました。 これで、あなたのツールは「入力フォーム入力の手間」からユーザーを解放しました。


5. なぜ「スプレッドシート連携」の前にこれをやるの?

「で、これの何が嬉しいの?」と思いましたか? 実は、これこそが**次回への「最強の布石」**なのです。

次回、私たちはデータを「Googleスプレッドシート」に自動保存します。 スプレッドシートには**「A列」「B列」「C列」**という決まった枠がありますよね。

  • A列には「テーマ」を入れたい。
  • B列には「ターゲット」を入れたい。

もし今回のブロックを使わず、ごちゃ混ぜの文章のままだったら、A列に長文をドカンと入れるしかありません。それでは後で分析もできませんよね。

今回、データをきれいに「変数(パーツ)」に分解しました。 つまり、スプレッドシートの各列に、カチッ、カチッとデータを流し込む準備が整ったということです。


まとめ:データ整理こそ、自動化の第一歩

お疲れ様でした! 一見地味な「パラメーター抽出」ブロックですが、これが使えると、あなたのツールは一気に**「プロっぽい挙動」**になります。

  • ユーザー(あなた):自由に話しかけるだけで楽チン。
  • システム(Dify):裏で完璧にデータを整理してくれる。
  • 言い忘れても:AIが気を利かせて補完してくれる。

まさに、優秀な秘書を雇ったような感覚です。

今回も結構間違いながらジェミニに聞きつつ修正して

何とか完成しました。だんだん難しくなってきてますが頑張ります!

これでやっと、荷造り(データの構造化)は完璧です。 次回は、このきれいに整理されたデータをトラックに載せて、Googleスプレッドシートへ自動配送します。

次回、**第51話「スプレッドシート連携・前編(環境変数とGASの準備)」**でお会いしましょう。 ここからが、本当の自動化(RPA)の世界です!

またさらにレベル上がりそうですね。是非お楽しみに!

コメント

タイトルとURLをコピーしました