【Python&AI初心者】Google AI Studioを使って、未経験からアプリを作ってみた体験談

AI活用

はじめまして、Sh33p(シープ)と言います。

僕は現在、とある地方都市に住んでいるのですが、いろいろあって前職を辞め、絶賛求職中の身です。

昔からSEやプログラミング、アプリ開発に興味があり、「これを機にプログラミングの勉強を始めてみよう!」と思い立ちました。最近、PythonやGoogle AIを使い始めたばかりの、超がつくほどの駆け出しです。

これまでWordPressの運営や配信活動など、PCを触る機会は多かったものの、プログラミング自体は中学生の時にC言語を覚えようとして挫折して以来、ほぼノータッチの状態で今に至ります。

そんな「初めてばかり」の今だからこそ、自分用の備忘録を兼ねて、右往左往しながら解決したことや挫折したプロセスを残したいと思い、Bloggerでブログを開設しました。

noteなども選択肢にありましたが、シンプルに自分の言葉で書き留めていきたいこと、そして何より「無職でお金をかけられない(笑)」という切実な理由もあり、無料で手軽に始められるBloggerを選びました。

これから、このサイトをゆるく、楽しく運営していこうと思っています。

最近、Pythonの勉強を始めました!

Pythonコードの画像

無職になったきっかけは、前職でのパワハラでした。

某お菓子メーカーで書類作業に追われる中、続くパワハラに心底うんざりしてしまって退職を決意。その時に「次にやりたい仕事ってなんだろう」と考えてみました。

思い返せば、幼少期から楽器演奏をしていて何か作品を作ることが好きだったこと、WordPressで記事を書いていたことなど、PCを使った「物作り」が好きだったんです。

そこで、「前々から興味があったIT業界に挑戦してみよう!」と思い立ち、エンジニアを目指すことにしました。

プログラミングの世界に飛び込もうと決めたものの、最後に勉強したのは中学生の頃。

WordPressでHTML、CSS、PHPを少し触る程度で、ほぼ無知のスタートです。

そんな中、最近(というか少し前から)「アプリ開発といえばPythonがいい」という声を周りからちらほら聞いていたので、「じゃあ、まずはPythonからやってみるか!」と学習を開始。

仕事を探す中で「paiza(パイザ)」という、IT系の学習や転職に特化したサービスを見つけ、そこでPythonの勉強を始めました。

……が、やっぱり1人で黙々とやっていても、わからないことだらけで壁にぶつかります。

そんな時に頼りになったのが、今流行りの「AI」でした。

その延長線上で、AIの世界にも足を踏み入れることに

もともとGoogleが提供するAI「Gemini(ジェミニ)」を多用していた僕は、「わからない関数や処理の流れは、全部Geminiに聞いちゃえ!」という甘々精神で質問しまくることにしました。

ありがたいことに、ブラウザのChromeには「Geminiに相談」という機能も搭載されたおかげで、もう聞き放題です。

わざわざ長文で説明しなくても、画面を共有しながら「この関数はこういう意味だよ!」「これはこうやって動作するんだよ!」と丁寧に教えてくれます。

Geminiを使い、Bloggerでブログを書く。本当にGoogle様には頭が上がりません。

ただ、使い続けるうちに問題が発生しました。

Geminiは、会話(チャット)のラリーが増えれば増えるほど動作が重くなるという現象があります。

時間を置いたり、ブラウザのキャッシュをリセットすれば改善することもあるのですが、何より困るのが**「以前話した内容を覚えていてくれないこと」**です。

会話量が多くなると、AIにとっては1週間前のことでも「そんな話したっけ?」という状態になります。適当に見繕って回答されたり、ひどい時には「わからない」と言えずに嘘の回答をされて墓穴を掘ることも……。

「わからないことは、わからないって正直に言ってね」とプロンプト(指示)を組んでもそれすら忘れ、その場しのぎで「できないこと」を指示してきたりします。

これ、専門用語で”ハルシネーション(幻覚)”って言うらしいです。

ハルシネーション(hallucination)とは

ChatGPTやGeminiといった大規模なAIが、存在しない答え、もしくは答えが不明確な場合にあたかも存在するように返答をしてしまう現象。

