AIプログラミングで作ったもの実例集

AIプログラミング、AIコーディングすごいという話は多いのだが、実際にこれを作って実際に運用している、というのはあまり聞かない。聞いてもなんだかよくわからないサービスだったりする。

そうではなくて、自分の自分による自分のための、実際に自分が使っているアプリの実例として、僕が2月から2か月ばかりで作って使っているもののいくつかを、実例集として紹介したい。

どれもが「そりゃ自分で作るしかないなぁ!」というもので、AIプログラミングによる自作アプリ制作の参考になれば幸いだ。

ちなみにAntigravity + Gameni 3 Flashを使っている(なのでUIが全部似たような感じになる。なんかAIイラストの既視感のような感じ)。

目次

仮想通貨の自動トレードアプリ: BitbankBot v1.5.5

最初に紹介する例でもない気はしたが、絶対に自分じゃないと作れないアプリの例としてわかりやすく本気感があるかなと思ったので、あえて仮想通貨の自動トレードアプリから紹介する。これは自分じゃないと作れない典型。独自のロジック(というほど大したもんじゃないけど)とその実装・運用に、自分の金をかけているんだからね。これができたらAIプログラミングは可能性があるとも思った。

というのも、僕は自動トレード自体は前からやっていたので、ロジック自体は持っていたんよね。だから、それをGUIにするだけ、というのが最初の着想。でもそれで、UXはかなりよくなるのではないか?と思ったし、実際よくなった。

常にグラフで確認できて、パラメータ調整もできる。これは本当によかったね。

ロジックを持っていると言ったが、実装のときに既存のコードは読ませていない。僕のクソコード読んで引きずられても仕方あるまい。それにAIのがどこまでできるのか知りたかったし。あくまで、自動注文の仕様と取引所APIの制約についてのみ記述した。それで十分だったよ。で、二か月ほど改修を続けながら今に至るまで運用している。

実際に月間で数万件の取引をしている。また、過去データからのバックテストや、取引所のデータを読み込ませて税務上の計算をさせるところまで実装している。バックテストは最適なパラメータを判断するために用いており、また税務上の計算はこれは本当に助かるー。今まで表計算ソフトでやってたからな。

本アプリの設計上のポイントは、「現状の資産総額」について信用する、というところである。つまり、現在の資産総額が結果であり同時にテストポイントであり、もしこれが意図しない状態になっていたら、それはバグが発生している死ぬ直せ急げヤバいただの暴落なんです?

逆に言うと、資産総額の流れは完全に把握できなければならず、総額とそのスナップショット、またそれを補足する情報としてどのような信用できるソースがあるか?というのが設計運用上の観点だ。コードを追わないとこういう感じになる。

非常に恐ろしい運用をしていると思われるかもしれんのだが、Mockつくっても1円にもならないし、そもそもエッジケースが最初から全部わかるならこの世にバグはない。それよりミスってもリカバーできる体制を整えて実戦あるのみ。戦場にいかないと1円にもならないんだし、まぁミスったところで死ぬのは僕だから。僕の責任によって僕の資産を賭けている。プログラミングとは死ぬことと見つけたり

まぁロジック的に死なんだろこれは、というやり方にはしてるよ。と言いつつ、際に運用し始めてからロジックを追加する過程で、エッジケースのバグが発生し、意図しない大量誤注文そして約定へとなった時には白目剥いた。

なお儲かっているか?げ、下落局面ですから…。

デジタルコンテンツ管理: DigitalShelf v0.5.6

もう少しありがちなものとして、コンテンツ管理アプリ。もともとはWeb本棚として作り始めた。この手のアプリは多く、実際僕はCalibreを使っているのだが、しかしどうしても汎用アプリの限界がある。痒いところに手が届かない。使わない機能がUIを占めている。で、自分のほしい機能だけをすべて実現するべく、自作することにした。

本アプリは以下を実現したくて作った。

  • 画像ZIP、PDFはもちろん、テキストや音声、動画もストリーミングでブラウザ再生できる
  • バイナリもサムネイルつきで保存できる
  • メモできる

