この記事はSchoo Advent Calendar 2025の17日目の記事になります。
こんにちは!株式会社Schooプロダクト企画部門に所属している@reonanjoです。
本記事では、今年Schooサービスサイトに実装された授業検索AIアシスタントについて、Difyを用いてどのように開発・リリースしたのか、そのプロセスをご紹介します。
特に以下のような方に読んでいただければ幸いです。
- LLMアプリ開発によるサービスグロースを検討している方
- Difyを活用して、社内の業務効率化や機能開発を推進しようと考えている方
1. はじめに: 解決したいユーザー課題
2025年12月現在、Schooの公開動画本数は9,000本を超え、国内最大級のオンライン学習プラットフォームへと成長を遂げました。ビジネススキルに加え、英会話・ヘルスケア・マネーリテラシーなど幅広いテーマをカバーしており、職種や年代を問わず、誰もが好奇心を持って自分に合った学びを深められます。
しかし、コンテンツの充実とともに、「いま必要な授業を見つけられない」という課題も顕在化していました。
従来のキーワード検索は、「Excel ピボットテーブル」のように欲しい情報が明確な場合には機能していました。一方で、「部下の育成に困っている」「最近なんだか仕事がうまくいかない」といった漠然とした悩みや文脈を含んだ問いに対しては、最適な授業をヒットさせるのが難しく、ユーザーが9,000本の中から「今の自分に必要な一本」にたどり着くハードルは上がり続けていました。
この課題を打破するために、私たちは個人のスキルや興味、学習目的、抱えている課題に応じて生成AIが授業を提案する「授業検索AIアシスタント」を企画しました。 そして開発にあたり、非エンジニアでも高速にPDCAを回して回答品質を向上させるため、開発プラットフォームとして「Dify」を選定しました。
2. 【実装編】「授業検索AIアシスタント」の裏側
Difyの選定が決まった後、私たちは早速実装フェーズに入りました。ここからは、実際にプロダクトにどう組み込んだのか、そして高品質な回答を導き出すためにどのような「チャットフロー」と「RAG」を構築したのか、その試行錯誤のプロセスをお話しします。
チャットフロー構築
Difyの「チャットフロー」機能を使用し、ユーザーの問いかけに対して最適な授業を返すまでのロジックを組みました。単純な一問一答ではなく、以下のようなフローで処理しています。
- ユーザー意図の分類:
ユーザーの入力が「学びたいテーマ・悩み」「サービスに関する質問」「日常会話」のどれに当たるかをLLMによって判別します。ブロック内の「高度な設定」に詳細な定義プロンプトを記述することで、分類精度の向上を図りました。
使用しているブロック:質問分類器
-
授業検索(RAG):
Schooが持つ9,000本の授業データベースから、関連する授業情報を取得します。ここでの精度向上には苦戦しましたが、後述するメタデータの整備(データクレンジング)によって解決しました。
使用しているブロック:知識検索 -
回答の生成と整形:
検索結果を、以下の手順で見やすく整形しています。
- 構造化データの抽出(Structured Output):
検索結果からタイトル、URLなど、最終アウトプットに必要な情報をJSON形式で抽出します。LLMブロックで「Structured Output」を設定することで、後続の処理で扱いやすい形に制御しています。
使用しているブロック:LLM
- テンプレートによるUIの調整:
Jinja2テンプレートを使用し、JSONデータを表形式に変換してリッチな表示を作成します。 これにより、Schooのコンテンツの魅力であるサムネイル画像を表形式で表示し、より直感的に「どんな授業か」を理解できるようにアウトプットを整えました。
使用しているブロック:テンプレート
RAGの精度向上
今回の開発で最大の難関は、RAG(Retrieval-Augmented Generation)の精度向上でした。当初はデータベースの授業情報をそのまま連携していましたが、検索ノイズが多く、的外れな結果が返ってきてしまったのです。
そこで注力したのが「データクレンジング」です。
授業の「概要テキスト」や「文字起こしテキスト」全てを検索対象にすると、情報量が多すぎて文脈と関係のない授業がヒットしてしまいます。そこで、「授業のターゲット」や「得られるスキル」などのメタデータを事前に整備・構造化し、必要最低限かつ核心をついた情報から検索できるようにチューニングを行いました。これにより、検索精度を劇的に改善することができました。
iframeによるプロダクトへの実装
Schooサービスサイトへの実装自体は非常にシンプルでした。 Difyには標準でWebアプリとして公開する機能(埋め込み機能)が備わっており、発行されるiframeタグをサイトの該当箇所に埋め込むだけで、チャットUIが完成します。
通常、チャットボットをゼロから実装しようとすれば、UI構築や通信周りに相応の工数がかかります。しかし今回は、ここをDifyに任せることで、開発リソースの大部分を「見た目を作る」ことではなく、「中身(プロンプトや検索精度)を磨く」ことに集中投下できました。
Dify導入がもたらした「副次的効果」
今回の「授業検索AIアシスタント」のリリースは、当初の目的であったユーザー課題の解決だけでなく、社内組織に対してもポジティブな「副次的効果」をもたらしました。
-
社内メンバーの業務活用
Schooの法人向けサービスでは、営業やCS担当が企業の課題に合わせて最適なコンテンツを提案しています。これまでは膨大な動画の中から探していましたが、現在はAIアシスタントが強力なサポーターになっています。 クライアントの課題感をAIに投げるだけで、推奨授業とその理由が即座に出力されるため、提案準備にかかる工数が削減されました。また、社員が日常的に利用してフィードバックをくれることで、回答精度を継続的に改善することができています。 -
あらゆる領域へのAI活用促進
これまで社内ではAI活用があまり進んでおらず、Difyの活用事例もゼロでした。しかし今回、非エンジニア主導で機能を爆速リリースしたことが刺激となり、プロダクト開発以外でもAI活用が始まっています。 一例として、今夏に開催した開発職インターンシップでは、「ハッカソン形式!現場エンジニアとAI開発を習得できる3daysインターン!」というテーマでDifyを活用したイベントを開催するに至りました。 「授業検索AIアシスタント」の開発を皮切りに、Schooは「AIを積極活用し、事業を加速させる組織」へと進化し続けています。
おわりに
今回リリースした「授業検索AIアシスタント」は、私たちにとってゴールではなく、新しい学習体験への入り口に過ぎません。私たちは、AIをさらに活用していくことで「ユーザー一人ひとりに寄り添った学習体験」を提供していくことが可能と考えています。
- 「あなたは先週この授業を見ていたから、次はこの授業で知識を深めるのがおすすめです」
- 「この分野が苦手なようだから、基礎から学べるこのコースはどうですか?」
まるで専属のメンターが隣にいるかのように、ユーザー一人ひとりの成長に合わせて、最適な学習ロードマップを動的に描き出す。そんな未来の学習体験を創造していきたいです。
明日の12月18日は@himari_karesakiの担当になります。お楽しみに!
Schooでは一緒に働く仲間を募集しています!

