見出し画像

DifyとGeminiAPIで簡単構築!ふり返りをAIがコメントバック!先生の負担を激減させる魔法のワークフローを作った話(DSLファイルプレゼント)

1.この記事で伝えたいこと

「なんらかのふり返りや感想」に対して自動で「励ましのコメントバックのたたき台ができるよ」ってこと

この記事で伝えたいこと

その「一連の自動コメントバックの機能」「どのスプレッドシートでも使える」ってこと

次の記事で伝えたいこと

2. もうコメントバックに悩まない


こんばんは。嬉しい三連休ですね。
小学校で働くささです。

授業後、子ども一人ひとりのコメントに目を通し、丁寧にフィードバックを返す作業は、想像以上に時間と労力を要します。質の高いフィードバックを提供したい、でも時間がない…多くの先生方が抱えるこの悩みを、私も日々感じていました。

コメントバックに教育的効果があるのか?
そもそもコメントバックの費用対効果って?

といった議論をここでするつもりはありません。
今回はLLM(大規模言語モデル)のAPIを使ってふりかえりに対してコメントバックのたたき台を作ってくれるAIツールを作った話をお伝えします。


3.スプシで作ったGemini関数は実用化せず・・・

以前、AIの練習を兼ねてGoogleスプレッドシート上でGeminiAPIを呼び出して自作のGemini関数を作り、その関数を使ってフィードバックを試みたこともありました。大変反響の大きかった記事です。

しかし次のような課題があり、実用化にはいたらなかったのです。

  • スプレッドシートごとにGASの設定が必要

  • AIのフィードバック品質にばらつきがある

  • 様々な形式で集まるコメントの一元管理が難しい

4.そこでDifyでコメントバックワークフローを作ってみた

これらの課題を解決するため、ローコード開発プラットフォームDifyに挑戦し、授業でのふり返りや感想に対して自動で分析とフィードバックを可能にするワークフローを構築してみました。

以下のXのポストの動画からイメージをつかんでもらえればと。

この記事では、DifyとGeminiがどのように連携し、コメントの収集からフィードバックまでを自動化するのか、その全貌をご紹介します。ちなみにGeminiAPIでなくても使えますが、無料でできるメリットから私はGeminiがオススメです。


5.そもそもDifyとは?

Difyは、AIアプリケーションを視覚的に構築できるローコード開発プラットフォームです。今回は「ワークフロー」と呼ばれる機能で、複数の処理を組み合わせて柔軟なAIシステムを構築できます。

プログラミングの専門知識がなくても、ブロックを配置して接続していくだけで、複雑な処理の流れを設計できるのが大きな魅力です。今回のフィードバックシステムでも、この特徴を活かして以下のような処理を実現しています

  • 入力されたコメントの判定(空欄チェック)

  • AIによるフィードバック生成

  • 文字数のカウントと調整

  • 条件に応じた処理の分岐

次のセクションでは、実際のワークフロー構築の詳細について解説していきます。どうぞ、読み飛ばしてください。

6.Difyのワークフローを各ブロックごとに紹介します(作ってみたい人だけ読んで)

実際のワークフロー画面

以下の手順でワークフローが構成されています。
1. 開始ブロック:

  • 入力として「query」という変数を受け取ります。これは、スプレッドシートから取得したコメントが入る場所です。

  • この変数には最大5000文字の段落形式のテキストが設定できます。

  • この変数は敢えて必須にしてありません。(スプシと連携するときのため→ポイントです)

2. IF/ELSEブロック:

  • 入力された「query」変数が空でないか判定します。スプシ内で空欄セルに対応するためこのブロックを追加しています。まぁ、なくても全然OKです。

  • もし「query」が空でない場合(コメントが存在する場合)、処理はIF分岐へ進みます。

  • もし「query」が空の場合(コメントが存在しない場合)、処理はELSE分岐へ進み、ワークフローは終了します。

出力変数は「text」にしておきます。その他の終了ブロックと揃えておきます。

3. IF分岐(コメントが存在する場合):

  • コメント返すブロック(LLMブロック): Gemini 2.0 Flashという大規模言語モデル(LLM)を使って、コメントに対するフィードバックを作成します。

Systemプロンプト: 「あなたはユーザーの学習を熱心にサポートするAIアシスタントです。ユーザーが学んだ内容について、まるで親しい友人と言語り合うように、優しく丁寧に会話をします。あなたの目標は、ユーザーの学習内容を深く理解し、効果的な質問を通じて、ユーザー自身が理解を深め、知識の穴や誤解に気づき、さらに学習意欲を高めることです。」という設定で、AIアシスタントとしてふるまいます。

Systemプロンプト

