BLOG

  1. TOP
  2. ブログ
  3. 提案資料は手で作らない。AIに資料生成スクリプトを書かせる仕組み
AI

提案資料は手で作らない。AIに資料生成スクリプトを書かせる仕組み

提案資料は手で作らない。AIに資料生成スクリプトを書かせる仕組み

お客様への提案資料は、当社の業務のなかでも作成頻度が高い成果物のひとつです。その資料づくりについて、当社ではスライドを1枚ずつ手で作るのではなく、AIに「資料を作るスクリプト」を書かせるという仕組みを用意しています。その考え方と実装をご紹介します。

提案資料づくりで毎回発生していた手間

提案資料づくりでは、提案の中身を考える以前の段階で、毎回同じ作業が発生していました。

  • 毎回ゼロから作り始めている
  • 会社テンプレートの配色・フォント・体裁に、手で合わせる作業が地味に重い
  • お客様のブランドカラーに寄せようとすると、さらに手間がかかる

いずれも提案の質そのものには直結しない作業ですが、資料を作るたびに必ず発生します。この「体裁を毎回整え直す繰り返し」をなくすことが出発点でした。

スライドではなく「資料を作るスクリプト」を作らせる

解決策として選んだのは、AIにスライドを1枚ずつ作らせるのではなく、資料を生成するスクリプトを書かせるという方法です。

依頼から完成までの4ステップ

使い方はシンプルで、次の4ステップで資料が完成します。

  1. 「提案資料を作ってほしい」という指示と、作りたいスライド構成を伝える
  2. AIが、資料そのものではなく資料を生成するPythonスクリプトを出力する
  3. そのスクリプトを実行する
  4. PowerPointファイルが出力される

実際の依頼は、次のように作りたい構成を箇条書きで添えるだけです。

提案資料を作ってください。構成は以下です。
1. 表紙
2. 現状の課題
3. 提案内容
4. 導入スケジュール
5. まとめ

生成されるスクリプトの中身

出力されるのは、PowerPointファイルをプログラムから操作できるライブラリ「python-pptx」を使ったPythonコードです。実行前に、ライブラリをインストールしておく必要があります。

pip install python-pptx

スクリプトでは、配色やフォントを「テーマ」としてコードの先頭にまとめ、スライドを組み立てる処理はテーマを引数で受け取ります。組み立て処理そのものは、どのテーマが渡されるかを知りません。

from pptx import Presentation
from pptx.util import Pt
from pptx.dml.color import RGBColor

# 入口: テーマ定義。Pattern 1 は顧客サイトから抽出した値、Pattern 2 は会社標準
THEME_COMPANY = {"main": "252565", "font": "Yu Gothic"}  # 会社標準のネイビー
THEME_CLIENT  = {"main": "1F4E79", "font": "Yu Gothic"}  # 顧客サイトから抽出した色(例)


def build(theme, outfile):
    """テーマを受け取って資料を組み立てる。処理はテーマによらず共通"""
    prs = Presentation()
    slide = prs.slides.add_slide(prs.slide_layouts[5])

    title = slide.shapes.title
    title.text = "現状の課題"

    run = title.text_frame.paragraphs[0].runs[0]
    run.font.name = theme["font"]
    run.font.size = Pt(28)
    run.font.color.rgb = RGBColor.from_string(theme["main"])

    prs.save(outfile)


# 同じ build() に、違うテーマを渡すだけ
build(THEME_CLIENT,  "output_client.pptx")
build(THEME_COMPANY, "output_company.pptx")

あとはスクリプトを実行するだけです。

python create_proposal.py

実行すると、同じディレクトリに output_client.pptx と output_company.pptx の2つが作成されます。中身はまったく同じで、テーマ色だけが違う資料です。ポイントは、成果物であるスライドを直接描くのではなく、ルールを守った資料が必ず出てくる「生成処理」を用意しているという点です。

テーマ色の切り替えは「入口」だけ

資料のテーマ色の決め方によって2つのパターンを用意していますが、生成処理そのものは共通です。

Pattern 1|お客様のブランドカラーに寄せる

お客様のWebサイトの配色を取り込み、テーマ定義に落とし込んでから資料を生成します。手順は3ステップです。

Step 1: 顧客サイトの配色を Google Stitch で取り込む

「Google Stitch」は、作りたいアプリやWebサイトの内容を文章で伝えるだけで画面デザインを生成してくれるツールです。ここにお客様のサイトのURLやスクリーンショットを渡し、「このサイトのトーンに合わせた画面デザインを作って」と指示します。生成された画面から、メインカラー・アクセントカラー・背景色のカラーコードを控えます。

Step 2: 控えた色を DESIGN.md に書く

抽出した色は、資料生成の入口となる DESIGN.md にまとめます。以下は記載例です(※カラーコードはダミー値に置き換えています)。

# Design Tokens

## Colors
- primary: #1F4E79
- accent: #E8A33D
- background: #FFFFFF
- text: #333333

Step 3: DESIGN.md を指定して依頼する

あとは「DESIGN.md の配色で提案資料を作ってください」と伝えるだけです。先ほどのコードの THEME_CLIENT にこの色が入り、Pattern 2 とまったく同じ build() を通って、顧客ブランド色の資料が出力されます。

Pattern 2|会社標準のテーマで作る

当社のコーポレートカラーであるネイビーを標準色として固定し、社内で共通した見た目の資料を作ります。

違うのは「色をどこから持ってくるか」という入口だけで、それ以降の組み立て処理は同じスクリプトが担います。同じ内容の資料をテーマ色だけ変えて生成すると、入口を差し替えた結果がそのまま出力の違いとして現れます。2パターンあるように見えて、やっていることは1つです。

この方式の利点

スライドを手で作る方式から切り替えたことで、次の3点が得やすくなりました。

  • 担当者によって品質がブレない/ルールがコードに書かれているため、誰が依頼しても同じ体裁で出力されます
  • 毎回同じ品質で出せる/体裁を手で合わせる工程がなくなり、資料ごとの出来のばらつきがなくなります
  • 後から直しやすい/体裁を変更したいときは、スライドを1枚ずつ修正するのではなく、生成スクリプト側を直して作り直せます

導入時の注意点

実際に運用するうえで、次の点に注意が必要です。

  • python-pptx が扱えるのは .pptx 形式のみです。旧形式の .ppt を元にする場合は、事前に変換が必要です
  • フォントを明示的に指定しないと、PowerPoint既定のフォントが適用されて体裁が崩れることがあります。上記の font のようにテーマ側に持たせますが、font.name が効くのは英数字だけなので、日本語の文字には別途指定が必要です
  • 抽出したブランドカラーをそのまま本文の文字色に使うと、背景とのコントラストが不足する場合があります。濃淡2色を用意しておくと安全です

まとめ

今回の取り組みのポイントは、AIに成果物を直接作らせるのではなく、自社のルールを埋め込んだ「生成処理」を書かせて動かすという点にあります。ルールが人の手作業ではなくコードの側にあるため、品質が担当者に依存せず、あとから変更もできます。

当社では、AIを活用した業務効率化や、Webシステムの設計・開発に関するご相談を承っております。業務のなかで繰り返し発生している手作業について、仕組みで解決できないかお考えの際は、お気軽にお問い合わせください。

PAGE TOP