TL;DR
ブラウザからchatGPTとの会話履歴をコピペするのを支援するpowershellスクリプトを作りました。
導入
皆さん、chatGPT使ってますか?
私はしょっちゅう使っていて、もう1年くらいはがっつり使っている気がします。ので、チャット履歴も溜まってきました。
とはいえ全然ライトユーザーの範囲でして、公式アプリでしか使っていません。
さて、こちらの公式アプリ、なかなかかゆいところに手の届かない部分があります。
- 検索機能が弱い。
- どのチャットにヒットする文字列が含まれているか、までは分かるが「そのチャット内で次々検索をかける」ができない
- 正規表現検索など高度な検索ができない
- チャット履歴出力機能がない。
- チャット日時の記録が残っていない。
chatGPT APIを介して会話することにして、記録を取るようなシステムを作ればこのあたりの問題は解決できるのでしょうが、現状手が出ていません。
なおかつ、今までの蓄積されたチャット履歴については解決しないのです。(多分)
これを部分的に解決する、ごく簡易なpowershellスクリプトを作りました。
何をするスクリプトか
本当に簡易的なものになりますが、ブラウザからコピペする際に
- 「Q」「A」という区切り文字を自動でつける
- (コピペした)日時を記録する
をしてくれるものになります。コピペ自体は自分でしないといけません。
また本来ならチャットした日時を取得したいものですが、まあそこは大体でいいかな、と妥協しました。
スクリプト
スクリプトの中身
function chatgptrecord(){
$date = get-date -Format "yyyyMMdd"
Add-Content $date `
-path "path\to\hoge.txt" `
-Encoding UTF8
$qora="`nQ.---`n"
$qora_bool="Q"
while(1){
$data = Read-Host "input($qora_bool)"
Add-Content ($qora + $data) `
-path "path\to\hoge.txt" `
-Encoding UTF8
if($qora -eq "`nQ.---`n"){$qora="`nA.---`n";$qora_bool="A"
}else{$qora="`nQ.---`n";$qora_bool="Q"}
}
}
chatgptrecord
使用方法
- powershell ISEでps1ファイルを開く。
- input(Q)と出力されたら、質問文を貼り付けてenter。input(A)と出力されたら、回答文(chatGPTの発言)を貼り付けてenter。
- 終わったら、ctrl+C。
ISEじゃないと改行するたびにQ.とA.が切り替わってしまうので注意です。[Console]クラスを使えば普通のターミナルでも改行含めて一つの入力として処理できるらしいのですが、まあいっかとなりました。
考えたこと
- QとAがずれたときは1回空白行を入れてやればよい
- csv, tsvにしたいときは後からすればよい
最後に
コピペもしないでいい方法があれば教えていただきたいです。