ずっとAIプログラミングをみんなでやって世界中のITエンジニアを壊滅させる方法を考えているんだけれど、実際に自分がやっていることを言語化してみると、本当に非エンジニアだとやっぱり難しいよなぁと思った。
AIプログラミングはなにが難しいのか?
つくるだけならいいと思うんだよね。多分、それらしいものができる、まではけっこう多くの人がたどり着けると思う。問題は、それをずっと使えるのか。バグが発生したときになおせるか。内部的なアップデートなどで壊れたときに対応できるか。機能の改修をしても問題なく使い続けられるか。
これはけっこう難しい、というかほぼ無理なんじゃないかな。勉強がすることが多い。
ただ個人的には道筋がないとは思っていなくて、やりながら学んでいけるルートはあるんじゃないのか?とは思う。だからそこに至るまでの課題設定が重要。課題がすべて。
では具体的にどんな課題なら良いのか?条件をいくつか考えた。
自分でデータを持たない、もってもテキストファイルかExcel
まず、自分でデータを持たないものが良い。自前のデータベースやルールに沿ったファイル保存をしない。
わかりやすいのは、毎回まっさらなスタート。たとえば質問に答えるだけとか、画像を受け取ったら文字列にするだけとか。いわゆるフィルタ処理に特化する。前回の入力をベースにして処理をする、みたいなことをしない。今までの記憶をしない。次の入力として再利用しないなら、ファイル保存はOK。
まぁこの制約で自分にとって役立つユースケースはそんなにないかもしれないが、最初からデータには手を出さないほうがいい。
なぜかというと、自前のデータベースの長期的な運用は普通に仕事レベルだからだ。AIに指示してカジュアルに機能追加していたらデータベースは絶対壊れる。保証する。壊れる。そんで二進も三進もいかなくなる。
だったら、最初から自前のデータベースみたいなもんはいらねぇ、と割り切ってしまうのがよい。
逆に言うと。「自分でわかるならいいんでしょ」の精神で、テキストファイルやExcelを最終出力にするのはアリ。まぁむしろこれが現実的かも?ただそれを入力として再利用する、みたいなのにすると、やっぱり事故りやすくはなると思うが、対応はまぁ頑張ればできると思う。
あとは、自前じゃなければいいんでしょう?ということで、最終的なデータの管理をクラウドサービスが請け負うタイプ(つまりSaaS)はアリではある。個人的にはSaaSを使いたくないからAIプログラミングだろう!と思うが、まぁ現実的には中々すぐにそういうわけにはいかないかもしれない。この場合は、SaaSと繋がりやすくするための土管を作る感じになる。
インターネットに公開しない
この制約は厳しいかもしれないが、最初の一歩はアクセスできるのはLAN内のみとする。インターネットから、つまり外でスマホからアプリにはアクセスできない。この理由は明確だろう。セキュリティ上の問題だ。当たり前に思うんだが、なんだかどうもカジュアルにフルオープンして事故っている人の話なんかが、OpenClawとかで聞こえてくるので…。
外からアクセスしたくなるのはわかるが、そのためには勉強が必要。ここはAIに任せない。インターネットは戦場なので、最初から突撃しない。泳いだことないのにいきなり海で泳ごうとしない。AIはあなたを守らない。責任を取らない。取れない。
まぁランディングページのような静的なページをホスティングサービスにあげる、ならアリではある。結局SaaSになってしまうし、そっちはそっちでホスティングの難しさがあるんだが…。
あと、アプリからインターネットの情報にアクセスするのはいいよ。別に天気の情報取得するのになんも悪いことないよね。スクレイピングは禁止のサイトがあることや、1つのサイトに秒速でアクセスしまくるとかはやめよう。
ユーザ管理しない
ユーザ管理というと多義的なんだが、まぁつまりAさんとBさんで権限が変わるみたいなのはしない。ログインなし。全員同じ。
まぁなんでかっていうと、どうしてもクレデンシャルの問題が出てきて、事故りやすくなる。これはセキュリティの問題であり、プライバシーの問題でもある。本当にプライバシーが守られているか、どうやってわかるのか。
またユーザの登録削除は現実の運用フローと密接なつながりもあり、ややこしい。最初はよくても中長期的にはしんどくなるだろう。
課題の立て方
この制約でAIに考えさせたら以下のようなのが出てきた。
- 録音をアップロードしたらテキスト化する議事録アプリ
- メモを所定のフォーマットに整えるような整形ツール。
- 所定の条件に沿った翻訳ツール。
- レシートの文字起こし
- ニュースサイトから最新の時事ネタをとってきて要約するツール
- ECサイトの商品価格比較ツール
なんか教科書にのってそう。どれも一般的過ぎて面白くないだろうね。そうじゃなくて、もっとこう、世界中で欲しいのは多分自分だけ、みたいなのがいいよ。その考え方が一番のポイントかもしれんね。たとえ習作でも、使うアプリを作りたい。他人じゃなくて、自分がほしいものをつくろう。それが自分だけがほしいものなら最高だ。
僕だったらそうだなぁ…「特定のゲームアプリの起動を監視して、起動時刻をCSV出力する」そして見返して反省する。まぁ作らないけど、方向性として、こういうめちゃニッチなやつがいいよ。
基本は土管
だいたい以上かな。これらの条件が揃った課題であれば、プログラミングをやったことがない人でも作りやすいうえに、必要に応じて改修もできて、また長く使えるんじゃないかなーと思う。
まぁ、必要な処理に特化したものだね。つまり土管。パイプです。保存するものを作るなら、自分でもわかるテキストファイルやExcelなどスプレッドシートのファイルにしよう。
作っている間に、いろいろ学べることもある。そうすれば、もっとたくさんのことができるようになるだろう。
コメント