2024年11月29日(金)、ローコード開発フォーラム2024が開催されました。200名を超える方に申込頂き、会場とオンラインで大変な熱気に包まれ、多くの活発な議論が交わされました。メインイベントはローコードツールメーカー4社が集まり、1つのお題に沿って制限時間2時間の中で生成AIを活用しながら業務システムを作るという物でした。
当社のローコードツール「TALON(タロン)」も参加して、システム開発を実施しました。当記事はTALONの開発した内容について詳細にレポートします。生成AIをどのように活用したかなども含めて記載しています。当レポートはイベントに参加して開発を行った株式会社HOIPOI 代表の古関が作成しています。(当日、TALONチームは2名で参加しました)
併せて当日のイベントの内、当社部分のみを抜粋した動画もご用意していますので是非ご覧ください。生成AIでコード生成して、TALONに組み込んで動かす部分も実演しています。
以下の動画で詳細をご覧いただけます。概要欄に各セクションへジャンプできるリンクをご用意しています。
当動画は以下の3部構成になっています。
- TALONの紹介と、生成AI×ローコードツールについて試行錯誤している状況の報告(約16分)
- 実装開始後、約1時間が経過した段階での状況報告と、生成AIによるプログラミングの実演(約18分)
- 実装終了後、完成した成果物の発表(約10分)
開発する業務システムは「イベントの募集管理システム」
要件は以下の通りです。
- イベント開催者がイベント内容を告知し、参加者を募集できる。
- イベント開催者は同時に複数イベントを作成し、準備し、募集できる。
- イベント参加者はイベント告知内容を見て、参加登録を行う。
- イベント参加者は参加登録時に、イベント開催者が指定した情報を入力する。
- イベント開催者は入力項目、および、必須項目と任意項目を指定できる。
- イベントは、オンラインとオンサイトのハイブリッド開催ができる。
- オンライン、オンサイトの各々に定員や有料・無料チケットを設定できる。
- また、有料チケットは複数の価格を設定できる。
- イベント参加登録時に、登録者本人と、イベント開催者に登録メールを送信できる。
- イベント開催者は、イベント参加者を一覧管理する。
- イベント応募人数をすぐに確認できる。
- イベント参加予定者の一覧を確認、ファイル出力できる。
- イベント開催の指定日数前にリマインドメールを送信できる。
- リマインドメールは複数回送信できる。
- イベントの募集期間を設定できる。また、イベント募集開始、募集終了のステータスを制御できる。
追加として余裕があれば以下の要件も実装する。
- イベント当日の参加予定者の出欠を管理できる。
- イベント実施後のアンケートの送付、入力を管理できる。
- 1つのイベントを複数回(複数日)で開催できる。例)勉強会4回シリーズ
- イベント告知ページへのアクセス推移、登録数推移を分析できる。
上記の紫色になっている要件が今回、2時間の制限時間の中でTALONで実装が完了した物になります。数日前のリマインドメール機能と、出欠管理・アンケートについては時間が足りずに開発していません。
赤字になっている要件「1つのイベントを複数回(複数日)で開催できる。例)勉強会4回シリーズ」については生成AIでビジネスロジックをプログラムしました。実は今回のお題は業務システム要件としてはシンプルなものだったので、全てをTALONの標準機能設定で作りこむことが出来ます。ただ、当イベントは生成AIを活用した開発をライブで見せるという物だったので、新しいイベントを登録した際に、連続物のイベントである場合は複数のイベント情報が同時に生成される(データベースに複数レコード登録する)という部分を生成AIでプログラムしてもらう事にしました。ちなみにこのような1回の登録処理で複数のレコード登録する仕組みは、TALONの「ルールエンジン」で実現可能です。
今回作成するシステムのデータベースモデル構造
上記のお題に対して我々が作成したデータベースモデルは以下の通りです。3テーブルで全て実現できると判断しました。
- イベントマスタ
実施するイベントを登録する為のマスタです。当テーブルに複数のイベント情報が格納されます。イベントの内容や開催日時、料金設定などの基本的な情報格納を行うほか、イベント申込時に入力して欲しい内容(例えば、開催前にXXについての質問を入力してもらうなど)の設定をするための「入力項目見出」「入力必須」といった内容も格納できます。申込画面では、この情報を表示し、申込者が入力できるようにしています。
その他、今回は時間が無く作れませんでしたがアンケートに入力してもらうための内容も格納できるようにしています。
さらに、今回生成AIでプログラミングをする追加要件3ですが、この処理を行えるように「定期開催区分(週・月を設定)」「定期開催回数」を用意しています。画面上で当該項目に値をセットした場合は生成AIが作成したプログラムが発動して、当テーブルに複数レコードを内部的に登録します。ちなみに主キー情報はTALONの自動採番機能で自動生成します。 - イベント入力値マスタ
当テーブルが今回のお題で実現したら面白いなと思って作成した物です。イベントごとに申込者に入力してもらいたい情報が異なります(要件の5)。その為、イベントマスタの「入力項目見出」に入力してもらう項目情報をセットするのですが、申込者が入力する際に自由入力の項目ではなく、複数の選択肢から選べるような形で登録したいこともあるだろうな、と思って選択しを当テーブルに登録しておくと、申込時に入力フィールドに対してサジェストという形で候補が出るようにしました。これは動画のこの部分からの数分間で結構詳しく解説しているのでよければご覧ください、イメージ頂けると思います。 - イベント申込
申込者が特定のイベントへ申込すると当テーブルに格納されます。一人の利用者は複数のイベントに登録する事が出来ますが、1つのイベントに同じ利用者が複数登録する事は出来ないという制約にしてあります。(主キーをイベントID+ユーザIDとしています)
生成AIでの開発について
新しいイベントを登録する際に繰り返しイベントとする場合、複数のイベントデータをデータベーステーブルに登録する仕組みを生成AIがプログラムを自動生成し、それを検証して採用しました。詳しくは動画のこの部分からをご覧ください。
以下のような生成AIによるTALON専用ボットを開発しています。※現在β版となっており、まだ一般提供はしていません。
当ボットで生成AIと対話をしながらTALONに組み込む専用のプログラムコードを生成させることが出来ます。事前にTALONのプログラム作法や、TALON APIなどを教育してありますので、例えば画面上に表示したレコードデータを取得するAPIとして「TALON.getBlockData_Card()」という物がありますが、これらAPIの使い方や仕様を事前に教育してあります。
今回の追加要件3を実現するために、上記のボットに指示したプロンプトは以下の通りです。
単票ブロック1(対応テーブル名:MST_EVENT)に
物理項目名:REGULARLY_KBN(文字列)、
物理項目名:REGULARLY_COUNT(数字)、
物理項目名:EVENT_DATETIME_START(Date型)、
物理項目名:EVENT_DATETIME_END(Date型)、
物理項目名:EVENT_ID(PKかつ自動採番ID「PRE_EVENT_ID」が対応)、
その他いくつかの物理項目から生成した画面あります。
このブロックをコピーしてDBに登録してください。
その際、REGULARLY_KBNが1の場合週単位で、2の場合は月単位で、
EVENT_DATETIME_STARTとEVENT_DATETIME_ENDを増加させ、REGULARLY_COUNTの数だけ繰り返しコピーを作って登録してください。
EVENT_DATETIME_STARTの日時のデータは作成せず、その次の週または月のデータから登録して下さい。
ただしREGULARLY_KBNが0か、nullの場合は何もしなくてよいです。
またMST_EVENTの物理項目は他にもあるのでそれを考慮すること。また自動採番IDはAPIを使って取得してください。
上記のプロンプトに対してAIボットが作成したプログラムを以下の様にTALONのコード記述領域に貼り付けるという流れになります。※ちなみにこのコード記述領域は最新バージョンの6.2.3より入力補完機能が付きました。
生成AIを利用した仕組みについては以上になります。動画をご覧いただくと分かりますが、生成したプログラムには一部問題があり、そのままでは動きませんでした。発表前に生成している時は成功率100%だったのに、本番でだけ失敗しました…(急いで修正して無事に動作するようになりましたが)。AIを使ったイベントはこのような事が起きますね。その部分も動画にまるごと収録していますので見て頂くと緊張感が伝わるかと思います(笑)
作成した機能のご紹介
それではここからは実際に作成した機能を紹介していきます。実際の動きは動画のこの部分からご覧ください。
イベントマスタメンテナンス
当画面でイベントの新規登録や編集、削除を行います。生成AIの部分で説明した通り、当画面にAIが作ったプログラムを実行しています。
また、申し込みを行うと登録者に確認メールが送信される仕組みも組み込んでいます。メールには申込画面を開くURLを記載しています。この部分も実演していますので詳しくは動画のこの部分をご覧ください。
イベント申込状況照会
登録したイベントに対する申込状況を確認する事が出来ます。イベントの基本情報や参加者の一覧の他に、いつ・何人が申し込んで、累計で何名の申し込みになっているかをグラフで確認する事が出来ます。グラフはTALONのグラフブロック機能で構築しました。
イベントマスタ一覧照会
登録したイベント情報を一覧で表示する画面です。当画面からイベントメンテナンス画面とイベント申込状況照会へ遷移する事が出来ます。
イベント入力項目マスタメンテナンス
イベントを申込する時に入力してもらうカスタム項目を選択肢から選べるようにするために、イベントIDごとに入力値をセットする画面です。時間が足りなかったのでイベント名が当画面に表示されておらずちょっと見ずらいですね。また、本当はここにアンケートの選択肢も登録出来るようにしてあります(時間が足りず、アンケートを記入する画面がありませんが…)。
イベント申込
イベントに参加する方が申込を行う画面です。画面下部にある入力項目の質問事項はイベントごとに設定する事が出来るので、イベントによって異なる文言が表示されます。かつ、入力項目はサジェストによる選択肢を表示させることが可能です。この選択肢をイベント入力項目マスタメンテナンスで用意しています。以下のようなイメージです。動画のこの部分からの数分間で解説しています。
申込状況カレンダ照会
イベントに参加する方が自身が申込したイベントをカレンダで確認出来る画面です。特に要件には無かったのですが、TALONのカレンダブロック機能で数分で出来るのでおまけで作成した機能です。
イベント申込一覧照会
利用者が参加可能なイベントの一覧を表示します。すでに申込済のイベントの場合は「申込状況」が申込済となっています。当画面からイベント申込画面と申込状況カレンダ照会画面に遷移できます。
まとめ
ここまでご覧いただいた通り、今回のイベントでは業務画面を7画面作り、その中でAIによるプログラム生成を実施しています。イベントで大勢の方(今回は現場来場とオンラインの2形式)に見て頂く中で機能を構築していくのは緊張感がありました。特にAI生成の部分については毎回同じ答えが返ってくるわけでは無いので、今回の様に発表の時だけ上手くいかないコードを生成するというトンデモな事が起きたりする事を身をもって証明してしまいました。
当日はライブ実装の後にパネルディスカッションもあり、その中で発言を求められて幾つかお話をしたのですが、業務システム開発にAIを活用していくというのはもはや可能性があるといった次元ではなく、確定した現実・未来だと思います。その中で、どの領域をAIに任せるのかという点で色々な考えがあると思います。私が考えているのは以下の3つです。
- 要件を決める際のブレインストーミング相手として活用
- 設計領域、特に業務要件が決まってからのデータモデリングで活用したい
- 開発のプログラミング
1についてはすでに多くの企業でこのような使い方をしていると思いますので割愛します。
2についてパネルディスカッションでお話したのですが、私自身は自分の専門領域を業務システム領域におけるデータモデラーだと考えています。なぜなら、TALONという製品のコンセプトを思いついて、起業して製品化したときの一番根っこにあった思いは「データモデルが出来上がればシステム開発はほとんど完成している」だからです。それくらいデータモデルが重要だと考えているのですが、いざ起業して製品を販売したら、データモデラーが非常に少なかったのですね。製品を紹介すると、データモデルが重要というのは分かるが、そのモデルを作るのが難しいよね、という話に何度もなりました。なので、この領域をAIが担う事が出来れば非常に良いなと考え、色々と研究をしているのですが現在の所、まだまだ難しいな、というのが正直なところです。これはもう少し未来に期待しています。
3についてはまさに今回実演したアプローチの領域です。ただ、業務システム開発という領域で、全てをAIに生成させるというのは検証や保守を考えると中々難しいように思います。やはり何らかのフレームがあった方がよいかと。我々はローコードツールメーカなので、ローコードツールという枠組みの中にコードを記述する際にAIが担ってくれたらローコードツール→ノーコードツールに近づくわけです。ノーコードとローコードというのは世の中的には一緒くたに扱われることが多いように思いますが、中の人からすると全くの別物です。ノーコードでエンタープライズな業務システムを作るのは無理があるし、ローコードでIT知識が無い方による市民開発を実現するのも無理があります。やはり適材適所というのはあるのですが、ローコード+AI≒ノーコードというのはかなり可能性としては高いなというのは今回のイベントで実演した内容からも感じて頂けるのではないかと思います。そんなお話も動画の冒頭で行っていますので是非ご覧いただければと思います。TALONにご興味をお持ちいただきましたら、お気軽にお問い合わせください。
文:株式会社HOIPOI 代表取締役 古関雄介