49話:【Dify実践】コピペ5分!「文字数チェッカー」を実装する完全図解マニュアル

ブログ「第49話 [Dify実践] コピペ5分!『文字数チェッカー』を実装する完全図解マニュアル」のアイキャッチ画像。 背景: 夜の都会の風景がデジタルアート風に描かれています。 中央左: 「5min」と書かれた青いストップウォッチと、Difyのワークフローが表示されたノートパソコン、そして文字数カウントが表示されたアプリ画面のイメージが配置されています。 右側: 笑顔で親指を立てる(グッドポーズ)中年男性のイラストが描かれています。 テキスト: 黄色と白の縁取り文字で、記事のタイトルが大きく強調されています。 Uncategorized

予告通り、今回は**「実践編」**です!

第46話で作った「ブログタイトル生成ツール」、覚えていますか? キーワードを入れるとAIがタイトル案を出してくれる、あのかわいい相棒です。

今回は、その相棒に、前回(第4748話)学んだ**「コード実行ブロック(自動検品機能)」**を実際に組み込んでみます。

「うわ、難しそう……」と思いましたか? 大丈夫です。やることは**「ブロックを置いて、線を繋いで、コピペする」**の3ステップだけ。所要時間はたったの5分です。

愛車(自作ツール)をピットインさせて、高性能なパーツを取り付けるようなワクワク感。 さあ、一緒にやってみましょう!


ステップ1:愛着あるツールを「改造」する準備

まずは、Difyにログインして、以前作った「ブログタイトル生成ツール」の編集画面を開いてください。

targetとtopicという2つの必須変数が設定されています。

テンプレート: 入力内容をプロンプトに整形するノード。

LLM: モデルに「gpt-4」を使用したチャット処理ノード。

出力: LLMから生成されたtextStringを表示する最終ノード。 各ノードの右上には処理完了を示す緑色のチェックアイコンが表示されています。

あなたの画面には、 「開始」→「テンプレート」→「LLM(タイトル生成)」→「終了」 という流れがあるはずです。


ステップ2:魔法の箱「コード実行」を配置する

今回雇った検品係(コード実行)を入れる場所は、「LLM(タイトル生成)」のすぐ後ろです。 AIがタイトルを作った直後に、検品させたいからですね。

  1. 「LLM」ブロックと「終了」ブロックの間にある線を見てください。
  2. 「LLM」の後ろにある「+」マーク(または線の上の+)をクリック。
  3. 出てきたメニューから**「コード実行」**を選びます。
Difyのワークフローに「コード実行」ノードを追加し、Pythonコードを記述している設定画面。LLMの出力結果をさらにプログラムで加工するステップを説明しています。

すると、オレンジ色の「コード実行」という箱が、「LLM」と「終了」の間に割り込む形で置かれます。 これが、今回雇った**「検品係」の席**です。


ステップ3:最難関?「データのバトンパス」設定

ここが今日一番の山場ですが、**「バトンパス」**だと思えば簡単です。

「前の人(LLM)が作ったタイトル」を、「次の人(コード実行)」に渡してあげる設定をします。これを「変数設定」と言います。

  1. 「コード実行」ブロックをクリックして詳細画面を開きます。
  2. 「入力変数」という項目の横にある「+追加」を押します。
  3. 変数名(キー)はそのままでOK(通常は arg1x になっています)。
  4. ここが重要! 値の欄で「選択」を選び、**前段の「LLM」の中にある「text(生成されたテキスト)」**を指定します。

【画像指示】

(※入力変数の設定画面。「値」のプルダウンから「LLM > text」を選んで線が繋がった状態の拡大図)

これで、「AIが作ったタイトル(バトン)」が「検品係(コード実行)」の手元に渡るようになりました!


ステップ4:魔法の呪文をコピペする

バトンを受け取った検品係に、「どうやって検品するか」のマニュアルを渡します。 自分で書く必要はありません。

今回は、**「32文字以下の合格タイトルだけを表示し、不合格は捨てる」**という厳しいマニュアルを用意しました。以下のコードをコピーしてください。

【今回のコピペ用コード】

(※以前のコードとは違い、合格したタイトルだけを厳選して表示します!)

Python

def main(arg1: str) -> dict:
    # AIが出したタイトルリストを「改行」でバラバラにする
    titles = arg1.split('\n')
    result_list = []
    
    for t in titles:
        # 空っぽの行は無視する
        if not t.strip():
            continue
            
        # 文字数を数える(記号などは邪魔なので一旦消して数える)
        clean_t = t.replace('"', '').replace("'", "").strip()
        count = len(clean_t)
        
        # 【ここがポイント】32文字以下の「合格」だけをリストに入れる
        if count <= 32:
            result_list.append(f"✅【{count}文字】{t}")
            
    # もし合格が1つもなかった場合のメッセージ
    if not result_list:
        return {"result": "😭 32文字以内のタイトルが見つかりませんでした。"}

    # 合格リストだけを返却
    return {"result": "\n".join(result_list)}

