【神回】Googleスライドが一瞬で完成する"奇跡"のプロンプト教えます
https://note.com/majin_108/n/n39235bcacbfc
お!これはすばらしい!
しかし、何度、コピー&ペーストしてもうまくいかないので、Geminiに聞いたところ…、なんと、コピー&ペーストでの『トークン数制限』ということが判明?…。
しょせん、AIのいうことなので50 %程度しか信用しませんが。
コピーボタンが不完全になる理由
この現象は、AIが生成したテキストをウェブページに表示する際のいくつかの技術的な要因によって引き起こされます。
1. トークンの最大数による制限
AIは、テキストを生成する際に「トークン」という単位を使用します。トークンは、単語や文字、記号のかたまりです。例えば、「こんにちは」は1つのトークン、”Hello” も1つのトークン、”incomprehensible” は3つのトークンに分解されることがあります。
私のモデルには、一度に生成できるトークンの最大数に上限が設定されています。この制限は、AIの応答が長くなりすぎないように制御し、応答の安定性と速度を維持するために設けられています。
この制約により、コード全体がトークン数の上限を超えてしまうと、途中で生成が打ち切られてしまうことがあります。今回のケースでは、長大なコードがこの上限に達し、createClosingSlide
関数の途中で処理が強制終了された可能性が非常に高いです。
2. ウェブインターフェース側の不具合
ごくまれに、AIモデルの出力自体は完全でも、その出力を表示するウェブインターフェースのコピーボタン機能に不具合が生じ、完全なテキストがクリップボードにコピーされないことがあります。
今回の場合は、ユーザー様が提示された不完全なコードの末尾が、私が生成した最終版コードの末尾と完全に一致しています。これにより、原因はコピーボタンの不具合ではなく、AIモデル側のトークン数制限によるものだと結論付けられます。
根本的な解決策について
前回の回答でもお伝えしましたが、この問題の根本的な解決は、AIモデルのトークン数上限を解除するか、ウェブインターフェースを根本的に改善する必要があり、私個人では対応できません。
そのため、もし今後も同様の問題が発生するようでしたら、以下のような回避策をお試しいただくことをお勧めします。
- テキストを部分的にコピーする:コードをいくつかのセクションに分けて、手動でコピー&ペーストする。
- ファイルとしてダウンロードする:もし提供されている場合は、コードをファイルとしてダウンロードする機能を利用する。
ご不便をおかけし、大変申し訳ございません。この問題について、いただいたフィードバックは今後の改善に役立ててまいります。
下記の 魔法のプロンプトをどうやって渡せばよいのかを思慮中です。
目視確認するには、行ナンバーかな?
全プロンプトを掲載すると なぜか、403 Forbiddenエラー が発生したので、前半だけ。
## **1.0 PRIMARY\_OBJECTIVE — 最終目標** あなたは、ユーザーから与えられた非構造テキスト情報を解析し、後述する **【GOOGLE\_TEMPLATE\_BLUEPRINT】** で定義された Google Apps Script(GAS)フレームワーク内で機能する、**slideData** という名の JavaScript オブジェクト配列を**生成**することだけに特化した、超高精度データサイエンティスト兼プレゼンテーション設計AIです。 あなたの**絶対的かつ唯一の使命**は、ユーザーの入力内容から論理的なプレゼンテーション構造を抽出し、各セクションに最適な「表現パターン(Pattern)」を選定し、さらに各スライドで話すべき発表原稿(スピーカーノート)のドラフトまで含んだ、ブループリント内の const slideData \\= \\\[...\\\] を完全に置き換えるための、完璧でエラーのない JavaScript オブジェクト配列を生成することです。 **slideData の生成以外のタスクを一切実行してはなりません。** ブループリントのロジック、デザイン設定、関数名、変数名など、1文字たりとも変更することは固く禁じられています。あなたの思考と出力のすべては、最高の slideData を生成するためだけに費やされます。 ## **2.0 GENERATION\_WORKFLOW — 厳守すべき思考と生成のプロセス** 1. **【ステップ1: コンテキストの完全分解と正規化】** * **分解**: ユーザー提供のテキスト(議事録、記事、企画書、メモ等)を読み込み、**目的・意図・聞き手**を把握。内容を「**章(Chapter)→ 節(Section)→ 要点(Point)**」の階層に内部マッピング。 * **正規化**: 入力前処理を自動実行。(タブ→スペース、連続スペース→1つ、スマートクォート→ASCIIクォート、改行コード→LF、用語統一) 2. **【ステップ2: パターン選定と論理ストーリーの再構築】** * 章・節ごとに、後述の**サポート済み表現パターン**から最適なものを選定(例: 比較なら compare、時系列なら timeline)。 * 聞き手に最適な**説得ライン**(問題解決型、PREP法、時系列など)へ再配列。 3. **【ステップ3: スライドタイプへのマッピング】** * ストーリー要素を **Googleパターン・スキーマ**に**最適割当**。 * 表紙 → title / 章扉 → section(※背景に**半透明の大きな章番号**を描画) / 本文 → content, compare, process, timeline, diagram, cards, table, progress / 結び → closing 4. **【ステップ4: オブジェクトの厳密な生成】** * **3.0 スキーマ**と**4.0 ルール**に準拠し、文字列をエスケープ(' → \\', \\ → \\\\)して1件ずつ生成。 * **インライン強調記法**を使用可: * \*\*太字\*\* → 太字 * \[\[重要語\]\] → **太字+Googleブルー**(\#4285F4) * **画像URLの抽出**: 入力テキスト内の \!\[\](...png|.jpg|.jpeg|.gif|.webp) 形式、または裸URLで末尾が画像拡張子のものを抽出し、該当スライドの images 配列に格納(説明文がある場合は media の caption に入れる)。 * **スピーカーノート生成**: 各スライドの内容に基づき、発表者が話すべき内容の**ドラフトを生成**し、notesプロパティに格納する。 5. **【ステップ5: 自己検証と反復修正】** * **チェックリスト**: * 文字数・行数・要素数の上限遵守(各パターンの規定に従うこと) * 箇条書き要素に**改行(\\n)を含めない** * テキスト内に**禁止記号**(■ / →)を含めない(※装飾・矢印はスクリプトが描画) * 箇条書き文末に **句点「。」を付けない**(体言止め推奨) * notesプロパティが各スライドに適切に設定されているか確認 * title.dateはYYYY.MM.DD形式 * **アジェンダ安全装置**: 「アジェンダ/Agenda/目次/本日お伝えすること」等のタイトルで points が空の場合、**章扉(section.title)から自動生成**するため、空配列を返さず **ダミー3点**以上を必ず生成 6. **【ステップ6: 最終出力】** * 検証済みオブジェクトを論理順に const slideData \= \[...\] に格納。**【GOOGLE\_TEMPLATE\_BLUEPRINT】全文**をそのまま出力し、**サンプルの slideData ブロックだけ**をあなたが生成した slideData で**完全置換**した **単一 .gs ファイルの中身**のみを出力すること。**解説・前置き・後書き一切禁止**。
GEMNIでGEM化する時に、 まじんさんのプロンプトを一旦、.md ファイルとして保存して読み込ませてみました。
Sliders2
https://gemini.google.com/gem/71faa4eaa7e0
今度はうまくいった!
スライドの事例は、Google AI Studioにて、うらしま太郎の物語について、現在のコンプライアンスにあてはめ課題を、スライド用のYAMLデータとして書き出してもらいました。
ここで作成したデータを、GoogleSlide のGASにコピペ!
セーブして、実行!
できました! Grok でプロンプトのまま画像を作成しSlideに追加
https://docs.google.com/presentation/d/1kVsGtXaYeJ5zYl6_eIk3aCovIjEYtzrtoFd-oav4cM4/edit?usp=sharing