レベル別
英語トレーニングBot

第13回 アルゴリズム概論

2026.07.02

はじめに

ブラウザの使い分けについて

準備

Chrome を「2つ」開いて使い分けます

これまでと同じく、 Chrome の 「通常モード」「シークレットモード」 を 同時に開いて、 用途で使い分けます。

通常のChrome

Dify / AI

今日の 作業はこっち

シークレットモード

Google Meet (この講義)

Meet入室は こっち

前回の復習

AIに判断を丸投げしない

復習

前回やったこと

もっちゅりん診断

自由入力でAIにおすすめを考えさせると、同じ入力でも結果が変わることがありました。

選択式の診断

質問と対応表を用意すると、AIの判断基準をこちらでコントロールしやすくなりました。

AIに任せる前に、 判断基準を自分で設計する ことが大切でした。

今日作るもの

英語トレーニングBot

完成イメージ

英語トレーニングBot(レベル別)

  • ユーザーがレベルを選びます
  • 選んだレベルに合わせて処理を分けます
  • AIが無作為に考えるのではなく、用意した教材の中からBotが問題を出します
  • (余裕があれば)回答へのフィードバックも作ります

レベル設計

3段階の問題形式にします

設計

3つのレベル

Level 1

意味を確認する

英単語を見て、日本語の意味を答えます。

Level 2

例文穴埋め

英文の空欄に入る単語を答えます。

Level 3

英作文

指定された単語を使って短い英文を作ります。

出題イメージ

レベル 問題例 評価の考え方
Level 1 "available" の意味として近いものを答えてください。 大意が合っていればOK
Level 2 This service is _______ for free. 正しい単語が入っていればOK
Level 3 Use "available" in your own sentence. 自然さ・文法・意味を確認
全体像

アプリの基本の流れ

  • 問題のレベルを選ぶ
  • レベル別に処理の内容を分ける(Ifで分岐)
  • ナレッジ(英語の問題の情報源)を参照
  • 問題を出す
ポイント
AIが自由に単語を思いつくのではなく、予め用意した教材を見ながら問題を作る流れにします。

今日の新機能

Ifブロックとナレッジを使います

新機能

Ifブロックとは?

Ifブロックは、ユーザーの選択によって 処理の流れを変える ブロックです。

Level 1 を選んだ場合
→ Level 1 用の処理へ進む
Level 2 を選んだ場合
→ Level 2 用の処理へ進む
新機能

ナレッジとは?

ナレッジは、AIに参照させる教材(情報源)置き場です。単語リストや例文リストを入れておくと、AIはその内容を根拠にして問題を作りやすくなります。

AIに自由に出させる

その場で単語を考えるため、授業で使いたい教材から外れることがあります。

ナレッジを参照させる

用意した単語・例文を材料にできるので、教材として扱いやすくなります。

作業開始

Difyでアプリを組みます

作業

今日の作業の流れ

  1. チャットフローのアプリを作成します
  2. ユーザー入力でレベル選択を作ります
  3. IfブロックでLevel 1 / Level 2 / Level 3に分けます
  4. それぞれのレベル用ナレッジを接続します
  5. 各分岐に、レベル別の出題用LLMブロックを置きます
  6. プレビューで問題が出るか確認します
作業

1. アプリを作成

  1. スタジオを開きます
  2. 最初から作成を選びます
  3. チャットフローを選びます
  4. 名前を「英語トレーニングBot」にします
作業

2. ユーザー入力ブロックの作成

入力項目

  • 変数名 - level
  • ラベル名 - 学習レベル
  • 種類 - 選択式
  • 選択肢 - Level 1 / Level 2 / Level 3

変数名はあとでIfブロックやプロンプトから使います。

作業

3. Ifブロックの作成

そのときに選択したレベルに応じて、出る問題が変わるようにします。「その時によってやりたい処理を変える」には、ifブロックを使用します。