コピーしたら、コード入力エリアにある元々のコードをキーボードのDeleteキーなどで完全に消して空っぽにしてから、これを貼り付けます。 (※元々の文字が残っているとエラーの原因になります!)

コード実行」ノードの詳細設定画面。

変数入力部分: 赤い文字で「変数を入力 ↓」と注釈があり、arg1 にLLMの出力である textString が紐付けられています。

コード記述部分: 赤い文字で「コードを入力 ↓」と注釈があり、Python3のスクリプトが記述されています。

コードの内容: AIが生成したタイトルリストを改行で分割し、各行の文字数をカウント。32文字を超えている場合は「❌」、以内であれば「✅」の絵文字を文字数と共に付与して、結果をリストとして返す処理が書かれています。

これで検品マニュアルの配布は完了です!


ステップ5:最後の仕上げと「テスト実行」

最後に、検品係(コード実行)から、出口(終了ブロック)へ線を繋ぎ直します。

  1. 「コード実行」ブロックの右側の丸ポチから線を引っ張り、「終了」ブロックへ繋ぎます。
  2. 「終了」ブロックの中身も変更します。出力変数を「LLMのtext」から**「コード実行のresult」**に変えてください。
Difyワークフローの最終ステップである「出力」ノードの設定画面。右側のパネルには「変数を入力を ↓」「ここを変更 ↓」という赤い注釈があります。出力変数 text の参照先が、以前の「LLM」ノードから、新しく作成した「コード実行」ノードの result String に切り替えられている様子を示しています。

簡潔版: 「出力」ノードの設定を更新し、Pythonコードで処理した後の結果(文字数チェック済みのリスト)を最終的な回答として表示するように変更した画面。

さあ、いよいよ緊張の瞬間です! 右上の「実行開始」ボタンを押して、実際に動かしてみましょう。 あなたのツールには「ターゲット」と「記事のテーマ」という2つの入力欄があるはずです。

テスト入力例

ターゲットDifyに興味があるブログ初心者 記事のテーマDifyのコード実行ブロックの便利な使い方

入力したら、青い**「実行開始」**ボタンをポチッ!

成功時の画面(こうなれば大成功!)

実行結果の画面に、以下のように**✅がついた合格リストだけ**が表示されましたか?

Plaintext

✅【31文字】Difyのコード実行ブロックでブログ作業を自動化する方法
✅【29文字】初心者必見!Difyコード実行ブロックの基礎知識
✅【30文字】コピペで完了!Dify文字数チェッカー導入ガイド

どうでしょう? AIが考えた案の中から、SEO合格ラインの精鋭たちだけがズラリと並んでいるはずです。 これで、あなたのツールに「自動検品機能」が実装されました!


【コラム】「指示(プロンプト)」を直せば、コードは不要?

ここで、鋭い方はこう思うかもしれません。 「AIへの指示(プロンプト)で『32文字以内で書いて』と指定すれば、こんなコード要らないんじゃない?」

実は、私も最初はそう思っていました。 でも、実際にやってみると……AIは計算が苦手なので、10回に1回くらい平気で「35文字」を出してくるんです(笑)。

そこで、この構成が最強になります。

  1. プロンプト(指示):AIに「短く作れ」と意識させる(入口の努力)
  2. コード(検品):それでもはみ出したヤツを門前払いする(出口の保証)

この**「二重チェック体制」を作ることで、あなたのツールは「人間が数え直す必要ゼロ(100%信頼できる)」**という、プロ仕様のツールになるのです。


まとめ:あなたはもう「エンジニア」の入り口にいる

おめでとうございます! たった5分の作業でしたが、今あなたがやった「変数を繋ぐ」「コードで処理する」という作業は、立派なシステム開発です。

  • Before:AIが出した案を目視で数えていた。
  • After:クリック一発で、文字数チェック済みの合格リストが出てくる。

この「楽さ」を知ってしまうと、もう手作業には戻れませんよね。

上級者が難しいコードを使えばかなり便利で複雑なアプリができると

思いますが、まずは第一歩という事で実際に作ってみました。

さて、きれいに検品されたデータが手に入りました。 こうなると、次はこう思いませんか? 「この合格リスト、自動でスプレッドシートに保存しておきたいな……」

次回は、いよいよDifyから飛び出して、Googleスプレッドシートと連携する**「データ管理の自動化」**へ進みます。 コピー&ペーストの手間すら、過去のものにしてしまいましょう。

是非お楽しみに!

コメント

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