複数文書を横断検索して概要を高速に提示するOverview RAGの実験を進めている。Google検索のAI Overviewsぽい動きができる。Cosenseプロジェクトを対象にしたデモを作った。任意のテキスト+画像データを扱えるように設計しているのでそのうち一般化される予定。Claude Codeの力も借りてWeb Components化に成功したので、独自のHTMLタグを宣言するだけで簡単に任意のウェブページに埋め込みできる。
<overview-kit
q="daiiz 自己紹介"
dataset="daiiz" /* あらかじめインデックス構築済み */
autorun
></overview-kit>
裏側の検索処理も新しいアプローチを実験している。写真コレクションから離散的な「関心空間」を立ち上げる で構築したようなSemantic ID空間をインデックスとして使っており、ベクトルDBを使わずに関連する記事の特定が可能になっている。つまり、クエリ文字列のembeddingを取得する工程以外では、生の埋め込み表現を必要としない。
Semantic IDの階層構造を上手く活用することで、生成される概要文の切り口の幅を調整できる。そのものずばりの情報を取得しつつ、その区画の親の住所を段階的に参照することでほどよく広い知識を収集できる。情報検索と推薦の融合技という感じ。従来のベクトル検索では足切り件数を決めるのに苦労していたが、この手法では「何件読むか」の問題を「どの住所に触れるか」にすり替えることができた。また、住所の中身は意味の近い資料の塊なので、各住所から数件読めばだいたいOKである。これはコーパスが大きくなってもコンテキストが肥大化しなくて済むことを表す。
デモ
私のCosense /daiiz の概要を生成できるデモ。インデックスの更新処理が未実装なため一昨日くらいの記事で時が止まっているが雰囲気は体験できる。Cloud Runのインスタンスの立ち上がりで少々待たされることがあるものの、メインの推論自体は満足なスピードで動いている。なお、Semantic IDの事前構築時とクエリ解釈時のベクトル化にはGemini Embedding 2を、概要文の生成にはGemini 3.1 Flash-Liteを使用している。
クエリを変えて遊べるデモもあります。
https://overviewkit.searchwiki.org/v2?dataset=daiiz&q=daiiz+個人開発+モチベーション