要約
ショートカットでサイトを要約し、あとから検索できるchrome拡張機能を作成しました。
経緯
一年前にGo言語でサーバーを作る練習をしており、ちょうど、Chromeのブックマーク機能の、タイトルだけ表示されてなんのサイトかわからなくなる点などに不満があったことから、自作することにしました。当時はガチガチに完成度を上げることにこだわっていたのと、ChatGPTの文字数(トークン)制限が厳しかったのもありやめてしまったのですが、思い立ってローカルで動く形に仕上げました。
構成
drawioでササッと作っただけですが、構成は以下の図のようにシンプルな形です。Goサーバーを中心として、拡張機能から保存したいウェブサイトを送信すると、サーバーにサイトと要約が保存されます。検索用ウェブサイトを利用してウェブサイトを検索できます。
使用方法
使用方法はGithubにあります。
一部だけ抜粋しておくと、Cmd+Shift+A
でウェブサイトをサーバーに保存でき、保存できると通知が飛びます。
検索用ウェブサイトはシンプルで、検索を行うと関連度順に表示されます。
補足
構成の細かいところに対して、疑問が生じそうなところだけ補足します。
・ウェブサイトの保存方法について
そもそも(何万件もの)大量のウェブサイトが保存されるとは想定しづらかったので、サーバーにjsonファイルでウェブサイトの情報を保存しています。こちらのほうが持ち出しなども簡単なので、ローカルで動かす程度なら便利かなと思っています。
・ウェブサイトの検索について
検索はウェブサイトのEmbeddingをChatGPT APIであらかじめ取得し、GoサーバーでCos類似度を計算してスコア順に表示しています。理由は上と同様、大量にWebサイトをさばく想定をしていないためです。
今後について
・検索サイトに削除機能がほしい気がしています。追加したいです。
・上で完成度を上げたかったと触れたと思うのですが、本当はTerraformを使ってEC2に構築できるようにするつもりだったのでした。Terraform自体は問題なかったのですが、立ち上げるたびに保存したウェブサイトをリセットするように組んだせいでデバッグが面倒になりすぎてしまい、止まっています。こちらもできたらなと思っています。