見出し画像

Geminiで「育児のことをなんでも聞けるbot」を作ってみた

「あぁ、エンジニアの人たちって、天才だったんだ」
Googleの生成AI「Gemini」を使ってプログラミングもどきをしてみて、そう強く感じた。


私は、好きなものは一番に食べてしまうタイプだ。最もお腹のコンディションが良いときに、最も美味しいものを食べて幸せを噛み締めたい。一方、妻は嫌いなものから片付けて、ご褒美は最後に取っておく。

食事に限らず、出産の準備においてもそうだった。妻はいつの間にか色々な知識を身につけていて、いつの間にか必要なモノを取り揃えていた。出産に向けて、身の回りの環境も、メンタリティも、着々と準備を進めていた。

かたや私は、第一子の出産を1週間後に控え、急に不安になってきた。妻が買ってきてくれた育児の基礎的な知識が紹介されているハウツー本には目を通したものの、すぐに実践できるかというと自信がない。好きなものばかりを食べて、やらなければいけないことや、覚えなければいけないことを後回しにしていたせいだ。

「産後1ヶ月は、妊婦は重傷を負っているようなものなんだって」
「私はあなたの親じゃないよ」
「なんでもかんでも私に聞かないでね」

妻に笑いながら言われた言葉がフラッシュバックする。そう、私がミルクをあげて、げっぷをさせて、おむつを替えて、肌の保湿をして、沐浴をさせて、寝かしつけをするのだ。

このままだと、まずい。やり方が合っているか不安になって、おろおろする自分の姿が脳内にくっきりと浮かんでくる。本をもう一度読んでみても、頭に入ってくる感じがしない。

良い本ばかり

実践して覚えていくしかないのだが、トライ&エラーというわけにもいかない。そして、どうしようもない私の疑問に、横で答えてくれる人は、少なくとも1ヶ月はいないと思っておくべきなのだ。

いないのなら、作るしかない。「育児のことをなんでも聞けるbot」を作って、どうやってやればいいか、お作法が間違っていないか、気をつけるべきことはないか、逐一聞きながらやっていくのはどうだろうか?


はじめてのプログラミング

「育児のことをなんでも聞けるbot」を作ってみようと思い立った時、頭にあったのは生成AIだ。仕事で触れていたので、AIを使えばそれっぽいものが作れるだろうと、なんとなしに考えていた。

そこで、Googleの生成AI「Gemini」に、やりたいことを伝えてみた。すると、力強い「できます」の回答と、整理された作成の手順が返ってきた。

なんとも心強い

よおし、やっぱり簡単にできるんだな。そう思いながらよくよく回答結果を読み込んでいくと、どうやらこれから作ろうとしているbotは、Gemini上で完結するものではないらしい。色々なツールと連携して、ウェブ上で動作する一種のアプリケーションを作るのだと理解するまでに、出力された文章を3回は読んだ。

Geminiに提案された「育児のことをなんでも聞けるbot」の仕組みを簡単にいうと、こうだ。

・ユーザーはマイクからの音声、またはテキスト入力で質問を投げかける
・AIが質問内容を理解し、知識として埋め込んだ情報に基づいて回答を生成する
・生成された回答は、テキスト出力および音声で読み上げられる

これだけのことであれば、Geminiだけで作れそうなものだけれど、そういうわけにはいかないらしい。私が素直にいうことを聞いたのは、説明されたアプリケーション作成のやり方を見て、なんだか面白そうだなと思ったからだ。もちろん、アプリの開発なんてやったことはないし、プログラミング経験もない。興味を持ったことすらない。ただ、触れたことのない世界だからこそ、ちょっと覗いてみたくなった。

こちらが、Geminiが教えてくれたアプリケーション作成の手順だ。家で例えると、「Python」というプログラミング言語を使って設計図を書き、「Streamlit」という道具を使って建築していく、ということらしい。

1. プロジェクトの初期設定と環境構築
2. Google Cloud Platformの認証設定
3. アプリケーションの基本構造の作成
4. 音声入力機能の実装
5. AI回答生成機能の実装
6. AI回答の表示と音声出力

私は、ワクワクしながら未知の世界に足を踏み入れていった。

ここがどこだか、全くわからない

手始めに行ったのは、「Google Cloud Platform」なるものに登録すること。「無料トライアル ($300クレジット、90日間有効) にサインアップせよ」と書かれていて、スタートしていきなり走り出すのを辞めようかと思った。〇〇日間無料という看板を掲げているサービスは、往々にして期日を過ぎると自動的に有料プランに移行するものであり、私は期日が来る前に退会手続きを出来た試しがない。

不安になってGeminiに聞いてみると、90日間を過ぎても自動で有料プランがスタートするわけではないらしい。よし、信じよう。登録は、思いのほか簡単に出来た。画面左上に、「¥43,457のクレジット、残り90日間」と表示されている。なんだか、もう来た道を引き返すことはできないような感覚が襲ってくる。いや、大丈夫だ、進もう。

無料だとわかっていてもドキドキする