Userプロンプト: 言語は日本語で。
まなぶのペルソナと話し方
声のトーン: 優しく、落ち着いたトーン。相手の話をじっくり聞く姿勢を示す。「なるほど、そうなんですね。」「素晴らしいですね!」のように、共感と励ましの気持ちが伝わるように話します。
<以下省略>

Userプロンプト
  • コンテキスト: 入力されたコメント(query)をLLMに渡します。

  • Userプロンプトには日本語での対話を促す指示に加え、まるでAIアシスタントが、相手の話を丁寧に聴き、共感と励ましの気持ちが伝わるように話すよう指示する詳細なプロンプトが設定されています。

Geminiの場合はシステムプロンプトとユーザープロンプトをいれる必要があるみたい。他のAPIはちがうんですよね。どうやら。
  • 文字数を制限するブロック: Gemini 2.0 Flashを使って、コメントの文字数を調整し、100文字以内に収めます。

システムプロンプト:新米の先生が児童のふり返りに対してコメントバック「{{コンテキスト}}」しました。 冗長的であったり、不必要な文字を修正したお手本のコメントバックをしてください。

システムプロンプト
→{{コンテキスト}}は前のブロックからtextを入れる

・言語は日本語で。
・文字数は100字以内で。
・トーンは受容的にやさしい言葉遣いで.
・自己紹介はカットする。
・本題からはじめること
・問いかけ中心でなく、励ます方向で

ユーザープロンプト

4. 「文字数を数える」コードブロック:

  • 文字数をカウントし、変数「result」に格納するPythonコードを利用しています。

  • コード書けなくても安心してください。☆マークからコードを自動で生成してくれます。

def main(arg1: str) -> dict:
    return {'result': len(arg1)}
ちなみにスクリプトはなんとなく日本語で入力すると
コードを書いてくれるので初心者でも安心です。
コードジェネレーターで大抵のことはできるみたい。
Python書けなくても。

5. 「130文字を基準に判定する」IF/ELSEブロック:

  • 先ほどカウントした文字数resultが130文字以上であるかどうかを判定します。

    • もし130文字以上であれば、次に「端的にする」ブロックへ進みます。

    • もし130文字以下であれば「一発成功」ブロックへ進みます。

6. 「端的にする」LLMブロック(130文字以上の場合):

  • Gemini 2.0 Flashを使って、生成されたコメントをより端的に修正します。

    • Systemプロンプト: コンテキストを受け取り、伝えたい内容をそのままにして短くまとめてくださいという指示がされています。

    • Userプロンプト: 100文字以内で短くする指示と、丁寧な口調で語りかける指示が設定されています。

7. 「一発成功」終了ブロック(130文字以下の場合):

  • 文字数を制限するブロックからの出力をそのまま出力します。

  • 出力変数は「text」にしておきます。その他の終了ブロックと揃えておきます。

8. 「修正あり」終了ブロック:

  • 端的に修正した結果、または、130文字以下だった場合は、ここで出力結果を返し、ワークフローが終了します。

  • 出力変数は「text」にしておきます。その他の終了ブロックと揃えておきます。

7. ワークフロー使ってみると・・・

実際にこのAIコメントバックワークフローを使ってみた結果をご紹介します。

例えば、前回の記事で紹介した先生方へのスプレッドシート研修会のふり返りに対するコメントバックをしてみましょう。

・プルダウンを使ったことはこれまでもあったけれど、プルダウンの範囲の指定の仕方や、他シートからプルダウンの範囲を指定できることは知らなかったので驚いた。

・パズルのようで面白かった。

参加した先生の感想・ふり返り

このコメントに対してコメントバックしたもらった結果が次の通り。

プルダウンの学習、素晴らしいね!パズルのように面白かったとのこと、興味深いです。特に範囲指定に驚きがあったんだね。具体的にどんなところが面白かったか、もう少し教えてくれると嬉しいな。きっと、色々な発見があったんだろうね。これからも一緒に学んでいこう!

コメントバック

この例からもわかるように、AIは単にコメントを返すだけでなく、内容を理解し、学習を促すような温かい言葉でフィードバックを生成してくれます。さらに、文字数制限を加えることで、長文になりがちなAIの出力を、より的確で読みやすいコメントに調整することが可能になります。

8. このワークフローをスプレッドシート連携させることで実務でもっと使いやすくなる

次回は、このDifyで作成したワークフローとGoogleスプレッドシートを連携させることで、さらに利便性を高める方法についてお伝えする予定です。実務でもっと使えます。お楽しみに!!


9. 紹介したこのワークフローのDSLファイルをプレゼントします

まだまだ試作ですが、このDSLファイルをプレゼントします。ほしい方は「スキ」していただいた後に「コメント欄」で教えていただければ何らかの方法でお渡しできます。


私が参加させてもらっているAIについて学ぶ教育関係者向けの勉強会でも今回のAIツールを紹介しています。もし興味あればどうぞ。


いいなと思ったら応援しよう!