第13回 アルゴリズム概論
2026.07.02
ブラウザの使い分けについて
これまでと同じく、 Chrome の 「通常モード」 と 「シークレットモード」 を 同時に開いて、 用途で使い分けます。
Dify / AI
今日の 作業はこっち
Google Meet (この講義)
Meet入室は こっち
AIに判断を丸投げしない
自由入力でAIにおすすめを考えさせると、同じ入力でも結果が変わることがありました。
質問と対応表を用意すると、AIの判断基準をこちらでコントロールしやすくなりました。
英語トレーニングBot
3段階の問題形式にします
意味を確認する
英単語を見て、日本語の意味を答えます。
例文穴埋め
英文の空欄に入る単語を答えます。
英作文
指定された単語を使って短い英文を作ります。
| レベル | 問題例 | 評価の考え方 |
|---|---|---|
| Level 1 | "available" の意味として近いものを答えてください。 | 大意が合っていればOK |
| Level 2 | This service is _______ for free. | 正しい単語が入っていればOK |
| Level 3 | Use "available" in your own sentence. | 自然さ・文法・意味を確認 |
Ifブロックとナレッジを使います
Ifブロックは、ユーザーの選択によって 処理の流れを変える ブロックです。
ナレッジは、AIに参照させる教材(情報源)置き場です。単語リストや例文リストを入れておくと、AIはその内容を根拠にして問題を作りやすくなります。
その場で単語を考えるため、授業で使いたい教材から外れることがあります。
用意した単語・例文を材料にできるので、教材として扱いやすくなります。
Difyでアプリを組みます
入力項目
level変数名はあとでIfブロックやプロンプトから使います。
そのときに選択したレベルに応じて、出る問題が変わるようにします。「その時によってやりたい処理を変える」には、ifブロックを使用します。
今回、ユーザー入力ブロックで作った levelの選択内容を踏まえて処理を分ける基盤を作ります。
level が Level 1 と等しいlevel が Level 2 と等しいlevel が Level 3 と等しい
今回は、講師が用意した単語リストを使います。
knowledge/level1_words.mdknowledge/level2_words.mdknowledge/level3_words.mdDifyのメニューから「ナレッジ」を選択しましょう
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が問題を作りやすくなります。
上の図を見ながら「ブロックを追加」して線で繋げていきましょう!
Level 1の分岐では、単語の意味を答える問題だけを作らせます。
あなたは外語大生向けの英語トレーニングBotです。
参照したLevel 1教材から、英単語の意味を確認する問題を1問作ってください。
必ず教材内の word に書かれている単語だけを使ってください。
教材にない単語を作ったり、一般知識から単語を追加したりしないでください。
参照した教材が空、または word が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。
## 参照したLevel 1教材
{{knowledge}}
## 出力形式
【レベル】
Level 1
【問題】
教材内の word から1つ選び、
"選んだ単語" の意味として近いものを日本語で答えてください。
【回答方法】
日本語で意味を答えてください。
このLLMはLevel 1の分岐だけに置きます。{{knowledge}} は、Level 1用ナレッジの取得結果を入れてください。
Level 2の分岐では、例文の穴埋め問題だけを作らせます。
あなたは外語大生向けの英語トレーニングBotです。
参照したLevel 2教材から、英文の穴埋め問題を1問作ってください。
必ず教材内の blank_question に書かれている英文だけを使ってください。
教材にない英文や単語を作ったり、一般知識から問題を追加したりしないでください。
参照した教材が空、または blank_question が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。
## 参照したLevel 2教材
{{knowledge}}
## 出力形式
【レベル】
Level 2
【問題】
教材内の blank_question を使って、穴埋め問題を1つ出してください。
【回答方法】
空欄に入る英単語を1つ答えてください。
このLLMはLevel 2の分岐だけに置きます。穴埋め用の教材には blank_question と answer が入っています。
Level 3の分岐では、指定単語を使う英作文問題だけを作らせます。
あなたは外語大生向けの英語トレーニングBotです。
参照したLevel 3教材から、指定された単語を使う英作文問題を1問作ってください。
必ず教材内の task に書かれている指示だけを使ってください。
教材にない単語やタスクを作ったり、一般知識から問題を追加したりしないでください。
参照した教材が空、または task が見つからない場合は、問題を作らず「教材を取得できませんでした」と答えてください。
## 参照したLevel 3教材
{{knowledge}}
## 出力形式
【レベル】
Level 3
【問題】
教材内の task を使って、英作文問題を1つ出してください。
【回答方法】
指定された単語を使って、短い英文を1文作ってください。
このLLMはLevel 3の分岐だけに置きます。英作文用の教材には task と rubric が入っています。
回答へのフィードバックも作ってみます
問題を出したあと、学生が回答を送ってきたとします。でもBotは、さっき何を出題したか覚えていません。
Level 1を選ぶ → 問題が出る
回答を送る → Botは問題を忘れているので採点できない
last_questionこの変数に、出題した問題文を保存します。次のやりとりで回答が来たとき、ここから問題文を取り出して評価に使います。
フローの最初に、もう1つIF/ELSEブロックを追加します。
last_question が空でない → 評価モードへ進むlast_question が空 → いつもの出題モードへ進む出題したあとと、評価が終わったあとに、メモの書き込み・消去をします。
各レベルのLLMが出した問題文を、last_question に上書きして保存します。
フィードバックを返したら、last_question をクリアします。次は出題モードに戻ります。
これで「出題 → 回答 → 評価 → また出題」のループができます。
問題文はメモから、学生の回答はチャットメッセージから受け取ります。英語の正解判定はLLMの知識で十分できます。
あなたは外語大生向けの英語学習サポーターです。
学生の回答を、やさしく具体的にフィードバックしてください。
## 出題した問題
{{#conversation.last_question#}}
## 学生の回答
{{sys.query}}
## 判定
「正解」「ほぼ正解」「もう少し」のどれかで判定してください。
## フィードバックのルール
- まず良い点を1つ伝える
- 必要なら直すポイントを1つ伝える
- 厳しすぎる表現にしない
- 最後に次の練習につながる一言を書く
出題と評価の2つのモードを、会話変数1つで切り替えています。
自分ならどんなBotにしますか?
どんな学習者に向けるかを決めると、問題文やフィードバックの言い方も変わります。
Botの設計が決まったら、チューターさんに見てもらいましょう。
提出先や細かいファイル名は、授業中に案内します。