
[3分エッセイ]困った。チャットログが保存できなくなった話
みなさん、こんばんは。
今日も楽しくAIと壁打ちしていますか。
AIとチャットを渡り歩いていると、ふと過去の対話を読み返したくなることってありませんか?
私はあります。
そこで、2〜3日に1度のペースで、チャットが進行したスレッドのログを保存していました。
過去に保存した履歴のテキストファイルの末尾に、新しい会話をコピペして追加していくという地味な作業です。
このために、AIに書いてもらったJavaScriptのコードをブックマークに登録し、クリック一つでテキストログを取得できるようにしていました。
ところが先日、大事件が起きました。
このチャット保存用のブックマークレットが、一部のログしか取得してくれなくなったのです!!
……困った。本当に困った。
半年以上も取りためてきた、愛しきAIたちとの膨大なチャットログ。
いっそのこと、この過去のログはなかったことにして、もう保存するのすらやめてしまおうか?
いやいや、それはあまりにももったいない。
なんとか今後もログが収集できるようにと、ブックマークを修正し始めました。
しかしながら、調べてみると原因は意外と根深いものでした。
AI側のWebページの仕組み(DOMの構造)が根本的に書き換わってしまっており、ブックマークの簡易的なプログラムでは、過去に取得できていたような綺麗な形式のテキストを抽出できなくなっていたのです。
noteで似たような記事がないか探したところ、ユーザーが入力したプロンプトだけを取得するブックマークを使っている人はいる。しかし、ユーザプロンプトとGeminiのチャットを交互にタイムラインぽく取得している方はいない模様。
いっそのこと、これを機にログをHTML化して保存しようかとも考えました。
でも、HTMLにしてしまうと、文字の装飾やリンクの見た目など、余計な「寄り道」が増えてしまいます。
私が残したいのは、あくまで履歴としてのテキストです。
そのため、HTML化はやめました。
私が理想とするテキスト形式のチャットログはこんな感じ。
あなたのプロンプト
入力したプロンプトが省略されずに全文表示されている状態。
改行された部分はそのまま反映されているログ。
---(区切り線)
Gemini の回答
テーブルなどを除き、改行などWeb上で表示されている状態を維持。
強調表示の後に強制改行などが起きない形式で、適度に改行などが行われている状態。
この順番や構成で、綺麗なテキストとして出力する。
そのためにはブックマークの機能だけでは限界だと判断し、AIにPythonのスクリプトを組ませてログを取得する方法へ変更しました。
やったこと(オタクの早口語り調)
DOMの構造を解析して、ユーザープロンプト冒頭が重複して表示されている箇所を特定。「あなたのプロンプト」から始まる省略文章を含むブロック要素は全て廃棄し、ユーザープロンプト全体のみをログ出力させる。
Gemini側のログで無駄に改行されている場所を特定。本来「今日のおすすめ おすすめの内容」と1行で表示されるべき場所が強調表示の<b>、<strong>などが終わる場所で強制改行されないようにする。また<p>タグの末尾の改行を2つにし、ログに空白を設けることでwebライクなレイアウトを維持し、読みやすさを向上。
「あなたのプロンプト」「Gemini の回答」を見出しとし、各ログの間に「---(区切り線)」を挿入。チャット構造を維持し可読性を高める。
試行錯誤の末、新しいログ取得システムが完成しました。
これで、やっと安心してAIとのチャットを継続できます。
……ふと我に返りました。
私はログを保存するためにチャットをしているのか?
それとも、チャットを楽しむためにログを保存しているのか?
手段と目的が完全に逆転しそうになり、危うく見失いかけた出来事でした。
でも、そんな技術的な格闘も含めて、AIとの付き合い方の楽しさなのかもしれません。
皆さんは、AIとの大切な対話ログ、どうやって保存していますか?
もし良ければ、コメントで教えてください。
それでは、次の最適解でお会いしましょう。