とにかく学生に楽しんでもらうために
ABCテレビでは、エンジニア志望の学生に向けて「テレビ × 技術」を体感してもらうTechコース1dayインターンを実施しました。
👉 https://www.asahi.co.jp/saiyo/intern/#courseTechnology
今年のテーマはずばり「学生格付けチェック」!
学生のみなさんには複数のパートに分かれて、ABCの業務でも使っている技術を使いながら、課題に挑戦してもらいました 💪
前回のブログでは、AWS上で動く投票システムの開発について紹介しましたが、今回は学生の格付けイラストを生成するアプリについて紹介します🎨
学生格付けチェック × 生成AI
今回のインターンでは、ハンズオンなどで作成した要素を盛り込みつつ最後に3人1組のチームで正答率を競う「格付けチェック」を実施。
「せっかくなら本家同様、格が下がると見た目が変化する演出をつけたい!」という話が打ち合わせで盛り上がり、生成AIで学生それぞれの「格イラスト」を作ることにしました。
ただ、時間的にこちらの内容はハンズオンに組み込めなかったので僕の方で開発することになりました!
方針
今回の目標は、
-
誰でも簡単に操作できる
-
複数人が同時に使える
-
短期間で作れるアプリ
の3つ。
学生に配布するPCはあまり高性能ではないため、画像処理はクラウド側で行うことにしました。
いろいろ調べているとGradioを Cloud Run にデプロイするクイックスタートが公開されていたので今回はこちらを使用することにしました。
開発
まずはGradioでそれっぽいアプリを作成します。
この辺りはCursorに頼りながらサクサク進めていきます。
最低限動くアプリができたところで、クイックスタートを参考に下記の手順でデプロイします。
-
Google Cloud プロジェクト作成
-
IAMロール設定
-
CLI からデプロイコマンド実行
gcloud run deploy --source . \ --set-env-vars OPENAI_API_KEY='***' \
以前は Docker の準備が必要だった印象ですが、今はこのコマンド一発でデプロイできて驚きました。
デプロイ後は細部を調整し、UI の改善や動作確認を進めていきます。
アプリ完成のはずが、同時実行ができない。。。
1人でのテストが問題なく完了し、余裕を持って挑んだローカルリハでしたが、
3人で同時にアクセスするとなぜか画像生成に失敗。
複数インスタンスが立ち上がった際に、撮影した写真や生成画像のパスが UI 側で正しく受け取れなくなる問題が発生していました。
改修しようかなと思いつつも、時間がない中こだわるところでもなかったので、
-
Cloud Run のconcurrency=1に固定
-
チームごとに独立したサービスを5つデプロイ
という力技で乗り切りました笑
作成したアプリはこちら

本当に必要最低限のUIですが、学生にも楽しんでもらえたので要件はクリアです!
さいごに
昨年だとAIでイラストを作成してもここまでの精度は出なかったので、旬なネタとしてインターンにうまく組み込めたのではと思います!
来年も学生の皆さんに楽しんでいただけるよう日々情報をアップデートしながら準備していきます💪

