「仕様駆動」という発想がなぜ重要なのか
プレゼンテーション資料の作成は、エンジニアや技術マネージャーにとって避けられない業務のひとつです。しかし多くの場合、「何を伝えるか」を考える時間よりも「どのようにスライドを作るか」という作業に多くの時間が費やされています。テキストを並べ、フォントを整え、画像を探して配置し、全体のデザインを調整する——これらの作業はコンテンツ設計そのものとは本質的に別の話です。
AWSが公開したSpec-Driven Presentation Makerは、この問題に正面から向き合ったアプローチです。「仕様駆動(Spec-Driven)」という考え方の核心は、「何を伝えたいか」を先に設計し、スライドの実装はAIに任せるという分業の実現にあります。ソフトウェア開発においてAPIの仕様(インターフェース)を先に定義してから実装を行うのと同じ発想です。
プレゼン資料制作においてこの分業を実現すると、以下のような恩恵が得られます。
- 構成者はメッセージ・伝達内容の設計に集中できる
- スライドの見た目や体裁を整える繰り返し作業が不要になる
- 内容変更があっても、仕様を更新するだけで資料全体を再生成できる
- 複数人が共同で仕様を設計し、AIがそれを実体化するワークフローが成立する
この考え方は、生成AIを「道具」として使う段階から「設計のパートナー」として活用する段階への移行を象徴しています。Spec-Driven Presentation Makerはそのひとつの実装例として、Amazon Bedrockをはじめとするマネージドサービスの組み合わせで実現されています。
Spec-Driven Presentation Makerのアーキテクチャ全体像
Spec-Driven Presentation MakerはPythonベースのアプリケーションで、GitHubリポジトリ(aws-samples/generate-your-presentation-with-llm)で公開されています。アーキテクチャは4つのレイヤーで構成されています。
- UIレイヤー — Streamlitを用いたWebインターフェース。ユーザーがトピック・スライド数・連絡先情報などを入力します
- 処理レイヤー —
pptx-generator.pyが中心的な役割を担い、プロンプト生成・バリデーション・各モジュールの調整を行います - AIサービスレイヤー — テキスト生成はAmazon BedrockのClaudeシリーズ、画像生成はAmazon Nova Canvasが担当します
- 出力レイヤー —
python-pptxライブラリがPowerPointファイル(.pptx)を組み立てます。OpenOfficeでサムネイルのレンダリングも行います
使用技術スタックは以下のとおりです。
- LLM — Claude 3.5 Sonnet / Claude 3.7 Sonnet / Claude 4 Sonnet、Amazon Nova Pro / Nova Lite(Amazon Bedrock経由)
- 画像生成 — Amazon Nova Canvas
- アプリケーション — Python 3.9.x、Streamlit、python-pptx、Poetry
- インフラ — EC2(t2.medium)+ Application Load Balancer(HTTPS)、IAMロール、暗号化EBSボリューム
インフラはシンプルな構成ながら、ALBを前段に置くことでHTTPSによる安全なアクセスを実現しています。また、AWS Systems Managerのパッチマネージャーを統合してEC2の運用管理も自動化しています。MIT-0ライセンスで公開されているため、商用利用も可能です。
Converse APIとFunction Callingによる構造化スライド生成
このプロジェクトの技術的な核心は、Amazon BedrockのConverse APIとTool Calling(Function Calling)の組み合わせです。従来のinvoke_modelエンドポイントを使う方法と比較して、Converse APIはマルチターンの会話フローに対応しており、全ClaudeシリーズとNovaシリーズに統一されたインターフェースで呼び出せます。
スライド生成のフローは次のように進みます。
- ユーザーがトピックとスライド枚数を入力
- コンテンツモデレーション処理でトピックの適切性を確認
- ClaudeがConverse API + Tool Callingで構造化JSON形式のスライド仕様を生成
- JSONバリデーション・リペア機構で出力の整合性を確認
- Nova Canvasで各スライドの画像を生成
- python-pptxでPowerPointファイルを組み立て
- OpenOfficeでサムネイルをレンダリングしてプレビューを表示
特に重要なのがTool Calling(Function Calling)の活用です。スライドの仕様を「ツール呼び出し」の引数として定義することで、Claudeはフリーテキストではなくtitle、subtitle、text、slideFormatといった構造化されたフィールドを持つJSONを出力します。これにより、後続のpptx組み立て処理がJSONをそのまま入力として受け取れるため、パース処理のエラーが大幅に減少します。
また、JSONレスポンスが不正な形式で返ってきた場合のリペア機構も実装されており、プロダクション品質のエラーハンドリングが実現されています。