(引用元:野村総合研究所(NRI)IT用語解説

これがあるせいで、少し難しい話になると平気で嘘情報を言われたりします。だから僕は、プロンプトで必ず「わからないことはわからないと言うように」と指示を組んでいます。

ただ、それでも信憑性が完璧になるわけではないので、最終的には自分で調べる必要があるのですが……。

しかも、Geminiはその指示すら忘れてポンコツをかますことがあります。

そんな中、Pythonの勉強中にとんでもなくめんどくさい出来事が起きました。

「GitHubにコードをアップロードしたら見てあげるよ!」(幻覚)

ノートパソコンとメモ帳

Pythonで、簡単な2Dシューティングゲーム(俗にいう弾幕ゲー)を作っていたある日のことです。

3体の敵が適当なタイミングで弾を撃ってきて、当たったらライフが減り、敵を倒したらスコアが増える……という、初心者向けのシンプルなゲームを作っていました。

しかし、実装したいことをGeminiに聞いているうちにどんどんチャットが重くなり、コードを直接貼り付けるのが難しくなってしまいました。

「コードが長すぎて貼るのが厳しいんだけど……」とGeminiに相談したところ、彼はこう言ったのです。

「じゃあ、GitHubにアップロードしてくれたら、僕がそこに見に行くよ!」と。

「へぇー!外部のウェブサービスまで見に行けるようになったんだ、AIすごい!」と感動した僕は、せっせとGitHubの登録からCursorの設定まで行い、満を持して質問を再開しました。

すると、なんだかGeminiの様子がおかしいのです。

例えば、「このコードのここをこう直したい」と質問した時、該当する部分が「100行目」だとします。

それなのにGeminiは「128行目のコードを直そう!」と、全く違う行を指示してくるのです。

最初は「行数がズレてるのかな。まぁコードを検索すれば見つかるからいいか」とスルーしていましたが、あまりにも頻発するので「これ、絶対おかしくない?GitHub見えてる?」と問い詰めてみました。

するとGeminiくん、「実は、GitHubは見られないんだ……」と白状したのです。

「いやいや君、さっき見に行くって言ったよね!?」とツッコんでも、GitHubを案内したことすら綺麗さっぱり忘れている始末。

「あかんやないかい!」

と盛大にツッコんだ僕は、ウェブ経由ではなく、自分のPC(ローカル環境)で優秀なAIを動かす方法はないかと考えました。

でも、個人のPCで巨大なAIを動かすのはスペック的に無理があります。

そこで、ポンコツをかましたGeminiに「ローカルでやりたいんだけど、どうすればいい?」と再び聞いたところ、教えてくれたのが「Google AI Studio」の存在でした。

Google AI Studioの力を借りて、アプリ開発に挑戦してみた!

実際のGoogleAIStudio

「Google AI Studio(Google AI)」という開発者向けのサービスがあることを、僕はこれまで知りませんでした。

Geminiくん曰く、こちらを使えば会話した内容をずっと覚えていてくれるらしい(本当か……?)。

もちろん上限はあって、1つのチャットの中でやり取りできる量には制限があります。その上限をカウントしているのが”tokens(トークン)”という機能です。

実際に使用しているtokens

このtokensの上限までであれば、これまでの会話の履歴をしっかり覚えていてくれます。

今のところ、本当にちゃんと覚えててくれているので、かなり期待して使っています。

でも、僕がGoogle AI Studioを使い始めた理由は、それだけではありませんでした。

GoogleのAIには、API(アプリとAIを繋ぐ仕組み)を使って、自分で作ったプログラムにAIを組み込む機能があります。

これを利用して、Geminiのサイトにアクセスしなくても、PC内でGoogleのAIと会話ができて、さらに会話ログが自分のPC内に残せるアプリをテストとして作ってみることにしました。

もともと、Web版のチャットが消えたり重くなったりすることに不満があったので、自分のPC(ローカル環境)でログが保存できるのが一番理想的だったんです。

AIに一つずつ手順を聞きながら、会話ログを”.JSON”というファイル形式でPC内に保存する仕組みをPythonで作りました。

作成中、なぜか「表示された会話ログが上から下へ自動で超高速スクロールし、また上に戻るのを永遠に繰り返す」という謎のバグ(ローディングの無限ループ)が発生して頭を抱えました。

大雑把に「自動スクロールが無限ループして直らないから直して」とAIに伝えても全然直らなかったのですが、ターミナルに表示されたエラーログをそのまま貼り付けたところ、一発で原因を見抜いて修正してくれました。

AIは完全ではないので、やっぱり最終的なデバッグや原因探しは人間がやらなきゃいけないんだな、という良い学びになりました。でも、個人で使うアプリをサクッと作る分には、十分すぎる実力です。

この自作会話アプリについては、ちゃんと実用できるように作り直して、また別の記事で紹介しようと思っています。

【今後の野望】忘れっぽい私のための「ブログネタ管理アプリ」を作りたい!


UnsplashFotis Fotopoulosが撮影した写真のFotis Fotopoulosが撮影したイラスト素材 

そして今、新しく画策しているのが、自分自身のブログ執筆をアシスタントしてくれるダッシュボードアプリの作成です。

記事を書いているブロガーさんやライターさんなら、「あ、この記事のネタいいな!」と思いついたものを忘れてしまったり、構成の組み合わせをド忘れしたりすることって、よくあると思います。

少なくとも、僕はめちゃくちゃよく忘れます。

そういったネタをストックして、現在の執筆ステータス(執筆中・保留など)と一緒に視覚的に管理できる自分用のアプリを作って、今後のブログ運営を爆速で楽にしたいなと思っています。

ゆくゆくはAIの文章添削機能も載せたいですが、そうなるとプロンプトの設定画面やGoogle AIのAPIキーを設定する場所を作ったりとやることが山積みなので、まずはデータの保存や画面作りといったシンプルな部分から始めて、少しずつデバッグしながら個人運用できる形に育てていく予定です。

まとめ:AIのおかげで、初心者の僕でも形にできた!

GoogleAIで初心者でも形にできた。

ちなみに、今回のこの記事もGoogleのAIを使って添削をしています。

あらかたの内容や僕の個性は変えず、誤字脱字のチェックや、自分が書いていてたまに起きてしまう「へんてこな文法」を自然に修正するようにだけ指示をしています。

そんな感じで、Pythonの勉強を始めてからAIを今まで以上にフル活用するようになった、僕の日記兼備忘録ブログがスタートしました。

これからも定期的に、勉強の進捗やアプリ開発の様子を更新していけたらいいなと思っています。

それでは、また次の記事でお会いしましょう!

コメント

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