What is this?
半分 (Copilot の) ポエム (とそれに対するツッコミ)。
Copilot を利用した Client App を作成していたのですが、 WebView2 が会社のポリシーで Microsoft 365 Copilot のログインを遮断していることが判明したため、とりあえず Copilot Free 版の API アクセスポイントを利用する方向で進めていました。
その調査過程の結果の備忘録です。
結論
20ターン分くらいより前の会話は記憶から失われる、という動作っぽいという結論。
セッションの回数制限はなくなったようです。
記憶は失う & 記憶を失っても知ったかぶりをするのはまあいつもの AI しぐさということで…
とりあえずアプリ作成にはこの API を利用することで (セッション切れ処理を考えずに) 形にしてしまえそうなので良しとしました。
検証内容
API の特定と WebSocket の Session 管理の調査
まずは利用している API について調べる必要があったので Free Copilot にアクセスし、適当に API を実行させた。
中身も見てみる。 WSS プロトコルなので WebSocket。
で、Copilot のお作法 (ヘッダの内容とか最初に送る setOption のフォーマット定義とか) について調査をして、Bearer はサインイン時のみの利用というとこまで確認。
最後の課題として会話及び WSS 上のセッション管理がどうなっているかを聞いてみる。
"認識で層がありませんか"、は "認識で相違がありませんか" の誤字。
ここで以前の Copilot ではしばしば遭遇した "いきなり会話を打ち切られる" 事象について聞く。
アプリ上でこれを検知した場合に判別する必要があるので、判別方法があるかヒアリング。
…Response のストリームの構成そんな形式してないやろ?
であれば実際の挙動を見るのが早いので、明示的に切れるか聞いてみる。
が、さすがにこれは期待していなかった通り、普通に無理とお達し (それはそう)。
セッション消費 (怒涛のポエムストーム)
15ターン
16ターン / ポエム1つ目
消費 2ターンm _人人人人人人人人_
> 突然のポエム <
 ̄Y^Y^Y^Y^Y^Y^Y^ ̄
17ターン / ポエム2つ目
18ターン / ポエム3つ目
19ターン / ポエム4つ目
20ターン / ポエム5つ目
21ターン / ポエム6つ目 及び…
22ターン / ポエム7つ目
23ターン / ポエム8つ目
恋愛ものでもいいし、バトル物でありがちな日常を失う前触れでも使えそう。
24ターン / ポエム9つ目
実際各惑星の軌道なんてあんまり安定していないらしくて、多少ガタガタ動いてるらしいっすね。
25ターン / ポエム10つ目
26ターン / ポエム11つ目
27ターン / ポエム12つ目
試験管って書いてるのに SF で出てくる培養液とその中に浮かぶ人型の何かが真っ先に出てくるやつ。
28ターン / ポエム13つ目
29ターン / ポエム14つ目
30ターン / ポエム15つ目
引っ越した後空けなかった段ボールの中身は捨てたほうがいいらしいです。
31ターン / ポエム16つ目
32ターン / ポエム17つ目
新しい時計が鳴ると未来から誰かが近づいてきそうな言い方ですね。
33ターン / ポエム18つ目
34ターン / ポエム19つ目
手袋が季語なので "冬の記憶" じゃなくて "記憶" で通じます。
35ターン / ポエム20つ目
"時が未来へ進むと誰が決めたんだ" ってすごい歌詞ですよね。実際は時間が逆行しても神経上の電気流れも時間の方向に従う以上知覚できないんだろうけど。
そして…
128ターン / ポエム いっぱい目
と、ふと「もしかしてセッション数というよりトークン数か?」思いたつ。
が、明瞭な回答は得られず。
とりあえず時々悔しいながら素敵な言葉があったので残しておこうと思い、抽出を依頼。
したところ。
その後
CSV に抽出された内容はおそらくきちんと記録されているという推測をした。
115 ターンの内容は以下の通りだったので、 CSV に出力をデフォルトで避けていたデータは既に Copilot のオンメモリからは揮発していると考えてよい。
余談 : ハルシネーションの発生について
厳密にはハルシネーションというより偏りの部分ですが、途中から "alone な印象を受ける名詞が deactive な状態である" という内容に偏り始めました。
だいたい35ターン目くらいから傾向が表れ始め、60 ターンではほとんどこの内容なります。
これはおそらく当初自身に与えた命令であった "無為なターン消費が目的" であることをターン経過によって失ったため、似たようなポエムを作ることが目的にすり替わったからだと推測しています。
まとめ
Copilot (ChatGPT) 君、君前世は星新一っていったりしないかい?