AIとの対話をスムーズにする記法
AIに画像やコードを生成させる際、指示(プロンプト)の構造化は生成の精度を劇的に向上させます。LLM(大規模言語模型)や画像生成AIのフロントエンドは、単なる文章よりも属性(キー)と値(バリュー)の関係性が明確なテキストを好みます(CSSの書き方と同じです)。
文章でダラダラと書くと、AIは「どの修飾語がどの名詞にかかっているのか」を見失う(トークンのアテンションが分散する)ことがありますが、一般に「構造化記法」と呼ばれる書き方で、指示内容を構造化することで以下のメリットが生まれます。
構造化記法には、Markdown記法、YAML記法、JSON記法などがありますが、以下、代表的なMarkdown記法 と YAML記法それぞれについて概説します。
Wikipediaの編集、GitHubリポジトリの ReadMeファイル等でも利用される汎用的な書き方です。命令、前提条件、出力フォーマットの区別が視覚的に明確になる点がその強みで、各種プログラミングにおけるコード生成に向いています。
#(見出し)や -(箇条書き)、```(コードブロック)を使うMarkdownは、コード生成AI(ChatGPT, Claude, Geminiなど)に対して最も自然で強力に機能します。AI自体がMarkdownのパース(解析)に極めて最適化されているためです。
いわゆる「要件定義書」を作るイメージでMarkdownを使うと、正確なコードが生成されます。特に「# 制約事項」として除外したいバグや手法を明記すると、手戻りが減ります。
# 目的 Pythonで、指定したディレクトリ内の画像サイズを 一括リサイズするスクリプトを作成してください。 ## 前提条件 - サポートする拡張子: `.jpg`, `.png` - リサイズ後の幅: 1200px(アスペクト比維持) - 外部ライブラリは `Pillow` を使用 ## 出力コードフォーマット 以下の関数を実装してください。 ```python def resize_images(input_dir: str, output_dir: str): pass
付記(最後の3行について)
YAMLは人間にとって最も読みやすく、かつAIにとってもネスト(階層構造)を理解しやすい記法です。特に画像生成AI(MidjourneyやStable Diffusionなど)への指示や、コード生成の前提条件定義で威力を発揮します。
Target: Subject: A boy on a horse Action: Standing on a hill, looking at the sunrise Visual_Style: Art_Style: Japanese anime style Lighting: Volumetric golden hour light Composition: Medium shot, low angle Technical_Settings: Aspect_Ratio: 16:9 Quality: High, 8k resolution
どの記法を使うにしても、以下の4つの要素が整理されていると、AIは迷わず正確な出力を返します。