
みなさんこんにちは!入社2年目、プロダクトサービス事業部のハニーです。
自社サービス「Qube」では、イベントの申し込みや告知に使うランディングページ(LP)を、AIが自動で生成する機能の先行体験版を開発・リリースしました。
このLP自動生成機能がどういう仕組みなのか、開発時にどこで苦戦したのかについて、今回お話ししたいと思います!
1. イベントLP自動生成機能とは
イベントLP自動生成機能は、イベントの基本情報(イベント名・概要・詳細など)と選択した「テーマ」をもとに、コンバージョン(申し込み)を意識したLPをAIが生成する機能です。イベントとテーマ(ビジネス・ラグジュアリー・ポップなど)を選び生成ボタンを押すと、そのイベント専用のLPが自動で出来上がり、プレビュー画面で確認したうえで公開・非公開を切り替えて利用できます。


2. どういう仕組みなのか
このLP自動生成機能では、プロンプト・チェイニングという手法を採用しました。
本機能では、1回目のLLM呼び出しで「設計図」となるJSONデータを生成し、そのJSONを2回目の入力として渡してHTMLを組み立てる、という2段階にしています。プロンプト・チェイニングの「前の出力を次に渡す」という形を、この「JSON → HTML」のつながりで実現しました。1回目ではLPの「何をどの順で書くか」「どんな文言にするか」を決め、2回目では色・余白・レイアウトなど「どう見せるか」を担当する、という役割分担です。なぜこう分けたかというと、LPでは中身も見た目も求められる一方、両方を一度にLLMに任せると指示が複雑になり、どちらも中途半端になりがちだからです。各段階でLLMに集中させることで、精度を高めました。
具体的な流れは以下のとおりです。
① 入力データの準備
イベント名・概要・詳細・開場/開始/終了日時・参加費・開催場所・テーマ用プロンプトを準備します。
② 1回目のLLM呼び出し:LP用JSONの生成
イベント情報を渡し、後続のHTML生成プロンプトの設計図となる中間JSONを生成します。プロンプトでは、役割・ガイドライン(事実に基づく訴求、禁止事項、CTAの確定表現など)・出力形式などを指定しており、この段階ではデザインは指定せず「何をどう書くか」に集中させています。
③ 2回目のLLM呼び出し:JSONからHTMLの生成
1回目で得たJSONデータとテーマ用プロンプトを渡し「UI/UXデザイナー・Tailwindを極めたフロントエンドエンジニア」という役割で、実際のHTMLを生成します。ここで初めて、テーマに応じた色・余白・フォント・レイアウト(Bento Grid、Glassmorphismなど)の指示を効かせます。
このように、プロンプト・チェイニングにより「構成・文言」と「見た目」を分離した2段階の仕組みになっています。1回目で設計図(JSON)を、2回目でそれに基づくHTMLを出力する流れです。この形にすることで、テーマ(デザイン)を変えても訴求内容は一貫させられます。また、プロンプトのルールを後から見直すときも、JSON生成側とHTML生成側のどちらを直すべきか判断しやすくなります。
3. 開発で苦戦したこと
機能の核は「何をLLMに渡して、どう指示するか」です。ここでは、JSON・HTML生成プロンプトと、テーマごとのプロンプトの2つでつまずいたポイントをお話しします。
3.1 苦戦したポイント①:JSON・HTML生成プロンプト
JSON生成プロンプト・HTML生成プロンプトのどちらでも、守らせたいルールを書いてもLLMが逸脱するという課題がありました。そこで、以下のような「課題洗い出し→対応」を繰り返しました。
uppercase/capitalizeを不用意に使わないよう注意を入れて対応しています。指定はしているものの、なかなかうまくいかないケースが現在もあります、、、。ほかにもルールを書いても無視されることがあったため、Role / Task / Guidelines / Output Formatのように役割とタスクを分けて書き、重要なルールは複数箇所に書く・表現を少し変えて重ねるなどして強化しました。
3.2 苦戦したポイント②:テーマごとのプロンプト
テーマ(ビジネス・ラグジュアリー・ポップなど)ごとにデザインの方向性を変えられるようにしましたが、ここでも思うような出力にならないことが多く、試行錯誤しました。
テーマを増やしたり文言を変えたりしたあとは、実際に何度か生成して禁止事項違反やレイアウト崩れが出ないか確認する運用を続けており、まだまだ調整の余地がある状態です。

4. まとめ
イベントLP自動生成機能は、イベント情報とテーマからコンバージョン重視のLPを自動生成する機能です。この機能ではプロンプト・チェイニングを採用し、設計図(JSON)→HTMLの2段階でLLMを呼び出してLPを生成しています。
開発では、JSON・HTML生成プロンプトで「事実ベースの訴求・禁止事項・表記維持・CTAの確定表現」などを守らせることと、テーマ用プロンプトで「デザインの方向性だけを変える」ことの両立に苦戦しました。生成結果を見ては修正する繰り返しでしたが、役割分担(JSON=設計、HTML=見た目)とルールの明文化・重複記載で、だいぶ安定してきました。
現在はプロンプトによる指示でLPを生成していますが、今後はAIエージェントによるLP生成機能の開発に取り組みたいと考えています。エージェントが自律的に判断・実行することで、より使いやすく、より良いLP生成を実現することが目標です!
【合わせて読みたい】
この記事を書いた人
【ニックネーム】ハニー
【経歴】入社2年目。自社サービスであるBtoBコミュニケーションプラットフォーム「Qube」というSaaS開発に携わっています。
【一言】資格を取りたい、頑張りたい!
