仕上げは AI との協働でやっています。事実と表現は著者本人が確認しています。
手動コピーで失ったもの
Google AI Studio(Gemini)でAIと長時間会話したセッションを保存しようとして、ブラウザから会話をコピーしてテキストファイルに貼り付けた。ファイルサイズは数百KBになり、これで安心と思っていた。
後日、同じセッションをJSON形式でエクスポートしたら、ファイルサイズは数MBあった。半分以上のデータが消えていたことになる。
何が消えたのか
手動コピーで取れなかったのは大きく4つだった。
ひとつはシステムプロンプト。AIに最初に与えた指示の部分は、ユーザーとAIの会話本文には含まれないので、ブラウザのコピーには乗らない。ふたつめは長い応答の後半で、「続きを表示」ボタンを押さずにコピーすると途中で切れる。複数のセッションで応答が途中で切れていた。三つめはコードブロック内の改行が崩れるケース。JSONやYAMLを含む応答で、インデントがずれて構文エラーになっていた。四つめは思考過程(reasoning)で、モデルによってはチャット画面で折りたたまれているので、コピーすると消える。
どれも画面の上では見えないか、ボタンを押さないと展開されない領域で、コピーは「いま見えているもの」しか拾えない。
JSON形式でエクスポートする
Google AI Studio には JSON で書き出す機能があって、セッション画面右上の「...」メニューから Export → JSON で取れる。これで取った分にはシステムプロンプトも思考過程も含まれている。
実測: 手動コピー vs JSONエクスポート
8件のセッションで比較した。
| セッション | 手動コピー | JSON | 欠損率 |
|---|---|---|---|
| A | 数十KB | 150KB台 | 7割程度 |
| B | 約90KB | 200KB台 | 5-6割程度 |
| C | 30KB台 | 約100KB | 6-7割程度 |
| D | 50KB台 | 180KB台 | 7割程度 |
| E | 60KB台 | 240KB台 | 7割程度 |
| F | 20KB台 | 70KB台 | 6割程度 |
| G | 20KB台 | 50KB台 | 5-6割程度 |
| H | 十数KB | 30KB台 | 6割程度 |
| 合計 | 数百KB | 1MB程度 | 6-7割程度 |
平均すると6〜7割が手動コピーで取れていなかった。
気付くのが遅れた理由
手動コピーで保存したファイルを開いても、会話の流れ自体は読めてしまう。冒頭と結末がつながっていれば、途中が欠けていても違和感はあまりない。特にシステムプロンプトは本文に含まれない領域なので、欠けていても「何かおかしい」とは感じない。
気付いたのは、後で同じセッションを別ルートで参照する必要が出たときで、その頃には元のチャットセッションがブラウザ側からなくなっていることもあった。
JSON取得後の運用
JSONで取った分は20万行超になった。一度に開けるサイズではないので、200個超のファイルに分割して、概要を書いた INDEX.md を別に置く形で扱っている。grep で目的のセッションを探せる構造で、いまのところ落ち着いている。
sessions/
├── session-001.jsonl
├── session-002.jsonl
...
└── session-XXX.jsonl
INDEX.md
以降は JSON でエクスポートするようにした。手動コピーは画面に見えている分しか取れない、というのを後から知って同じ取りこぼしをしないように、というだけの運用ルールだ。定期的に出すべきとは思っているが、まだ習慣化できていない。