見出し画像

ChatGPTに聞くだけ!?プログラミング苦手でもできたアプリ開発日記

プログラミングが苦手だって、AIの力を借りればアプリ開発に挑戦できるのでは!?と思い、OpenAIのGPT-4を使ってBot制作に挑戦してみた体験談です。「Slackの投稿を自動的にNotionに保存するBot」を制作した、その過程とそこで出会った困難や解決策、良かった点などをまとめてみました。


アプリ制作のきっかけ

きっかけは、GPT-4と一緒に何かをやってみたかった

GPT-4がリリースされて盛り上がっているので、この機会にChatGPTをしっかり触ってみたいなと思ったのがはじまりです。最初は、GPT-4を使って動くゲームのプロンプトや歌詞、絵本のストーリーを作るなどをして遊んでいました。しかし、もう少し実用的で自分にはできないことをやらせてみたいと思い、プログラミングをしてアプリを作ることにしました。

私は大学の情報学部を卒業しています。だから、プログラミングの基礎の基礎についての知識は一応あります。しかし、プログラミングにとても苦手意識を持っており、プログラミングを使う授業と研究室を避けてきた人間でした。実際にコードを書いた経験はほとんどありません。今回は結果的にPythonとJavaScriptを使ったのですが、どちらも全くの初心者です。それでも、GPT-4と一緒なら、このプログラミング・コンプレックスに立ち向かえるはずだ!と挑戦を決意します。

「Slackの投稿を自動的にNotionに保存するBot」を作りたい!

アプリのアイデアは「単純に自分が今一番困っていることを解決する」という方向性で出しました。最初はアプリ内容もAIと一緒に考えようと思いましたが、そのプロンプトを作るのに時間がかかっては本末転倒だと一旦諦め。

その結果、思い浮かんだのが、無料プランのSlackで3ヶ月以上前のメッセージが閲覧できなくなる問題でした。昨年9月のアップデートですね。僕はSlackを(友人も閲覧できる)メモ帳代わりに使っており、3ヶ月ごとにバックアップを取らなければメッセージが消えてしまうことに非常に困っていました。テキストをコピペして凌いでいましたが、この前忘れて1週間分くらいメモが消えてしまい、大きなショックを覚えたばかりでした。もし、これが自動で行われたらなんてありがたいんでしょう!

そこで、「Slackの投稿を自動的にNotionデータベースに保存するBot」を作ろうと決意しました。僕のSlackの投稿にはURLがあったり、映画や本の感想などに【Watching】などのタグがついていたりするものがあります。せっかくなら、これらがNotionデータベースに自動的に反映されて、勝手にタグ付けされたらめっちゃ便利だなと思いました。そんな複雑なことではないし、多分このくらいのことだったらAPIを叩けばできるだろうなとは思えました。

アプリ制作の過程

アプリ制作はChatGPTに聞くだけ!?

アプリの制作方法は単純明快です。「全部ChatGPTに聞く!
まずは、自分の実現したいアプリについて説明をします。プロンプトは以下の通り。Pythonにしたのは、なんとなくです。

Slackに投稿した文章を自動でnotionのデータベースに入れるbotをpythonで制作したいです。投稿した文章に特定の文字列 (例えば【Reading】や【Watching】)がある場合にはnotion側でタグ付けも行いたいです。

私はこれまでBotを作ったことがありません。また、Pythonに関しても初心者です。初心者でもわかるように一歩一歩何をしたらいいのかを教えて欲しいです。Bot制作のために、何をすれば良いでしょうか

対する回答がこちら(各コードは省略しています)

初心者でもBotを作ることができます。以下の手順でSlackからNotionへ投稿を転送するBotを作成しましょう。

1.必要なAPIキーとトークンを取得
SlackのBotトークンと、NotionのIntegrationのAPIキーが必要です。

2.必要なライブラリをインストール
SlackとNotionのAPIを使うために、以下のコマンドでPythonライブラリをインストールしてください。

