見出し画像

AIスライド自動作成サービスを開発したので発表する【個人開発】

※本記事は1月2日投稿予定だった記事の内容を一部修正の上、投稿したものです。令和6年能登半島地震により被災された皆様に心よりお見舞いと申し上げます。また、一日も早い復旧をお祈り致します。


(以下本文)
あけましておめでとうございます。

本日は私が個人開発したAIを使ったスライド(PowerPoint)の自動生成サービスをご紹介いたします。

年末年始休暇のおそらく8割くらいを費やし開発しましたので、ご一読頂けると幸いです。また、あわよくば、サービスもお使い頂けると幸いです。

AIには、12月に発表されたばかりのグーグルのAIのGemini(ジェミナイ?ジェミニ?)を使っています。APIを探したり、AIのプロンプトを調整したり開発にあたり、苦労話等も可能な限りお話し致します。

1|AIスライド生成サービスの概要

まずはさっそくどんなスライド=PowerPointが作成できるかご紹介します。
最初の所謂プロンプトの入力画面はこんな感じです。

入力画面のイメージ

ITサービス、製品、技術などの名称を入力してください。AIがメリットとデメリットを検討して一枚もののスライドを生成します。

コツとしては「~の導入」「~の利用」など名詞で止めて貰うと比較的精度が上がります。また、比べる対象を追記頂くことも可能です。
(例)デスクトップPCと比較したノートパソコン

作成が開始されます

ボタンを押したら、10~15秒ほどブラウザを閉じずそのままお待ちください。生成が完了するとアイコンが緑色になり、ダウンロードボタンとURLが表示されます。

生成完了画面

あとは、ダウンロードボタンを押すとこんな感じでパワポ(pptx形式)がダウンロードできます。すごくシンプルです。

生成されるスライド例

ファイルは直接ダウンロードできますが、うまくできない場合は、URLリンクからGoogleスライドに飛んでダウンロードしてください。

2|登録方法および制限事項

サービスを開発したと冒頭お話しましたが、正確にご説明すると、私が以前より運営しているWebサービスに機能を追加したことになります。

サービス名称はポケプレと言い、資料作成を行うビジネスパーソンや学生向けのプレゼン資料・パワポテンプレートのダウンロードサービス(Saas)になります。

というわけで、スライド生成機能だけでなく、色々なパワポ資料もダウンロードできますので、ご興味ありましたら、登録頂けると幸いです。

ユーザー登録~生成画面へ

ユーザー登録は無料です。Webサイトからご登録ください。名前とメールアドレスだけでもはじめられます。

「無料ではじめる」をクリック

登録が完了すると、資料検索などを行うホーム画面に遷移しますので、右上のAIアイコン(≒Googleのパクリ)をクリックしてください。ここから、冒頭で説明したAIスライド生成機能が使えます。

登録完了後の[ホーム]画面の右上のアイコンをクリック

制限について

今回AIのエンジンに、GoogleのGemini APIを使っていますので、それに関する制限があります。ご了承ください。

その①1分あたり60リクエストまで
→Google Gemini APIの制限です。私のWebサイトの訪問者の数からするとおそらく大丈夫とは思いますが、集中的にアクセスがあった場合、エラーになる可能性があります。

その②GoogleのAI学習に使われる?
→Googleが明確に言っているわけではないと思いますが、当然GoogleもGeminiをよりよいものにしたいと思っているはずです。したがって、入出力された情報は、今後のGoogleのAI学習の参考にされると思ってよいでしょう。また、会社などでAIの利用が禁止されている場合もご利用にはご注意ください。

その③(無料の場合は)月2回までの生成
→Googleではなく、私のポケプレの制限ですが、スライド生成はフリープランは月2回まで、有料プレミアムプランの方も月20回までとさせて頂きます。

理由としては、無料で個人で運営していくのが本当に大変ということがあります。また、現状、世の中にあるスライド生成サービスはそのすべてが基本は有償(無料であったとしてもプレビューやPDFや画像の出力止まり)と思いますので、無料で2回でもご容赦頂ければ幸いです。