まぁつまり、技術書のみならずゲームや漫画、Web漫画、CG集、小説、Web小説、古のSS、動画、音声、ドラマCD、素材、作者による補足解説、人々の感想メモ、なんなら掲示板のログ、そういったものを雑多にコレクションしたい、というものだ。そしてコレクションを、あらゆる端末から閲覧・管理したい!

なので、僕が使いたいすべてのフォーマットに対応する。txtはまだ中途半端だが、Web小説の保存もなんとかやりたいところだ。また、古のhtmlが前提のデジタルコンテンツの再現などもしたい。古いコンテンツを蘇らせたい。gifアニメとかも対応したい。

本アプリのポイントは以下。

  • ローカルストレージまたはLAN内の超スピード
  • ユースケースのニッチ過ぎる組み合わせ
  • データ構造がはっきりしているため、一生管理できる自信がある
  • あらゆるコンテンツを横断的に管理できる
  • プラットフォーマーが自分。ユーザーも自分。開発者も自分。というかAI。
  • データ構造がはっきりしているため、いざとなればデータベースを抽出してサルベージできるという確信がある

これは汎用性もあるし、比較的わかりやすいので、v1.0.0になったらOSS公開し、AIでこれくらいはできるというのをプロンプトと一緒に制作過程を記事化してみてもいいかなぁとか思っている。

YouTube動画の文字起こしDB:yt-txt v0.3.0

これはもともとCLIで実装していたものをGUI化したものだ。

URLを指定すると、自動的に文字起こししてテキストファイルとして検索可能なデータベース化する。これで「あの話していた動画どこだっけ?」を解消する。また、記者会見など動画としての価値が薄いものをテキスト化して情報収集力をあげる…と思ったのだが、実際には動画で見る気にならないものは文字起こしもあまり読む気にならないものであった。多分実際にはあの動画どこだっけ検索アプリになっているかなと思う。

これで林総務大臣がいつ何を話したのか完全に把握できるね。よかったなぁ。まぁ真面目な話、クソツマラナイけど見ないわけにはいかない会見動画とか大量にある人にとっては普通に有り難いアプリかもしれない。

技術的には裏でyt-dlpwhisperを動かしている。このアプリは結局ラッパーであって、それ以上でもそれ以下でもない。クライアント端末にインストールした合法的なアプリケーションを実行するだけなので、それ自体は問題なかろうが、これは自分の環境だからこそできることで、法的観点から他人のためにはできない。技術的な問題ではなく、実際的な問題として絶対SaaSにできないやつだ。自分の責任で自分でやるしかない。

その他

他にも作ったのをさらっと書いていく。ここにあるのは使っているやつで、作ったはいいものの使わなかったものについては成仏させている。

  • AIイラストに必要なLoRAやプロンプトの管理と実行
    • プロンプトの管理や、このLoRAにはこれを使えみたいなのと、それに合わせてStable Diffustionのサーバに指令を送って連続生成したりする
      • Stable Diffusionで推論できるグラボは必要。当時はたっけぇと思ったけど、高騰化する前に買えてよかったかもしれない
    • UIは自分専用のCivitAIみたいな感じになっている
    • NSFWもできるよ、そう、ローカルならね
  • Simple Image Viewer
    • 上記で制作したAIイラストの管理・閲覧用で、AIイラストは9割ゴミなのでさっさと削除していったり、なんかいい感じだったときのメタデータを確認したりするもの
    • 1000枚くらい読み込んでもローカルストレージとLANゆえに爆速
  • ブログ管理
    • サムネイルつくったりPV収集したり。プラグインにするのは重たいなぁというものについて実行
    • このブログのアイキャッチやPV上位記事の更新などもこれでやっている模様
    • WordPressがLAN内にあればLAN内に向けてAPIを実行できるため速度もまぁまぁ
  • WordPressの記事をnoteに転載する
    • playwrightを起動して、WordPressの記事をブロック単位でコピーし、note用にしてペーストする
    • WordPress特有のブロックや、noteに存在しないMermaid記法やテーブルを画像化して貼り付けるなどもする
  • SSDの寿命チェック
    • WindowsならCrystalDiskInfoがあるが、Mac用で無料のGUIはなんかなかったので作った
    • 中身は smartctlを使ってデータ保存しグラフ化している