次の指示は、「GCPコンソールでプロジェクトを作成する」。聞いたことのない単語が続け様に出てきて、もう道に迷っているような気持ちになってくる。実際、サイトのどこに何のボタンがあるのか分からず、右往左往していた。今自分がどこにいて、何をしているのか、全く分からなくなる。GCPコンソールのGCPが、Google Cloud Platformの略であることに気づいたのは、アプリ開発が終わってからだった。

GCPの画面。訳がわからない。

指令を一つこなして、Geminiに質問をして、また戻って作業をする。「APIの有効化」やら、「JSONキーの取得」やら、呪文にしか見えない名前のタスクを、一つ一つ潰していった。

何でもできる、有能な秘書

次にやったのは、「育児のことをなんでも聞けるbot」の核になる知識を集めて、整理すること。ミルクの作り方から、スキンケアのやり方、何かを誤飲してしまった時の対処法まで、育児にまつわる情報のデータベースを作っておくのだ。私が質問をしたら、AIはそのデータベースから適切な情報を引き出して渡してくれるという具合だ。

ここでもGeminiは目覚ましく活躍してくれる。「DeepReserch」という機能を使って、私が1時間くらいかけてやっと集められるような大量の情報を、ほんの3分ほどでものの見事に収集してくれた。

有能オブ有能

そして次のステップが、今回のアプリケーション作成において最も重要な、「設計図」作りだ。Pythonというプログラミング言語を使って、コードを書いていく作業。もちろん、私にはコードなんて書けっこない。しかし、Geminiはできる。コードを書いてもらうための指示文すらGeminiに書いてもらい、それを貼り付けると、「Canvas」というコードの作成・編集などを行う機能が自動的に立ち上がり、瞬く間に書き込まれていく。私は画面をただ眺めているだけで、いとも簡単に設計図が出来上がった。

10年越しのアップデート

いよいよ、用意した色々な材料を使って、アプリケーションを組み立てていく作業に入る。いよいよと言っても、まだ作業を始めた当日だ。なんだかんだ、順調に進んでいる。

作業には、VS Codeというツールを使う。もちろん聞いたこともないが、Geminiがいればなんとかなるだろう。海外のソフトらしく、英語のサイトと睨めっこしてダウンロードを進める。完了して、開こうとしてダブルクリックすると、「このパソコンのOSでは、VS Codeは使用できません」という旨の警告が出てきた。

何度も何度もダウンロードした

それもそのはず、私が使っているMac Book Airは、大学入学のお祝いとして祖母に買ってもらったものだ。調べてみたところ、OSは10年前に登場したものだった。最新のものから数えると、驚くべきことに9世代も前のもので、iPhoneで例えるなら「iPhone6」に相当するようだ。そもそも、パソコンがきちんと動いて使えていることが不思議なくらいだった。

化石のようなOS

いきなり最新のOSにアップデートするのは「無理!」ということだったので、「El Capitan(2015年)」→「Catalina(2019年)」→「Monterey(2021年)」と、ハリケーンのような名前のついたOSを、段階的に進化させていった。明らかにスタイリッシュになったパソコンのホーム画面を見て気分が良くなり、作業を再開した。

エラーに次ぐエラー

VS Codeというツールは、まさにプログラミングをするためもの、という感じがする。眺めていると、「うっ」となる。まずは指示に従ってフォルダを作成し、ここまでに準備してきた必要なファイルを格納していく。例によってどこに何のボタンやタブがあるかすら分からないので、それだけでも一苦労だ。

プログラミングしてるっぽい画面

次に、いくつかのコードを貼り付けていく。何が書いてあるのかさっぱり分からないが、コード自体はGeminiが作ってくれるので、それをコピペするだけだ。最初は、コードを貼り付けてエンターキーを押したあと、青字か白字になったら正常な状態で、赤字になったらエラーが起こっている状態である、ということが分からず、画面上で何が起きているのか理解できなかった。

それでも、藪をかき分け進んでいき、ついにアプリを動作させるという局面まで行き着いた。時刻は深夜。ずっとパソコンに張り付いていたので、腰が痛くなってきた。だが、それももう終わる。生成されたコードを貼り付け、エンターキーを押す。

画面が切り替わり、新しいブラウザのタブが自動的に立ち上がった。右上には、棒人間が走っているようなアイコンと、「Running…」の文字。よし、できた。そう言いかけた瞬間、画面には大量の赤い文字。一目でエラーが発生していると分かる。まぁ、一発で上手くいくわけはないか。だが、ここからが長かった。

ドキリとする大量のエラー文

「あぁ、そういうことでしたか」

エラーメッセージをコピーし、Geminiに聞くと、的確な改善策を授けてくれる。

だが、一つのエラーをクリアすると、また別のエラーが出てくる。幾度とない繰り返しで、見えかけていたゴールテープがどんどんと遠ざかっていく。よくよく紐解いていくと、問題は、「Streamlit」というツールが上手く動作していないことだと分かった。

伝書鳩の私が、エラーの内容を右から左へバトンパス