3|開発のあれやこれや話

ここからは、Gemini AIやAPIを使った開発や技術関係のお話をいたします。

全体構成

まずはじめにシステム的な全体構成を説明します。

今回のAIスライド生成機能の構成は、以下のように非常にシンプルな構成になっています。一文で言うと、ユーザから入力された情報をGeminiへ渡し、その回答を元にGoogle Slideでスライドを生成するだけです。

本スライド生成機能の全体構成図

それぞれのデータのやりとりは、全てAPI(一部+RPA)を使い、ほぼコーディングすることなく機能を実現しています。

問題その①API見つからない問題・・・

次に開発にあたっての苦労話をしましょう。

やはり、一番は「パワポを操作するAPI見つからない」問題でしょうか。

SEや技術職でない方にもわかりやすいように簡略化して説明すると、スライド自動生成を行うためには、本来であれば、PowerPoint(≒Microsoft 365)をプログラム等使い自動で操作する必要があります。

しかしながら、当たり前ですが、一個人や企業がMicrosoft 365のソースコードやデータベースを直接触れるはずがありません。

そこで登場するのがAPIです。

決められたAPIのルールに従って「こんなデータがほしいです」とAPIにリクエストを送信することで、API提供元企業は、データベースなどの機密情報を勝手に弄られず、リクエスト側(我々世界中の開発者側)は、複雑なプログラミングをすることなく、簡単に必要なデータだけをやりとりすることができます。

これがAPIです。

ということで、PowerPointを操作できるAPIがないか探すのですが、、、

結論言うと、ありません(笑)

こういうのは基本メーカー側、つまり、PowerPointであればマイクロソフト社が用意してくれているものなのですが、、、もちろん、公式HPに記載がないわけではないです。

しかし、例えばこのAPIドキュメントを皆様読む気合いありますか?

正直、私は読む気にはなれなかったです(笑)

また、そもそも自分はプログラマーではないので、このようなレベルだと、技術的にも難しかったというのが実際のところです。

もちろん3rdパーティも隈なく探しましたが、どれも一長一短で利用が難しいものでした。

PowerPointGeneratertAPI
→おそらくサービス中止。APIのInternal Server Errorで応答しないし、問合せしても帰って来ません。

Airslate
→ホームページ上にはPowerPointを操作できるとあったので試してみましたが、APIでサービスを開発するものではなく、電子サインのやりとりがSaas上でできるというサービスのようでした。

ASPOSE
→C++、.NETなどでライブラリーとして使うことができますので、ガチのプログラマーの方はこちらを使うことをお勧めします・・・

というわけで、何日も色々なサービス調査した結果、最終的にいつものごとくGoogle社(≒Google Slides API)に頼ることになります。PowerPointではなく、Google Slideの方を操作して、最後にダウンロードする時に拡張子だけをpptxに変換することにしました。


問題その②Gemini-APIが結構アレである問題・・・

次なる関門は、やはりGeminiのAI回答精度の問題です。

構成図の通り、本スライド自動生成機能は、はじめにGemini APIに命令して回答された文章を、Google Slides APIを使ってGoogle Slideに差し込むという手順になっています。

従って、Geminiの回答文章の精度が鍵になるわけですが、、、率直に言って、今のGemini Proの回答精度は、ChatGPT3.5と同等かそれ以下と感じます。

まずは文章そのものの問題です。

下記はGoogle合同会社のSWOT分析をしてもらった例です。

ChatGPT3.5の回答
GeminiProの回答

この回答ケースであれば、私個人としてはどちらも同程度のレベルと感じます。(※内容や日本語としての自然な文章という点も含めて)

しかし、Geminiの場合、何回か質問をすると以下のような回答パターンが出力されます。

たまに出力される回答