なぜ自作が強いのか

ここまでの実例から、なぜ自分で作ることに強みがあるのか具体的な例として把握できたと思う。

ニッチ過ぎるユースケース

DigitalShelfのように、漫画ビューアぐらいならいくらでもあるが、動画や音声、テキスト、さらにはHTMLまで一つのコレクションとして、シームレスにブラウザ閲覧したい、までいくと、個人的過ぎて存在しない。

他人だったら背負えない責任

BitbankBotのように、資産を動かすアプリは非常に重い責任が生じる。また、YouTubeの文字起こしなんかもこれは自分でやるには私的利用としても、他人のためにやるのは法的にまずい面があるだろう。

サービス間の横断

これは責任の問題と同根だが、サービス間の横断ができる。noteとWordPressの地味な連携などは、これはプラットフォーマーに動機がないし、また確実に動かすのは異常にたいへんだ。

しかし自分が使っている機能について、自分が許せる範囲で、自分の責任において実現するのは問題がない。

検閲からの解放

DigitalShelfではどんなデータも保存できる。AIイラストではR18もつくれる。いくらでも政治的に正しくないデータをつくり、保存し、管理できる。政治信条も問われない。誰の目にも止まらない。

爆速にしてセキュア

基本的にLAN内となり、また余計なことをしないため、その速度はあらゆるSaaSと比較にならないほど速い。またそもそもインターネット公開しない(Outboundがあるものはあるが)、という非常に強固な防御壁がある。

…外部公開もちゃんと知識があるなら、適切に認証かけて普通にやればいいと思う。認証も自分一人という制約条件があれば存外楽なもの。まぁ普通に考えてLAN内のWebアプリケーションを外部接続できるなら知識があるはず、なのだが、最近はなんかAIに言われるままTailscaleやら使って無自覚にNAT越えしたものを全公開するケースもあるらしい。

費用は電気代とAI(と執念)

サービスと比べた時に費用が圧倒的に下がる。AIサブスクは現状どうにもならないのだが(ローカルLLMも試しているが現状まだ厳しい)、その他には電気代と俺の執念だけでできる。

パラダイムシフト:本当にやりたいことだけできる

AIプログラミング、というか自作アプリの良いところは、本当に自分がやりたいことだけできる点にある。

しかしこれは通常制作コストの割に合わないので、なるべく万人の解に落としこむことが旧来のアプリ制作では求められる。そうして多くの人に使われようとした時点で、機能は絞り込まれ、また多人数で使うがゆえの認証や脆弱性、法的問題や悪意あるユーザへの対応といったオーバーヘッドが生じる。

それでも、そうするしかないのが今までだった。だからせいぜい自作アプリというのは、僕の場合はCLIでしか作ってこなかった。それでも贅沢な話だった。

AIがその前提を塗り替えた。コードに必要な工数を劇的に下げた。多分本当に1/100とか下手したら1/1000かもしれない。とにかく問題は、「どう設計し」「どう運用し」「どう責任を取るのか」「いったい俺は何がしたいのか」に集約されることになった。俺はなぜ生きるのか…?

ボトルネックが僕の手ではなく僕の思考と責任になった。これは劇的なパラダムシフトだと思う。

もはや僕は、自分のやりたいことだけができない高価なサービスを、監視の目を気にしながら使う気になれない。そしてこの良さを伝えていきたいと思った。

この記事をいいなと思っていただけた方、よければ高評価・チャンネル登録……はないので、コメント・SNSでシェア・ブックマーク、RSSフィード登録を、よろしくお願い致します。

コメント

コメントする

目次