お金がかかるのが当たり前の基幹業務システム(会計システム、固定資産管理システム)をオープンソース化しました
以前、お遊びでゲームやOutlook空き状況をChatGPTに作成させChatGPT サイトで公開したことを書きました。ChatGPTに命令するだけでシステムを開発しWeb公開までできてしまうのです。
今回、本格的なWeb業務システムをChatGPT一本で小一時間で開発、Web公開したのち、ChatGPTサイトから手元の環境のnode.js,SQL Serverへ移行した作業方法をまとめたものです。
今回の開発・移行対象は会計・決算システム、固定資産管理システム
これらの基幹システムは従来、高価なパッケージやSaaSを契約する必要があり、日本・日本語では無料版をまず見かけることがありませんでした。大したことをしていないのになぜか高額、有償がまかり通っている領域です。しかも機能のエンハンスとなると依頼しても有償やリードタイムが非常に長くかかり不便なまま使うことを余儀なくされていました。であれば、自分で作って無償化してしまおうという単純な発想から生まれています。ChatGPT Sitesを経由させる生成AI開発のメリットは次の通りです:
●小一時間でプロンプトに指示するだけでWebで実際に動くシステムがアクセスできるため、GUIを確認できる
●GUIをプロンプト指示で整えてからnode.js, SQL Server化を行えることで複雑なnode.js, RDBMS周りの手戻りが少なくなる
●実運用を想定した運用上発生し得るバグの一定程度の洗い出しが容易
生成AI利用モデル は チャットは GPT-6 Instant/中、work/codexはGPT-6.1 Sol 中
work/codexは制限が厳しいため、チャット機能でどのようなプロンプトを指示すべきかなどチャットで完結できるないようはチャットに聞いて開発自体、変更やGitHubへのプッシュなどチャットできないもののみwork/codexで行うことで厳しいwork/codexの消費リソースの制限を極力減らしていました。動作を見る限りAstra 軽よりSol 中の方がリソース消費に緩やかな傾向がある一方、ほぼ同じことができるモデルに見えました。
RDBMS(SQL Server指定)では標準的なテーブルが作成されたが記録される内容がJSONだったことで気づけたこと
ChatGPTにChatGPTサイトからローカルでも動くシステムとしてコードを生成させ移行させてみたわけですが、蓋を開けてみたら保管されるRDBMSのレコードがJSONになっていた。メリットでありデメリットでもありそうでした。デメリットはBIを接続させた場合の抽出、集計がやや困難になることです。一方、JSONで格納されていることでデータベース側を操作せずアプリ側のみで機能のエンハンスが極めて短時間、低リソースで行えることがわかりました。レスポンスに大きな影響が懸念される大規模データではない場合、データベースレイヤーの変更を抑えるためにデータベースは仮にRDBMSであってもJSONで保存する一方、アプリ側の改修のみにとどめることに気づけたのは大きな収穫でした。データベースレイヤーの変更が発生しない構成は高速開発、生成AIを活用した短時間開発には必須条件である気もしました。
実際のシステムのソース置き場
【経理システム】
もんじゃ会計
https://github.com/firstsuccess/AccountingFirstSuccess
https://github.com/firstsuccess/AccountingFirstSuccess/releases/tag/installer
【固定資産管理システム】
もんじゃ固定資産
https://github.com/firstsuccess/FixedAsset
https://github.com/firstsuccess/FixedAsset/releases/tag/installer
ひとまず手元のPC・サーバーにてローカルで動かせるようにはなりましたが、
独自ドメインSSL対応、クラウドサーバー対応は行う予定です。
https://first-success.com
トップページにも紹介記事は載せてあります。
さいごに
GitHub連携、格納となるとVSCodeを思い浮かび自身も今回設定をしたことはしたのですが、ChatGPT codexでコードセットの準備、必要な場合のコードの修正、GitHubコミットまで対応できますので設定したVSCodeが登場する機会は今のところありません。ソースを覗くには必要ですが、そもそも覗く必要性も今のところは皆無です。不具合に気づいたら即修正、即コミットのプロンプト指示のアジャイルで済んでいます。
生成AIを利用したアドホックなWebシステムの開発はコンパイラー言語(C、C++やJavaなど)ではなく、インタープリンター言語(PHP、JavaScriptなど)を指定した活用が不可欠です。異常の特定、新機能等の更新範囲の特定、再リリースなどに消費する時間やリソースが低くなります。