例えるなら、「家を建てようとしたら、設計図(プログラムのコード)はできているのに、使う木材や工具(アプリを動かすのに必要な部品や設定)が、その設計図に合っていなかったり、古かったりして、うまく組み立てられなかった」というような状況。インターネットから情報を引っ張ってきたり、それを加工したりするたびに、「この柱はサイズが合わない!」「この釘はサビてて使えない!」といった問題が次々と発生していたのである。

完成、そして気づく

気が狂いそうになりながら、延々と同じような作業を進めていく。指示通りにコードをコピペしていくだけだが、VS Code上に赤いエラーメッセージが表示されず、ズラズラズラと長い文字が浮かんでは消えていくのを見ていると、段々と楽しくなってくる。次に何をすればいいのかが分かってきて、勝手に指が動いていく。

そして、アプリケーション画面が立ち上がる。もう何度見たか分からない画面を見ると、エラーは起こっていない。恐る恐るマイクボタンを押して、問いかける。

「沐浴ってどうやってやればいいの?」

すると、やけに明るい男性の声で、返事が返ってきた。同じ内容が、テキストでも表示されている。うわぁ、ついに。できてしまった。

見てくれは…だが、機能はちゃんとしている

「やっぱり不便だなぁ」

翌朝、画面を見ながらふと思った。やっとの思いで完成したアプリだが、パソコンでしか使えないのだ。作業途中にも、「スマホで動くようにしたい」と思ってGeminiに相談したのだが、「まずは動作するアプリケーションの完成を目指しましょう。話はそれからです」と諭され、その時は納得した。だが、実際の育児の場面で、何かをしながら質問をしようとすると、スマホで使えた方が便利なのは、火を見るより明らかだ。

今回作成したアプリの機能を、そのままスマホで使えるようにどうにかして移管できないか。問いかけると、「それなら、”Gem”でできるよ!」と陽気に投げ返してきた。

「Gem」とは、Geminiを特定のタスクや目的に合わせてカスタマイズできる機能である。よくよく考えると、Geminiには音声入力・出力の機能が搭載されている。

右下のマイクボタンが、こちらを見ている

「や、やめてくれ」と願いながら、Geminiの指示に従って、「育児のことをなんでも聞けるbot」の機能が搭載されたGemを作っていく。驚くほどスムーズに、なんのエラーも起こることなく、瞬く間にそれは完成した。ええええ。

知識に基づいて回答してくれる

音声で質問をすると、快活な男性の声で的確な返答が返ってくる。そして、スマホで使うこともできる。私が苦労して作ったアプリケーションの完全なる上位互換だった。

ちなみに、Gemのデータベースは、NotebookLMというツールで作成した。あまりに私が何もしていないので、埋め込む知識情報くらいは、自分で吟味したものにしようと思ったからだ。Notebooklmは、Googleが開発したツールであり、Geminiをはじめとした生成AIが一般的な知識を基に回答を生成するのに対して、アップロードされた資料に基づいて回答を生成してくれる。情報の根拠がはっきりしているということだ。

ソースを元に回答してくれる

NotebookLMに、「これは」と思ったウェブサイトやYouTube動画のリンクを入れ、内容を要約してもらい、それをGemにアップロードする。要約した文章そのままではなく、Geminiに「YAML形式でまとめて」と頼むと、AIが読み取りやすくなる。

AIフレンドリー、らしい。

自作のラジオにもなる

Gemは音声での出入力が可能なので、手が離せない時に喋りかけて、声で応えてくれる。「30分間、知識を元に喋り続けて」というと、ラジオのごとく話してくれる。

「育児エージェント2号(私が作ったGemの名前)がお届けする、無限育児ラジオ、スタートです」と、妙にノリノリだ。私は深夜に30分のランニングをしているので、ちょうどいい。本を読むのが面倒、頭に中々入ってこない、という場合も、これなら強制的なインプットが可能である。

走りながら、勉強である。

さいごに

私がやりたかったことは、GeminiのGemでいとも簡単に実現できてしまったので、必死で作ったアプリケーションは、すっかり取り越し苦労ということになってしまった。

だが、久しぶりに、とても楽しかった。たまに見かける「独学でアプリを開発しちゃいました」みたいな中高生の気持ちが、ほんの少しだけ分かった気がする。知らない知識を吸収していくことが、抜け出すことができなかった迷路から出られた瞬間が、ただただ楽しくて夢中になってしまう。

Geminiという案内人に連れられて、プログラミングの世界に足を踏み入れたことで、大人になって忘れていたことを思い出すことができた。上手くいかなくて、上手くいかなくて、上手くいかなくて、やっと上手く行った瞬間に、楽しいと思うことを。

Geminiと私の会話は、約100,000字になった。文庫本くらいある。「それ、Gemでできるよ」という肝心なことは最初に教えてくれなかったが、ものすごく楽しくて有意義な寄り道だった。

いいなと思ったら応援しよう!

この記事が参加している募集

この記事が受賞したコンテスト