記事公開日
【Gem Builder v2】コードブロックのネスト対策!Gemの出力を改善してみた!
この記事のポイント
Gemのカスタム指示を作成をサポートするGem「Gem Builder」をv2へアップデートしました。
- 変更点:生成されるプロンプトのコードブロックが途切れないように改善。
- メリット:コピペ一発で完了するため、地味ながら生産性が向上します。
こんにちは!DXソリューション営業本部の大和矢です。
以前のブログで、Gemのカスタム指示を対話形式で作ってくれる「Gem Builder」をご紹介しましたが、みなさん活用されていますでしょうか?
「まだ読んでないよ」という方は、ぜひ前回の記事もあわせてご覧いただけると嬉しいです。
さて、今回はその「Gem Builder」のアップデートのお知らせです。
名付けて「Gem Builder v2」です!
なぜv2?
「v2」と銘打ちましたが、機能が劇的に増えたとか、AIが別人のように進化したといった、メジャーアップデート級の変化があるわけではありません。
今回の変更は小幅なアップデートなので、ソフトウェアのバージョン管理で言えば本来は「v1.1」くらいが妥当です。
ですが、ブログのタイトルやGemの名前に「v1.2」と付けるのは少々細かいですし、何より「小数点以下の管理が面倒くさい」という個人的な理由で、思い切って「v2」としました(笑)。
名前は大きく出ましたが、中身は「地味だけど結構嬉しい」改善を行っています。
具体的には、生成されたコードブロックが途切れる問題を解消しており、これによりコピペの生産性がグッと上がります。
Original vs v2 挙動の比較
では、実際に何が変わったのか、同一画面で比較してみましょう。
以下の画像は、Original(旧版)とv2に対し、全く同じプロンプトを投げた結果です。
プロンプト:
生成AIが生成した画像を、YAMLに変換してくれるGemが欲しい。
詳細はあなたに全ておまかせします。深堀質問は不要です。
違いが一目瞭然ですね。
Original(左側)の問題点
Originalもv2も、出力されるプロンプト内にはYAML定義用の「コードブロック(```)」が含まれています。
しかし、Originalでは入れ子構造(ネスト)の対策をしていませんでした。
そのため、外枠も内側も同じ「3つのバッククォート」で記述されてしまい、YAMLのコードブロックが終わった箇所で「全体のコードブロックもここで終了」と判定されてしまっています。
結果として、本来コードブロック内に収まるべき「制約事項(Guardrails)」などが外にはみ出して出力されています。
これでは右上の「コードをコピー」ボタンを押しても、後半部分がコピーされず、手動で範囲選択し直すという非常にアナログな作業が発生していました。
v2(右側)の改善点
一方、v2を見てください。
こちらは外枠を「4つのバッククォート」にする入れ子構造を採用しています。
これにより、中に「3つのバッククォート」のYAML記述があっても、途中終了せず、最後まで一つの塊として出力されています。
「制約事項」もきれいにコードブロック内に収まっており、コピーボタン一つで完璧に取得できるようになりました。
解決策:コードブロックのネスト対策
この挙動を実現するために、v2のシステムプロンプトには以下のルールを追加しました。
ルール7:出力フォーマット制御(コードブロックの保護・重要)
あなたが生成するシステムプロンプト本文の中に「コードブロック記法(```)」が含まれる場合、**全体を囲む外枠のコードブロックには、必ず「4つのバッククォート(````)」または「3つのチルダ(~~~)」を使用してください。**
* 目的: ユーザーがコピー&ペーストする際に、内側のコードブロックによって選択範囲が途切れる表示崩れを完全に防ぐため。
Markdownには「外枠のバッククォートの数を増やせば、中にコードブロックを入れ子(ネスト)にできる」という仕様があります。
これをGem Builderのカスタム指示に追加することで、構造化データやスクリプトを含むプロンプトを作らせても、崩れないようにしました。
また、Originalの方では、カスタム指示がたまに英語になっていたので、必須条件に以下も追記しました。
ルール8:日本語で出力してください。
Gem Builder v2用プロンプト
それでは、アップデートされたシステムプロンプトを公開します。
以前と同様に、以下のコードブロックをコピーして、Gemの「カスタム指示」欄に上書き(または新規作成)してください。
これを設定するだけで、あなたのGem Builderがv2に進化します!
まとめ
今回は、Gem Builderのアップデート(v2)についてご紹介しました。
v2といえるほど大幅アップデートではないものの、実際に使ってみると、この「コピペが一発で決まる」体験は、地味ながらも日々のストレスを大きく軽減してくれます。
プロンプトエンジニアリングの世界は日々試行錯誤です。また改善点があれば、こうしてブログでシェアしていきたいと思います。
ぜひ、新しいGem Builderを使って、快適にカスタムGemを量産してみてください!
最後までお読みいただき、ありがとうございました。
筆者は普段、QESの技術ブログにて、AI関連メインの記事を公開しているので、興味がございましたら、ぜひご覧ください。
QUICK E-Solutionsでは、AIを活用した業務効率化・システム導入のお手伝いをしております。
それ以外でも QESでは様々なアプリケーションの開発・導入を行っております。提供するサービス・ソリューションにつきましては こちら に掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、ぜひ一度 お問い合わせ ください。
※このブログで参照されている、Google、Gemは、米国およびその他の国におけるGoogleの商標または登録商標です。