3.環境変数を設定
APIキーとトークンを環境変数に設定しましょう。例えば、.envファイルに以下のように書くことができます。(実際にはここにコードが貼ってありました)

4.Botを実行
作成したコードを実行してBotを起動しましょう。python your_bot_file.pyを実行します。

これでBotが動作し、指定された文字列が含まれているSlackのメッセージがNotionのデータベースに追加され、タグ付けされます。この例を参考にして、必要に応じてコードをカスタマイズしてください。

と、言われても初心者には何にもわからないんですよね、これが。そこで、わからないことは全てChatGPTに質問するという方針で進めました。次にした質問、これですからね。

質問です。Botを作るためのコードはどこで書けばいいんでしょうか?Visual studioとかですか?それともGoogle系のサービス上などに書けばいいんですか?初心者に一番わかりやすい方法を教えてください。また、もし参考になるリンク等あれば教えてください。

コードを書く環境も全く整っていない状態から、ひとつずつ質問をして進めていきます。
「○○までできました!次は何をすればいいの?」や「○○ってどこでインストールするの?」「○○をしたんだけど、うまく行かなかったんだ。どうすればいいと思う?」こんな感じでひたすらに聞きまくります。コードにエラーが出れば、エラーメッセージを入れて「こんなメッセージ出たけど、どう直したらいいの?」と聞きます。本当にわからないことは全て聞きました。20の質問を超え、なんとか実行まで漕ぎつきます。ここまでおよそ3時間。

Tipsを挟むと、ChatGPTの言ったことを引用しながら質問をするのが効果的でした。

“3. 環境変数を設定 プロジェクトフォルダに.envファイルを作成し、先ほど紹介した内容(APIキー、トークン、データベースID)を記述します。Pythonライブラリの dotenv を使って環境変数を読み込むことができます。” この部分について初心者にもわかりやすいように一歩ずつ手順を教えてください。

PythonからGASに言語を一発変換!

さて、実行だ!となったときに、あれ?これどうやって実行するんだ?となります。Web上で動くということはサーバー立てなくちゃいけないの?一応サーバーの立て方も3候補出してもらいましたが、いまいちピンとこない。ということで、一旦プログラミングのできる友人に聞いてみます。すると彼曰くGAS (Google Action Scripts)を使うのがいいんじゃないとのこと。
ということで、ここで一転、JavaScriptでのコードでの作成に変更になります。うわぁ、ここまでの苦労が水の泡だ・・・!とはならないんですね。
なにせChatGPTさんに「このコードGASに書き換えて」ってお願いするだけですから。今までの作業でコードはほとんどいじっておらず、半分くらいの時間は各APIの取得に費やしていたので、ほぼダメージ0のまま言語の変更が行われます。ChatGPTさんには「このプロセスはいい学習の機会ですね!」なんて元気づけられました…笑。

デバック。最新の変更は自分で直すべし!

さて、無事にGASに置き換えおわり、作業を続けます。しかし、ChatGPTに書いてもらったコード/手順でそのまますべてがうまく行ったかと言えばそんなことはありませんでした。Slackの認証周りとNotionのデータベース周りでそれぞれエラーが発生します。エラーメッセージを入れて言われたことを直しても状況は変わりません。それもそのはず、GPT-4が2021年9月以降の新しい変更点について把握していなかったことが原因だったのです。GPT-4がどれだけ頑張って考えてもわかるはずがないので自分で調べて解決するしかありません。

まず、Notionに関してはデータベースへのアクセス方法が変更されており、それが原因で上手く動作しなかったことが判明しました。こちらはなんとか自力で調べながら修正ができ、問題解決。

一方、SlackのAPIに関しては、認証がうまくいかず困り果てました。自分の調査能力では何がいけないのかわからず、ChatGPTさんにもわかりません。ということで、AIとだけの作業で作成するのを断念。週末にプログラムができる友人と一緒に問題を確認し、解決策を見つけることにしました。

