掲題の通りのことをしたのでやり方の記録を残します。
背景
- 個人の構造化データを楽に取得する仕組み化が次のトレンドな気がした
- 会社特化の小規模なLLM、RAGを簡単に構築できるサービスが今流行っている
- 個人特化のもっと小規模なLLM、RAGを作るのが次のトレンドな気がする
- 小規模なLLM、RAGを作るのに必要なのは構造化データの収集
- chatgptの会話ログを取得して構造化データにするのがよさそうに思えた
環境
- windows 11
- Obsidianインストール済
手順
Chatgptの会話ログをjson形式で取得
-
ダウンロードしたファイルを解凍すると conversations.json という会話のjson形式ログが取得できる
-
なお、ブラウザの拡張機能"ChatGPT Exporter"で最初からマークダウン形式でファイル取得できるけど、過去分すべて一括でexportができない
マークダウン変換、ついでにメタデータ付与
- 自前の変換ツールつかいます。Githubにマークダウン変換するプロジェクト自体は既にあったのですが、最新の形式に対応していなかった?のと、ライセンスが書いてなくてforkしていいか聞くのが面倒でした
https://github.com/shirousuda/chatgpt_json2md/tree/main/releases - ここからjson2md.exeを取得して、conversations.json と同じディレクトリに配置して実行してください
- 実行バイナリファイルはwindows用のしかつくっていませんので、他の環境ならソースコードからの実行になります
- 構造化データがほしいというところで、初期設定だとログにないメタ情報を色々勝手に付与します。設定で無効にできます
RAGをつくるまでは頑張れないのでObsidianに入れる
- smart connectionプラグインをインストール。ホーム画面左下の設定アイコンを押下、設定画面左メニューよりコミュニティプラグインを選択、コミュニティプラグイン項目よりコミュニティプラグインを押下、検索画面でsmart connectionを検索
- smart connection設定画面よりshow full path を有効化
- しばらくsmart connectionの読み取り後、適当なノートを開いてから、smart connectionの画面を開くと、関連する記事一覧がでてくる。なんでアンパンマンの記事に対してアロエ..?
感想
- 使う生成AIを選ぶにあたって、会話ログをとれるサービスかどうかもポイントになってくる気がしました。Chatgptはログを保存してくれて、構造化データとして出力してくれてえらい。Copilotだとログを保持しないので、随時ログ保存みたいなことする必要ありそうです
- 構造化データを作る観点で、Chatgptと会話するとき、トピックが切り替わったら新しい会話に移行したほうがいいと思いました。添付のアンパンマンの記事だと、同じ会話の下のほうで、夜のお店にいくのは正当な離婚の理由になるかみたいなことを聞いているため、変なタグがついてます