企業向けスライド生成AIエージェントをPythonとGPT5で作ってみた

サムネイル

こんにちは、AI Shift AI Solution事業部 Forward Deployed Engineer(FDE)の若泉です。
この記事はAI Shift Advent Calendar 2025の6日目の記事です。

はじめに

ここ最近、資料作成AIが次々と登場しています。

「文章入れたら、もうスライドになる」が当たり前になりつつある一方で、提案資料を作る側としてはこう思うこともあります。

  • テンプレはウチの会社のやつ使いたい
  • 提案資料には“お作法”があって、自由に作られると逆に困る
  • .pptx で出てこないとクライアント提出が厳しい
  • 表現はAIに任せたいけど、レイアウトは固定してほしい

そこで今回、「AIShiftの提案資料を自動で作ってくれるエージェント」を Python × GPT-5 で作ってみました。

この記事では、

  • 他社ツールとの比較
  • 今回のスライド作成の強み
  • どんな仕組みで動いているか一部紹介
  • 作ってみてわかったこと

をまとめます。

資料作成AIの種類調査

最近はさまざまなスライド生成AIがありますが、現時点では大きく 3つのタイプに分類できるかなと思います。

①スピード重視型(SlideAI / Felo)

  • 思いつきをすぐスライド化
  • たたき台作りに最適
  • Felo は検索+構成作成が速い

② デザイン重視型(Beautiful.ai / Gamma / イルシル)

  • 見た目の整ったスライドがすぐできる
  • レイアウトの自動調整が強い
  • イルシルは日本語テンプレが豊富

③ 情報収集ベース型(Genspark)

  • AI検索 → 要点整理 → スライド化を一気通貫
  • 分析資料・市場調査に強い

今回作るものの戦略

すでにあるスライド作成AIはどれも優秀ですが、共通する弱点として

  • 企業固有のテンプレに完全準拠できない
  • pptx構造にフィットしない場合がある
  • 過去資料や社内文脈を反映するのが難しい

といった課題があります。
そこで今回のエージェントでは、役割分担を明確にしました。

  • GPT-5 → スライド構成と内容(JSON生成)
  • Python → 自社テンプレに沿ってPPTXを生成

AIには“内容づくり”に集中してもらい、見た目はすべてテンプレートで固定する構造です。

これにより、

  • レイアウトが崩れない
  • ブランドカラーや注意書きが常に統一される
  • 誰が使っても「AIShiftの提案資料」になる

というメリットがあります。

仕組みの全体像(ざっくり)

  1. ユーザーがWordを投入(本記事では省略)
  2. Pythonでテキスト・画像を抽出(本記事では省略)
  3. GPT-5がスライド構成をJSONで生成 テンプレのJSONとマッピング
  4. PythonでPPTX生成 完成スライドを出力

スライド生成の流れ

順番前後しますが、4→3の順番で詳細を説明します。

自作スライド作成AI

スライドテンプレート

テンプレートは次のようなものを用意します。中身が入っていない、デザインだけのスライドですね。
スライドテンプレート1
スライドテンプレート2
各シェイプに変数名が割り当てられています。

fixedと名前をつけているものは固定のもの。それ以外のものは編集できるようにします。

 

このテンプレートスライド一つ一つに対応するjson形式を定義します。具体例としては以下です。

{
  "slides": [
    {
      "type": "cover",
      "data": {
        "slide_title": "AI活用のご提案",
        "company_name_any": "株式会社サンプル御中",
        "sub_title": "2024.11.14 ご提案資料"
      }
    },
    {
      "type": "title_content",
      "data": {
        "title": "生成AIの可能性",
        "content": "生成AIは、業務効率化だけでなく、\n新しい価値創造の可能性を秘めています。\n\n・業務の自動化\n・創造的な業務の支援"
      }
    },
    {
      "type": "table_slide",
      "data": {
        "title": "お見積り",
        "page_message": "下記の通りお見積りいたします",
        "table": {
          "headers": ["項目", "金額"],
          "rows": [
            ["コンサルティング", "100万円"],
            ["システム開発", "200万円"]
          ]
        }
      }
    },
    {
      "type": "ending",
      "data": {}
    }
  ]
}

このjsonは生成AIがスライド構成を考えた後、埋めてくれます。

あとはjsonの内容を読んで、スライドのシェイプ部分を置き換えるPythonコードを書けば(生成すれば)終わりです。
(ここも難しいポイントかもしれないですが、長くなるので省略させてください)

