Open Chat
本サイトはJSPS科研費(課題番号23K02737)の助成を受けた研究成果を基に作成されています。
AIチャットボットはパソコンでの使用を強くお勧めいたします。※タブレット端末でチャットが突然消えることがあります。

【開発ログ】Dify × Google連携による「学習指導案生成アプリ」構築の思考プロセスと技術選定

Gemini3Proと議論したことを、技術選定のドキュメントとして記事化しました。
「なぜMicrosoftではなくGoogleを選んだのか」「どうやって技術的な課題を乗り越えたのか」という意思決定のログとして残します。

1. 企画のスタートと要件定義

目的:
Dify(生成AI)を活用し、教員向けの「学習指導案作成支援ツール」を開発したい。

初期要件:

  1. AIエンジン: Difyを使用(プロンプト構築やモデル管理のしやすさから)。
  2. 提供形態: ホームページに埋め込んで公開し、広く使ってもらう。
  3. 成果物: チャットの返答だけでなく、最終的に「ファイル(指導案)」として保存できるようにしたい。

2. 技術選定フェーズ:Google vs Microsoft

開発プラットフォームとして、組織で導入されている「Microsoft 365 (Teams)」を使うか、汎用的な「Google (GAS)」を使うか、比較検討を行った。

検討1:Microsoft Teams & Power Platform での可能性

組織内ツールとしては優秀だが、今回の「公開ツール」という要件に対しては以下の壁があった。

  • ライセンスの壁:
    • Difyと通信するための「HTTPリクエスト」機能が、Power AutomateではPremium(有償)扱いとなる。個人開発や無料提供のツールとしてはランニングコストが見合わない。
  • 公開の壁(致命的):
    • Power Appsで作ったアプリをホームページ(iframe)に埋め込んでも、Microsoftアカウントのログイン画面が表示されてしまう。
    • 組織外のユーザーに使わせるには「ゲスト招待」などの複雑な管理が必要で、不特定多数への公開には不向き。

検討2:Google (GAS + Spreadsheet) での可能性

一方、Google環境については以下の利点が確認できた。

  • コスト優位性:
    • GASの UrlFetchApp を使えば、Dify APIとの連携が無料で行える。
  • 公開の柔軟性:
    • GASウェブアプリとしてデプロイし、権限を「全員(匿名含む)」に設定すれば、ログインなしで誰でもアクセス可能
    • iframe埋め込み許可の設定(setXFrameOptionsMode)もコード1行で可能。

👉 結論:Google構成を採用

「ホームページで一般公開する」「コストを抑える」という要件において、Microsoft環境は不適。Google Apps Script (GAS) × スプレッドシート の構成で進めることを決定。

3. 機能設計フェーズ:チャットボットから「アプリ」への転換

課題:Dify標準機能の限界

Difyには「サイトへの埋め込み(チャットボット)」機能が標準である。これをそのまま貼れば一番簡単ではないか?と検討した。

  • 検証結果:
    • 会話をするだけなら優秀。
    • しかし、ユーザーは**「作成された指導案をファイルとして手元に欲しい」**。
    • Dify標準チャットはテキストを返すのみで、スプレッドシートファイルの生成やダウンロード機能は持っていない。

解決策:GASを「仲介役」にするアーキテクチャ

役割を以下のように分担させることで解決を図る。

  1. Dify (脳): 指導案の中身(テキストデータ)を考えるだけ。出力は扱いやすいJSON形式に限定させる。
  2. GAS (手): Difyから受け取ったデータを、スプレッドシートのセルに綺麗に配置(清書)する。
  3. Frontend (顔): ユーザーには「チャット画面」ではなく、「条件入力フォーム」と「ダウンロードボタン」だけを見せる。

4. UX実装フェーズ:ダウンロードの仕組み「/copy」

課題:どうやってユーザーにファイルを渡すか?

GASでスプレッドシートを作成しても、それは「開発者のGoogleドライブ」の中に作られる。これをどうやってユーザーのドライブに保存させるか?

  • 案A: ファイルをメールで送る → 手間がかかる、メアド収集が必要。
  • 案B: 閲覧権限をつけて共有する → ユーザーが誤って編集してしまうリスク、プライバシーの問題。

ブレイクスルー:Googleドライブの「/copy」ハック

Googleドキュメント系ツールのURL仕様を活用する解決策を採用。

  1. GASが裏側で一時的なシートを作成し、URLを取得する(例: …/edit#gid=0)。
  2. URLの末尾をプログラムで …/copy に書き換える。
  3. このリンクをユーザーに踏ませる。
  4. すると、Googleの標準機能として**「ドキュメントのコピー:コピーを作成しますか?」**という画面が強制的に表示される。
  5. ユーザーが承諾すると、ユーザー自身のマイドライブにファイルが複製保存される。

これにより、権限管理の複雑さを回避しつつ、安全に成果物を配布するフローが確立した。

5. まとめ

本プロジェクトにおける最大のポイントは、**「AI(Dify)にすべてをやらせようとしなかった」**点にある。

  • AIは「思考(コンテンツ生成)」に集中させる。
  • UIやファイル操作は、得意な従来のプログラム(GAS)に任せる。
  • プラットフォーム選定では、「誰に使わせるか(公開範囲)」を基準にMicrosoftではなくGoogleを選択した。

この適材適所の組み合わせにより、単なるチャットボットを超えた**「実用的な業務アプリ」**としての実装が可能となった。

6. AIチャットボットから業務的なアプリへの変身!

上記のことから、今まで本サイトで公開してきたAIチャットボットをWEBアプリとして生まれ変わらせることができるのか、次の投稿で検証していきたいと思います。

コメント

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