結果として、SlackのAPIに関しても認証時のURLの書き方が変更されており、それが原因で動作しなかったことが分かりました。ということで新しい書き方に修正することでコードは動くように・・・!驚いたことに、SlackのAPIのURLの書き方を変更しただけで、他の部分は全くコードを書き換えずにChatGPTが書いたまんまで動作しました。ということで見事完成です!合計では15時間くらいの作業時間でした。

プログラミング苦手民がGPTとアプリ開発した感想

GPTとアプリ開発するうえでのむずかしさ

PythonやGASに関しては初心者というか学んですらないわけで、そんな初心者にとってはバグが発生した際に、その目星が全くつかないことにディスアドバンテージを強く感じました。プログラミングが得意な友人とのデバック時は、前から順番に一つ一つ仮説を立てて修正をかけていくことをしたのですが、その一つ一つの粒度が違ったなと感じました。また、多くプログラムを見てきた故の勘などがあるだけ、仮説の精度は大きく違ってくるなと感じました。そういう点ではプログラミング経験があることは大切ですね。

GPTとアプリ開発してみてよかった点

一方、細かいコードについては完全にChatGPTに任せることができました。GPT-4は月額20ドル(約2500円?)で使えます。参考書1冊分の値段で、コードが全く分からない状態からほぼ勉強の時間をかけずに完成させることができる。自分が作りたいものが手に入るという意味ではこんなに安い投資はないよなと感じました。

それにものすごく優秀な先生でもあるなと感じました。人間ではないからこそ、こんなことも聞いていいの?というレベルの質問まで何の気兼ねもなく聞くことができるのが良かったです。書いてくれたコードに対して、パーツごとにどういう意味なのか初心者向けに解説してもらうこともできます。作りたいものが明確に決まった状態で手取り足取り教えてもらいながら一歩ずつ段階を踏めていくというのはすごくいい学習だなと思いました。これは、学校はともかく、他の○○教室というのはAIに聞くのでよくないかとなるんだろうなぁ。

もちろん、今回はコードを自分で書いていないのでコードに関する学習はほとんどできていません。しかし、アプリ作成の手順・動作については、AIの指示に従いながら進めることで、自分の経験として身に付いて大枠をつかむことができました。今後、例えばUnityを使ってゲーム開発などを行う際にも同じように使えるとなると、自分の作りたい表現を簡単に順序だてて説明してくれるのはすごく便利であり、大変ありがたい機能だなと感じました。

「できるよね」が「できるのよ」になる素晴らしさ

あと、単純に完成すると嬉しいんだなというのは強く感じました。これまでプログラミングに何度か挑戦しようとしたことはありました。「APIを使えばこういうことできるよね?」というのはなんとなく知っていました。できるのは分かってる、できるんだろうけど、僕にはできない。従来のサンプルコードを見ながら書く手順では、仮説が間違っていて動かなかったときにそれが何故かをエラーメッセージからだけでは読み解けませんでした。それはただの勉強不足ではあるんだけれど、僕はそこで諦めてしまっていました。

今回はこんなアプリが作りたいなと思ったときに「これできるよね?」と思ったものが1日後には「できるのよ!」となって実際にアプリが動き始めました。これは本当に大きな違いです。ちゃんと形にできることで、コードは書けていないにしろ、これでできるのかという自信を持つことができました。他にも色々やってみたいなと思えたのは良い経験だったと思います。アイデアさえあれば自分のやりたいことが簡単に実現できるようになってきたのかもしれない。

まとめ

プログラミングが苦手でも、GASの初心者でもChatGPTを使いながらBot制作を進めることができました。僕の場合はデバックで躓き、完全にChatGPTだけで作成することはできませんでしたが、90%以上ChatGPTだけの力です。
今後、プラグインのブラウザ機能やコーディング機能が追加されれば、最新の情報に疎くて書けなかった…みたいなこともなくなっていくでしょう。先駆者のいそうなコードに関してはズブの素人でも書けるようになっていくんだなと思うと、すごくワクワクします。これからも何か作ってくぞ!

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

つくってみた

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?