【Obsidian】KindleのハイライトをAIに要約してもらう
ObsidianのプラグインとOpenAI APIを使って、Kindleのハイライト情報から書籍の要約をできるようにしてみました。
モチベーション
- Kindleで読んだ本の内容が頭に入ってこない問題を解決したい
- 読書そのものを習慣づけるため、読書のハードルは低くしておきたい
- (私生活でAIを活用してみたい)
Kindleで買った技術書を読んでいた時、活字が苦手なあまり目が滑りまくっており、内容が頭になかなか入ってこないことに気付きました。
自分がもう少し真面目だったら、読書しながらメモを取ったりすることで理解を促進できたかもしれませんが、怠惰な人間であるためそんなことをすると読書自体を面倒に感じて辞めてしまうことが目に見えています。
幸いとりあえず読みながらハイライトを付ける程度の力はあったので、この情報を元にAIに要約させてみようと考えました。
実現したいこと
- Kindleのハイライト情報をAIに渡して、内容を要約してもらうこと
- 要約された情報を一箇所に集約し、クラウドで閲覧できること
- 各種コストを最低限に抑えること
- ハイライト情報を要約させる作業コスト
- メンテナンスコスト
- 金銭的コスト
検討した方法
これらの内容を実現するために、いくつか方法を検討しました。
普段プライベートのメモを取るのにNotionを使っていたため、Notionに情報を集約しようと考えました。
しかし、いくつかの方法を検討しましたが、いずれもコスト面がイマイチだったため不採用としました。
- Kindle Cloud Readerのメモとハイライトからハイライト情報をコピペし、ChatGPTに要約させる
- ハイライトもChatGPTの回答もいちいちコピペしないといけないのが面倒
- 上記と同じ方法でハイライト情報をコピペし、Notion AIに要約させる
- やはり手動のコピペが面倒
- 月額8~10ドル程度の課金が必要
- 使われているGPTのモデルが不明なので、出力の精度が不安
-
BookNotionを用いてハイライト情報をNotionにインポートし、Notion AIに要約させる
- ハイライトを一つ一つ選択して共有する必要があるため、面倒
- 書籍によってはコピー制限に引っかかる
- Notion AIについては同上
Obsidianを使ってみる
そこで他の解決策を模索していたところ、Obsidianというメモアプリを発見しました。
ObsidianはMarkdown形式でメモを取れる無料のアプリです。
シンプルな見た目ながらもかなり高機能であり、以下のような特徴を持っています
- ローカル環境で動作する
- メモのクラウド同期が可能
- Obsidian Sync
- iCloud
- サードパーティのプラグインで機能を拡張できる
- iPhone, iPad, Mac用のアプリが提供されている
プラグインを用いることで、低コストかつメンテ不要で用件を実現できそうだったので、Obsidianを採用することとしました。
使用したプラグイン
ここからは、実際に導入した2つのプラグインを紹介します。
Kindle Highlights
Kindleの書籍・ハイライト情報をObsidianにインポートできるプラグインです。
内部的にはKindle Cloud Readerのメモとハイライトからハイライト情報をスクレイピングしているようです。
書籍・ハイライト情報をインポートする際のテンプレートを編集することも可能です。
さらに「Sync on Startup」を有効にしておけば、Obsidianを起動したタイミングで自動的にインポートが開始されます。
実質手動操作なしでインポート作業が完了します。
実際に世界一流エンジニアの思考法のハイライト情報をインポートしてみました。
指定したテンプレート通り情報がインポートされていることがわかります。
Text Generator
プロンプトやMarkdownファイル内の情報をAIに渡し、生成したテキストをMarkdown内に書き込めるプラグインです。
OpenAI APIをはじめとした各種LLMを使用でき、GPTのモデルも細かく指定可能です。
私はOpenAI APIのGPT-4 Turboを使用しました
基本的な使い方として、コードブロックにプロンプトを定義したり、コマンドパレットから直接実行したりすることで文章を生成できます。
さらに便利な使い方として、プロンプトをテンプレートとして登録することが可能です。
これにより、決まったパターンの文章生成が非常に楽になります。
私はKindleのハイライト情報を要約するためのプロンプトをテンプレートとして登録し、コマンドパレットからすぐに実行できるようにしています。
Markdownファイル内の情報を渡すにはHandlebarの構文に従って変数を展開する必要があります。
少々難解でしたが、プラグイン公式のドキュメントを参考にすれば問題なく書けました。
これらの設定を踏まえ、実際に動作している様子です。
コマンドパレットからテンプレートを選択することで、その指示に沿った要約文を生成してくれています。
まとめ
Obsidianとそのプラグインを使って、Kindleのハイライト情報をAIに要約させることができました。
要約までにかかる作業の手間も少なく、自前でのメンテも不要です。
基本的に1冊の本につき一度要約してしまえばAIの出番は終わりなので、サブスク等に比べて金銭的なコストもかなり抑えられているのではと思っています。
プラグインで色々遊ぶのが楽しくなってしまい、途中手段と目的が逆転した感も否めませんが、ひとまず要件を満たすことができました。
あとは本の内容を深く理解し、仕事に活かせるように努力します。。。
参考
Discussion