見出し画像

人間に優しいYAML、機械に強いJSON:プロンプト運用の落とし所 #202

この記事は「前回の続き」かもしれん。
前回は TEXT / YAML / JSON を“用途で持ち替える” って話をした。

今回はその続きで、ワイがいま一番しっくり来てる運用の型——
「入力はYAML、出力はJSON」 を、もうちょい具体に掘る回や。


プロンプトは太る。太るほど改修が地獄になる

正直に言うとワイ、プロンプトを「その場のノリ」で継ぎ足し続けて、気づいたら“秘伝のタレ”みたいに真っ黒にしてまうタイプなんよ…。

で、いざ修正しようとするとこうなる。

  • え、どこ触ったらええねん…

  • 触ったら別のとこ壊れた…

  • 結局、全体が読めない…

これ、センスの問題ちゃう。

構造がないのが原因ってことにしてみた。


結論:YAMLで書いて、JSONで締める(ハイブリッド)

発想を変える。

  • 人間が編集する設計図 → YAML

  • 機械が受け取る納品物 → JSON

だから一番事故りにくいのは 「YAMLで書いて、JSONで締める」 ってやり方。


なぜJSONが“納品物”に向くのか

JSONは「軽量・テキストベース・言語非依存」で、ルールが小さい
その分、パース(読み取り)や検証(バリデーション)が安定しやすい。


なぜYAMLが“設計図”に向くのか

YAMLはコメントも書けるし、見た目もスッキリしやすい。しかも YAML 1.2 は「JSONを公式なサブセットとして扱えるように」整理された(仕様でもそう書かれてる)。 yaml.org


利用上の注意ポイント

1) インデント崩れ

YAMLはインデントで構造が決まる。1文字ズレると意味が変わる。
→ 対策:インデントは2固定、formatter前提。

2) 暗黙解釈(型推論)

仕様的には、YAML 1.2の推奨スキーマでは boolは基本 true/false。yes/on みたいなのは文字列扱い。
でも現実には、互換の都合で ライブラリが on/off をboolにしてくることがある(※PyYAMLの公式ドキュメント例でも on/off が真偽値として扱われる挙動が載ってる))。
→ 対策:文字列にしたいならクォート。チームで“クォート規約”決めると事故が減る。

3) 安全な読み込み(ここ誤読されやすい)

「YAMLが危険」なんじゃなくて、危ないロード方法で扱うと危険になり得る
PyYAMLの公式ドキュメントは、信頼できない入力に yaml.load を使うのは安全ではない、と明確に警告してて yaml.safe_load を案内してる。
→ 対策:外部入力は safe_load/もしくは最初からJSON固定で受ける。


迷子防止の定番構成:入力YAML → 出力JSON

「初心者が触る」「後段でスクリプト/レンダラが受け取る」この2条件があるなら、落とし所はこれやと思う。

入力はYAML、出力はJSON

  • ユーザーが埋めるのはYAML(読みやすい)

  • AIには最終的にJSONで吐かせる(壊れにくい)

  • 受け取ったJSONを検証してから使う(さらに堅牢)


コピペ用:最小テンプレ

① 人間が触る(YAML)

goal: "このプロンプトで達成したいこと"
style:
  tone: "例:ミニマル、フラット、清潔感"
  avoid:
    - "読めない文字"
    - "手の崩れ"
vars:
  subject: "差し替える主役"
deliverable:
  format: "json"

② 機械に渡す(JSON:AIが最終出力)

{
  "goal": "...",
  "style": { "tone": "...", "avoid": ["...", "..."] },
  "vars": { "subject": "..." }
}

③ 変換に使う“指示文”(AIに投げるやつ)

上のYAMLを解釈して、厳密なJSONのみを出力してください。
説明文・コメント・コードブロック・余計なキーは禁止。
JSONが壊れていないことを確認してから出力してください。

まとめ

YAMLは“人間向けの設計図”、JSONは“機械向けの納品物”。
いまのワイは「YAMLで書いて、JSONで締める」が一番事故らん気がしてる。
でも正解は人それぞれやんな。みんなどの運用してる?(TEXT派/YAML派/JSON派)

……って、そんなこと考えてるのワイだけかw
まぁTEXTでも困らんねん。

くっそ長いTEXTプロンプトを“説明”するとき以外は

#プロンプト設計 #構造化プロンプト #プロンプト運用 #プロンプト管理 #プロンプトテンプレート #YAML #JSON #バリデーション #スキーマ設計 #PyYAML #生成AI #ChatGPT #LLM #AI活用 #エンジニアリング #開発 #自動化 #プログラミング #ワークフロー #ナレッジ共有

いいなと思ったら応援しよう!

KITAcore|キタコレ@ログプレイヤー よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!