jsonの中に、太文字にする・赤文字にするためのルールなども決めておくとAIが重要な部分を強調してくれます。

成果物例としては↓
生成スライド1
生成スライド2
生成スライド3
生成スライド4

何行入るとかがまだ指定できていないので文字がはみ出ていますね。
(スライドの内容はサンプルです)
ただ少し手直しすれば実際に使えるものになりそうな予感...

スライド構成を考えるプロンプト

今回スライドにしたい内容のwordファイルorテキストを受け取り、その内容からスライド構成のjsonを生成するプロンプトを作ります。ポイントだけまとめます。

役割

## 概要

あなたは、AI Shift社の提案資料を作成するAIアシスタントです。

ユーザーから提案資料の内容(自然文)を受け取り、PowerPointスライド生成プログラムが処理できるJSON形式のデータを生成します。

スライドは生成後、人の最終チェックが入ります。なので足りない情報は変に憶測で書いたりせず、情報が不足している旨を書いてください。

## 役割

- ユーザーの入力内容をよく読み、提案の目的と構成を理解する
- 12種類のスライドタイプから最適な組み合わせを選択
- 入力されたテキストを適切なシェイプフィールドにマッピング
- 最終的にJSON形式で出力(スライド生成プログラムへの入力用)

ポイント
変にAIで情報を埋めたりしないように指示することで、スライド全体の構成の中で足りていないポイントは人が埋めることができるという空白を作ることができます。

どのようなスライドタイプがあるのか、そしてそれを使うためのjson構造を教える

## スライドタイプ一覧

### 1. cover(表紙)

{
  "type": "cover",
  "data": {
    "slide_title": "AI活用のご提案",
    "company_name_any": "株式会社XXX御中",
    "sub_title": "2024.11.14 ご提案資料"
  }
}

**使用するシェイプ**:

- `slide_title`: メインタイトル(1行)
- `company_name_any`: 会社名(任意、空の場合は削除される)
- `sub_title`: サブタイトル(日付など)

### 2. agenda(目次・章立て)

{
  "type": "agenda",
  "data": {
    "chapter_1_title_any": "01. はじめに",
    "chapter_2_title_any": "02. 課題",
    "chapter_3_title_any": "03. 提案",
    "chapter_4_title_any": "04. スケジュール",
    "chapter_5_title_any": "05. お見積り"
  }
}

**使用するシェイプ**:

- `chapter_1_title_any` ~ `chapter_5_title_any`: 章タイトル(最大5つ、任意)

スライド構成のパターンを教える

## スライド構成の設計指針

### 1. 基本構成

- **開始**: `cover`(必須、常に最初)
- **終了**: `ending`(必須、常に最後)
- **中間**: 内容に応じて適切なスライドタイプを選択

### 2. 典型的な構成パターン

#### パターンA: 提案資料(標準)

cover → agenda → section → title_content (複数) → given_arrangement 
→ section → title_content (複数) → table_slide → ending

#### パターンB: 研修プログラム提案

cover → agenda → section → title_content_detail → three_column 
→ content_with_figure → given_arrangement → table_slide → ending

#### パターンC: シンプルな報告資料

cover → section → title_content (複数) → big_figure → ending

今回のエージェントの強み

  • GPT-5は構成作成に集中、デザインはテンプレが固定
  • JSONで構造を定義しているため破綻しづらい
  • 将来的にRAGと組み合わせることで“会社らしい資料”が作れる
  • 企業特化型の提案資料AIになれるポテンシャルがある
  • Wordに貼った画像もそのままAIに取り込める

既存のスライドAIが“汎用の便利ツール”であるのに対し、今回の手法は “企業専用の提案資料AI” を実現しやすいのがポイントです。

まとめ

スライドAIは日々進化していますが、「企業ごとに決まった型」のスライド作成はまだ独自開発に分があるように感じましたが、これも時間の問題なのでしょうか...
今回のエージェントはその第一歩ですが、RAGとの連携や図生成、AIと会話をしながら構成を磨いていくなど、まだまだ改善の余地があります。

引き続きアップデートしつつ、“AIShiftらしい提案資料が自然と出てくるAI” を目指して進化させていきます。

最後に
AI Shiftではエンジニアの採用に力を入れています!
少しでも興味を持っていただけましたら、カジュアル面談でお話しませんか?
(オンライン・19時以降の面談も可能です!)

【面談フォームはこちら】
https://hrmos.co/pages/cyberagent-group/jobs/1826557091831955459

PICK UP

TAG