生成AIを使う機会も増えてきました。
ここでは、生成AIのプロンプトや出力としてやり取りするデータ・構造表現の主要なものをおさらいとして紹介します。
1. CSV
Comma-Separated Values(もしくは、Character-Separated Values)
カンマ(",")もしくは特定の文字でデータを区切り、行を改行で表現することで、表形式のデータを表現することができる。
データ交換用のデファクトスタンダードとして、古くから使われている。
階層構造や複雑なデータ構造は表現することができない。
(例)
name,color,pieces
リンゴ,赤色,5
2. XML
eXtensible Markup Language
汎用的に利用できる拡張可能なマークアップ言語。
タグと呼ばれる特定文字列で囲むことでデータ(文書)構造を表現する。
タグで囲んで記述する必要があることから、XML自体が大きくなりやすく、処理コストも高い。
代表例として、ワード文書(.docx)やエクセルファイル(.xlsx)がある。
(例)
<fruits>
<name>リンゴ</name>
<color>赤色</color>
<pieces>5</pieces>
</fruits>
3. JSON
JavaScript Object Notation
JavaScriptにおけるオブジェクト表記を参考に作られたデータ形式。
中括弧”{}”でオブジェクトを表し、キーと値のペアで構成される。
JavaScriptで使用することを想定し開発されたが、特定のプログラミング言語に依存しないデータ交換フォーマットとして多くのプログラミング言語で利用されている。
(例)
{
"fruits": {
"name": ”リンゴ”,
"color": ”赤色”,
"pieces": 5
}
}
4. YAML
YAML Ain't Markup Language(もしくは、Yet Another Markup Language)
インデントにより階層構造を表現し、キーと値のペアで構成される。
インデントで階層構造を表現するため、見た目がシンプルで直感的に理解しやすい。
コメントを書くこともできることから、設定ファイルなどで広く利用されている。
JSONと互換性が高く、JSONのスーパーセットと呼ばれることもある。
(例)
fruits:
name: リンゴ
color: 赤色
pieces: 5
5. Markdown
マークダウン
文章を記述するための記法(マークアップ言語)の一つ。
簡単な記号を使って文章の構造や装飾を指定することができる(軽量マークアップ言語)。
生成AIのデフォルトの出力形式としても利用されている。
(例)※以下は、表形式の記述
# fruits
| name | color | pieces |
| --- | --- | --- |
|リンゴ|赤色|5|
まとめ
| 形式 | 特徴 | 歴史 | 公式サイト/仕様 | MIMEタイプ/ 主なファイル拡張子 |
| CSV | カンマ(もしくは特定文字)で区切ることで、表形式のデータを表現できる。処理コストが低く、ソフトウェアのログ出力の形式としても広く利用されている。 | 1960年頃~2005年 RFC4180 | IETF ・RFC4180 |
text/csv .csv .tsv |
| XML | タグの入れ子によりデータ構造を表現する。高度に構造化されているため、他の形式とくらべると若干わかりにくい。標準的なデータ交換用フォーマットとして広く利用されている。 | 1998年 XML1.0 2004年 XML1.1 |
W3C ・XML1.0 第5版 |
application/xml .xml |
| JSON | JavaScriptにおけるオブジェクト表記法のサブセット。Webアプリケーションとサーバ間のインターフェースとして広く利用されている。 | 1996年頃~2006年 RFC4627 | IETF / JSON ・RFC8259 ・ECMA-404 ・ISO/IEC 21778:2017 |
application/json .json |
| YAML | インデントにより階層構造を表現し、キーと値のペアで構成され、直感的に理解しやすい。設定ファイルなどで広く利用されている。 | 2001年 初版 2004年 YAML1.0 |
YAML ・YAML 1.2.2 |
application/yaml .yaml .yml |
| Markdown | 軽量マークアップ言語。手軽に文章構造を記述できる。生成AIのデフォルトの出力形式としても利用されている。 | 2004年 初版 | Markdown | text/markdown .md |
上記の中でも、YAMLは人が理解しやすく、簡潔に記述できることからプロンプトのレシピの記述に利用されてきています。
データ・構造表現をうまく使い分け、生成AIを活用していきましょう!