Converse APIのもうひとつの利点は、モデルの切り替えが容易な点です。Claude 3.5 SonnetからClaude 4 Sonnet、あるいはAmazon Nova Proへの変更は設定値の変更だけで対応でき、アプリケーションロジックに手を加える必要がありません。これはモデルの進化に合わせてシステムを段階的に改善していく際に大きなアドバンテージとなります。
Amazon Nova Canvasで画像も自動生成する
Spec-Driven Presentation Makerが「完全自動化」を実現できている理由のひとつは、スライドに挿入する画像までAIで生成している点です。ここで活用されているのがAmazon Nova Canvasです。
Nova Canvasはテキストプロンプトから高品質な画像を生成するAmazonのファーストパーティ画像生成モデルです。Bedrock上でinvoke_modelエンドポイントを通じて呼び出され、生成された画像はbase64エンコードされた形式で返却されます。アプリケーション側でこれをデコードして画像データとして取り出し、python-pptxのAPIでPowerPointスライドの指定したプレースホルダーに配置します。
具体的な処理の流れは以下のとおりです。
- スライドのタイトルや内容をもとに、Nova Canvas向けのプロンプトを自動生成
- Nova Canvasに画像生成リクエストを送信(サイズ・品質などのパラメータを指定)
- base64エンコードされた画像データを受け取り、バイナリに変換
- python-pptxの
add_pictureメソッドで対象スライドの画像プレースホルダーに挿入

Nova CanvasはAmazon Bedrock上で直接呼び出せるため、別サービスのAPIキーを管理する必要がありません。IAMロールによる認証でセキュアに利用でき、AWSのコスト管理ダッシュボードで画像生成コストも一元的に把握できます。また、セッション単位でトークン使用量と画像生成コストを計算・表示する機能も備えており、組織導入時の予算計画にも活用できます。
導入・実行環境の構築ポイント
このアプリケーションを実際に動かすにあたり、環境構築で押さえるべきポイントをまとめます。
IAM権限の設定については、EC2インスタンスに付与するIAMロールにbedrock:InvokeModel権限が必要です。利用するモデル(Claude、Nova Canvas)のモデルARNを絞り込んでポリシーに明示することで、最小権限の原則に従ったセキュアな設定が実現できます。
Pythonパッケージ管理にはPoetryを採用しています。pyproject.tomlに依存関係が定義されており、poetry installコマンド一発で必要なパッケージがインストールされます。主要な依存パッケージは以下のとおりです。
streamlit— Webアプリケーションフレームワークpython-pptx— PowerPoint生成ライブラリboto3— AWS SDK for Python(Bedrock呼び出しに使用)
モデルのアクセス有効化も重要なステップです。Amazon Bedrockではデフォルトでほとんどのモデルへのアクセスが無効になっています。AWSマネジメントコンソールのBedrock設定画面から、使用するClaudeおよびNova Canvasモデルへのアクセスを事前に有効化しておく必要があります。
OpenOfficeのインストールはサムネイルのプレビュー生成に必要です。EC2インスタンスにOpenOfficeをインストールし、コマンドライン経由でpptxファイルをPNG形式に変換することで、Streamlit UIにプレビューを表示しています。
インフラ構成はEC2 + ALBというシンプルな構成で、ターミネーション保護や暗号化EBSが設定されているため、社内ツールの本番運用にも耐えられる設計です。
業務文書自動化への応用と今後の展望
Spec-Driven Presentation Makerが示した「仕様を定義してAIに実装させる」という発想は、プレゼンテーション以外の業務文書にも広く応用できます。
たとえば、提案書の自動生成です。顧客情報・課題・提案内容を構造化データとして定義し、Bedrockがそれをもとに提案書スライドを生成するワークフローを構築することで、営業担当者が提案書作成に費やす時間を大幅に削減できます。Ragateが取り組むAX戦略(AI Transformation)の実践例として、この種のドキュメント自動化は業務工数削減の有力な手段です。
また、週次・月次レポートの自動生成への応用も考えられます。ダッシュボードから指標データを取得し、Claudeが解釈して「先月比○%改善」といったサマリーを生成し、スライドにまとめる仕組みは、管理職の定型報告業務を自動化します。
さらに、本アプリケーションのアーキテクチャを参考にしながら、Google SlidesやKeynoteへの出力拡張も技術的には可能です。python-pptxの代わりにGoogle Slides APIを組み合わせることで、組織内の標準ツールに合わせたスライド自動生成が実現できます。
Amazon BedrockはClaudeをはじめとする複数のモデルを統一的なAPIで呼び出せるため、モデルの切り替えがアプリケーションの変更を最小限に抑えながら行えます。生成AIモデルは急速に進化しており、今後さらに高精度なスライド生成が可能になることが期待されます。
「伝えたいことを先に設計し、スライド構築はAIに任せる」というSpec-Drivenの考え方は、エンジニアが本来集中すべき設計・思考の質を高めるための大きな一歩です。Amazon Bedrockを活用したこの自動化パイプラインは、今すぐ自社環境に実装できます。