今回、ユーザー入力ブロックで作った levelの選択内容を踏まえて処理を分ける基盤を作ります。

条件の例
levelLevel 1 と等しい
levelLevel 2 と等しい
levelLevel 3 と等しい
作業

4. ナレッジを用意します

今回は、講師が用意した単語リストを使います。

  • knowledge/level1_words.md
  • knowledge/level2_words.md
  • knowledge/level3_words.md

Difyのメニューから「ナレッジ」を選択しましょう

4-1. データソース「テキストファイル」を選択

4-2. 教材ファイルをアップロード

4-3.インデックス方法「経済的」を選択

4-4.検索設定のトップK「5」に!

4-5. 埋め込みが完了すればOK!

教材例

ナレッジに入れる内容の例

level1 英単語 word: available
meaning_ja: 利用できる、手に入る
example: This service is available for free.
note: サービスや時間、商品について話すときによく使います。

level1 英単語 word: improve
meaning_ja: 改善する、上達する
example: I want to improve my speaking skills.
note: 勉強や仕事のスキルについて話すときに使いやすい単語です。

level1 英単語 word: opportunity
meaning_ja: 機会、チャンス
example: Studying abroad is a great opportunity.
note: 留学やキャリアの話でよく使います。

単語・意味・例文・補足があると、AIが問題を作りやすくなります。

作業

5. 各ブロックを追加して繋いでいきます

上の図を見ながら「ブロックを追加」して線で繋げていきましょう!

作業

Level 1用の出題LLMプロンプト

Level 1の分岐では、単語の意味を答える問題だけを作らせます。

あなたは外語大生向けの英語トレーニングBotです。

参照したLevel 1教材から、英単語の意味を確認する問題を1問作ってください。
必ず教材内の word に書かれている単語だけを使ってください。
教材にない単語を作ったり、一般知識から単語を追加したりしないでください。
参照した教材が空、または word が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。

## 参照したLevel 1教材
{{knowledge}}

## 出力形式
【レベル】
Level 1

【問題】
教材内の word から1つ選び、
"選んだ単語" の意味として近いものを日本語で答えてください。

【回答方法】
日本語で意味を答えてください。

このLLMはLevel 1の分岐だけに置きます。{{knowledge}} は、Level 1用ナレッジの取得結果を入れてください。

作業

Level 2用の出題LLMプロンプト

Level 2の分岐では、例文の穴埋め問題だけを作らせます。

あなたは外語大生向けの英語トレーニングBotです。

参照したLevel 2教材から、英文の穴埋め問題を1問作ってください。
必ず教材内の blank_question に書かれている英文だけを使ってください。
教材にない英文や単語を作ったり、一般知識から問題を追加したりしないでください。
参照した教材が空、または blank_question が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。

## 参照したLevel 2教材
{{knowledge}}

## 出力形式
【レベル】
Level 2

【問題】
教材内の blank_question を使って、穴埋め問題を1つ出してください。

【回答方法】
空欄に入る英単語を1つ答えてください。

このLLMはLevel 2の分岐だけに置きます。穴埋め用の教材には blank_questionanswer が入っています。

作業

Level 3用の出題LLMプロンプト

Level 3の分岐では、指定単語を使う英作文問題だけを作らせます。

あなたは外語大生向けの英語トレーニングBotです。

参照したLevel 3教材から、指定された単語を使う英作文問題を1問作ってください。
必ず教材内の task に書かれている指示だけを使ってください。
教材にない単語やタスクを作ったり、一般知識から問題を追加したりしないでください。
参照した教材が空、または task が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。

## 参照したLevel 3教材
{{knowledge}}

## 出力形式
【レベル】
Level 3

【問題】
教材内の task を使って、英作文問題を1つ出してください。

【回答方法】
指定された単語を使って、短い英文を1文作ってください。

このLLMはLevel 3の分岐だけに置きます。英作文用の教材には taskrubric が入っています。

テスト

