はじめに
Qiita Confference聞いてたら生成AIを使ったアプリ開発試してみたくなったので、ちょっと欲しいなと思ってたアプリ作ってみました。
コードの質や機能的に物足りなくはありますが、個人的に良い勉強になったと思っています。
アプリ概要
今回は簡単に実装ができるということでPython、Streamlit、Google Gemini API、YouTUbe Data APIを組み合わせてアプリを作ってみました。
最近電子書籍を読む時に、先にAIに各章ごとの要約を出してもらってから内容を読むとどこが重要かわかりやすくて気に入ってるのでそれを動画でもできないかと思い、アプリ作成をしてみました。
この記事ではアプリの紹介をしたいわけではないので、もし試してみたい方がいたらこちらから試してみてください。(PC推奨です)
ソースコードもこのリポジトリにあるので気になったらみてください。
アプリを作ってみて
今回アプリを作ってみて思ったのは、想像以上に簡単にアプリは作れてしまうと言うことです。
生成AIの凄さはわかっていたつもりでした。いろんな人がアプリを作っているのをみて、そのアプリを使ってることもあります。
けど、やっぱり作ってみないとわからないこともあると感じました。
自分でコードを書いたのは本当に一部だけです。
それもUIの修正などで、コアな部分に関してはほとんどAIが担当しました。ただ、後述しますがAIが苦手な部分に関しては自分で実装した部分がありますが、ほとんどAIに指示を出すだけで終わってしまいました。
AIが苦手なことって?
AIが苦手な部分と言う話をしましたが、AIにも弱点はあります。
特に破壊的な変更が頻繁に加えられる新しいライブラリなどはAIが明確に苦手としているものだと思います。
今回YouTubeの動画から字幕を取得するために、youtube_transcript_apiというライブラリを使用しましたが、これはバージョンによって字幕取得の方法が異なります。
最新バージョンでないとうまく字幕が取得できない上に、字幕取得のための関数名が旧バージョンと異なり、新バージョンの情報よりも古いバージョンの情報の方がネット上には多いため、どうしても出力結果が古いバージョンによってしまいます。
古いバージョンにライブラリのバージョンを落として対応できるものなら良いのですが、今回のライブラリは、最新でないとうまく動作しないものだったので特にそれを顕著に弱点だと感じました。
じゃあジュニアエンジニアは何を勉強するのか
私自身がジュニアエンジニアであり、この問題に直面しています。
今何を勉強したらいいのか、ということがわからないジュニアエンジニアが非常に多いと思います。
そしてこれに正解はないと思っています。
個人的には「今気になること・面白そうだと感じたことを勉強する」ことが良いと思います。
今回アプリを作ってみたのもQiitaConfferenceで面白そうだと感じたことがきっかけでした。
また、今筆者はRustを勉強しているのですが、この理由は作って学ぶ OSの仕組みを読みたいからでした。しかし、Rustの勉強の一環でRustで作るDBをやっていると、並行処理に関する知識が足りないと思い、並行処理、並列処理の勉強をしています。
これが正解だとは思ってませんし、業務に全くと言っていいほど関連してないのでどちらかと言ったら不正解だと思います。
それでもやっぱり面白そうなことを勉強することがモチベーションを上げる一番の動機づけになるのではないでしょうか?
さいごに
ほとんど日記の様になってしまったこんな記事を読んでくださり、ありがとうございます。
AIを上手に使って楽しエンジニアライフを楽しみましょう。