「グーグルは」という主語が繰り返し記載されており、お世辞にも自然な文章とは言えません。この例を見ると、ChatGPTは人間的な何かしらの要約をして回答しているように感じるのに対して、Geminiは、あくまで調べた複数の情報を(あまり考えずに)そのまま箇条書きにしているだけのように、私には感じられます。

また、厳格な出力項目/形式の指定も難しいです。

《例》
・箇条書きをアスタリスク(*)から日本でよくある「・」「②」に変更したい
・箇条書きではなく文章で回答出力してほしい
・内容に応じて箇条書きや文章どちらかの形式で出力してほしい
・項目は「**1.強み**」ではなく「①強み」の形式で出力してほしい

こういった細かな形式の指定も、Geminiは(ChatGPT3.5よりも)苦手と感じました

こういった出力における制約条件については、普通の人間であれば間違えないところ、AIは、数回に1回程度、必ず間違えて回答してくるように感じました。

AI特有の「毎回同じ回答にならない」という癖が、絶対に守ってほしい制約条件についても適用されてしまうようです。(※temperatureという設定である程度調整はできます)

スライド自動生成サービス実現するには、こういった出力形式の細かな指定ができないと、そのあとの正規化を経たデータの構造化ができません。構造化ができなければ、AIうんぬん以前に、ITシステムで取り扱うのは基本的には不可能と言ってよいと思います。

解決策

まあ、難しいと言っても仕方がないので、色々、思考錯誤の上、一定の割り切りを経て解決できた結果のプロンプトをご紹介します。

#出力条件
・A1~F6の6項目で常に出力する
・A1は○○◯とする
・B2は○○○とする
・C3は・・・(以下省略)

※上のSWOT分析の例ではなく、実際にポケプレのスライド生成サービスで使っているプロンプト例です。

丸囲み数字も全角点も一向に理解しないので、結局、力技ですべて厳格に英数字で指定しました(笑)また、最初の命令文で"常に"と記載している点もポイントです。これを記載しないと偶に指定を守らず、1.2.3. ・・・などのように出力されることがあります。

まあ、AIは常に変化、進歩していますし、近い将来、もっとAIの頭が良くなってくれればよいなと思います。こういった技術と付き合う仕事柄である以上、今日のプロンプトが明日には通用しない、反対に、逆に明日には無茶苦茶スマートになっているということもあり得ます。

4|今後の展望

最後に今後の展望とまとめです。

シーンに応じたスライド生成機能を随時追加していきたい

まずはやはり、ポケプレ自体のサービス/機能の拡充ですね。現状は、メリット・デメリットスライドの生成しかできませんが、今後は、生成できるスライドの種類を追加していく予定です。

今回を機に、ポケプレを使う事で
・テンプレートから検索、利活用して、資料を作成する
・AIスライド生成を使い、ゼロから資料を作成する

資料作成に対して両方のアプローチができる最初の一歩になったと感じています。

このままであれば、ChatGPT4.0を選ぶつもり

その一方、AIのエンジンについては引き続き検討中です。今回はGeminiを利用しましたが、正直、このままのレベルであれば、ChatGPT4.0に変更した方がよいかなという気持ちではあります。

自身の予算AIの精度次第なところはもちろんありますが、ポケプレのユーザの方がどれくらいAIスライド自動生成機能を使ってくれるかが一番重要だと思いますので、そういった利用状況を鑑み検討していきます。なので、ご興味ある方はどんどん機能を使ってもらえると嬉しいです。

というわけで、今回は開発したAIスライド生成機能のご紹介でした。

ありがとうございました。


ポケットサイズのプレゼン資料ダウンロードサイト「ポケプレ|Pokepre」を開発/運営しています。350ページ以上のビジネス資料テンプレート(パワポ)をいつでも誰でもダウンロードすることができます。

DLできる資料:提案書、企画書、ITトレンド資料、スケジュール表/カレンダー、ビフォーアフター図、システムマップ、プロジェクト体制図、業務フロー図・・・and more!

この記事が気に入ったらサポートをしてみませんか?