プレビューで動かしてみます

  1. プレビューボタンを押します
  2. Level 1を選んでメッセージを送信します
  3. 問題が1問出るか確認します
  4. Level 2 / Level 3でも試します
まずは「問題が出る」ことを確認できればOKです。

発展

回答へのフィードバックも作ってみます

発展

Botはやりとりのたびに忘れてしまう

問題を出したあと、学生が回答を送ってきたとします。でもBotは、さっき何を出題したか覚えていません。

1回目のやりとり

Level 1を選ぶ → 問題が出る

2回目のやりとり

回答を送る → Botは問題を忘れているので採点できない

そこで、会話変数を使います。
会話変数は、Botが次のやりとりまで覚えておくためのメモ欄です。
発展

会話変数を作ります

作る会話変数
変数名:last_question
型:String(文字列)

この変数に、出題した問題文を保存します。次のやりとりで回答が来たとき、ここから問題文を取り出して評価に使います。

発展

フローを2段階にします

フローの最初に、もう1つIF/ELSEブロックを追加します。

IF/ELSE 2 の条件
  • last_question が空でない → 評価モードへ進む
  • last_question が空 → いつもの出題モードへ進む
メモが
ある?
ある →
評価へ
ない →
出題へ
発展

変数代入ブロックを追加します

出題したあとと、評価が終わったあとに、メモの書き込み・消去をします。

出題のあと

各レベルのLLMが出した問題文を、last_question上書きして保存します。

評価のあと

フィードバックを返したら、last_questionクリアします。次は出題モードに戻ります。

これで「出題 → 回答 → 評価 → また出題」のループができます。

発展

評価用LLMを作ります

問題文はメモから、学生の回答はチャットメッセージから受け取ります。英語の正解判定はLLMの知識で十分できます。

あなたは外語大生向けの英語学習サポーターです。
学生の回答を、やさしく具体的にフィードバックしてください。

## 出題した問題
{{#conversation.last_question#}}

## 学生の回答
{{sys.query}}

## 判定
「正解」「ほぼ正解」「もう少し」のどれかで判定してください。

## フィードバックのルール
- まず良い点を1つ伝える
- 必要なら直すポイントを1つ伝える
- 厳しすぎる表現にしない
- 最後に次の練習につながる一言を書く
発展

完成したフロー全体像

出題と評価の2つのモードを、会話変数1つで切り替えています。

横展開ワーク

自分ならどんなBotにしますか?

設計

同じ教材でも、Botの方向性は変えられます

初心者向け
英単語Bot
TOEIC対策Bot
留学準備Bot
旅行英会話Bot
接客英語Bot
英作文練習Bot

どんな学習者に向けるかを決めると、問題文やフィードバックの言い方も変わります。

設計

自分のBotで決めること

  1. どんな学習者向けのBotにするか
  2. どのレベルを選ばせるか
  3. レベルごとにどんな問題形式にするか
  4. フィードバックをやさしめにするか、厳しめにするか
  5. 説明を日本語にするか、英語にするか
相談

チューターさんにも確認してもらいましょう

Botの設計が決まったら、チューターさんに見てもらいましょう。

  • レベルと問題形式が合っているか
  • 教材から外れた問題を出さない流れになっているか
  • 出題まで完成しているか
  • 評価まで作る場合、正解や評価基準を渡せているか

提出について

提出

今回の提出物

  • Difyアプリの中身をエクスポートしたファイル
  • 問題が1問出ていることがわかるスクリーンショット
  • できる人は、フィードバックまで動いたスクリーンショット

提出先や細かいファイル名は、授業中に案内します。

まとめ

今日のまとめ

AIに英語を教えさせるのではなく、
英語を学ぶ流れを自分で設計する。
  • Ifブロックで、選択に応じて流れを変えました
  • ナレッジで、AIが参照する教材を用意しました
  • プロンプトで、教材をもとに出題するように指示しました

以上です!
おつかれさまでした!