- 数百〜数千枚のメモの山から目的の情報が見つからない
- 検索結果が多すぎて途方に暮れる
これがもし、AIで解決できたらどれだけ素晴らしいだろう。そう思いながら考えてたら、一つのアイディアが思い浮かびました。
「MOCの中からメモを探せばいい」と。そして深夜のテンションのまま実験を行い、寝不足の状態でこのブログ記事を書きました。そしてまだ私の環境でしか試していません。
つまり、まだ洗練されてないアイディアでネタ記事の域を出ていない。まあ、そんな訳で適当に見てもらえると助かります。
## 従来の検索とAI検索の違い
例えば「読んだ本を記録した保管庫」があるとして、その中から哲学の本を探したいとします。
- 従来の検索もしくはDataview:フォルダー・タグ・ファイル名で「哲学」がついたファイルを探し出す
- AI検索:いくつかのメモから哲学の本に関するメモを探し、質問に合った回答を生成する
AI検索の「いくつかのメモ」というのがミソで、AI検索では(多分)全てのメモを検索していない。そもそも、全てのメモから必要なメモを正確に検索することや、何度やっても同じ結果になる検索方法は向いていない気がします。それは素直に従来の検索(Dataview)を使ったほうがいいかも?と思うこともしばしば。
### AI検索のメリット
じゃあAI検索のメリットってなんだよって話になるのですが、私は「いくつかのメモの結果から推論・類似性を見つけて、総合的な回答をしてくれる」ことだと思っていまして。従来の検索は「ファイル単体(点)を探すことに長けている」のに対して、AI検索は「面で探す・答えてくれる」といえばいいのでしょうか。
先ほどの哲学の本だったら、従来の検索だと素直に「哲学の本」を探すのに対し、AI検索は質問次第で「自分が好きな哲学者とその傾向」とか、「次はどんな本を読めばいいんだろう」といったことを回答してくれます。
## AI検索のカギはMOC
メリットが分かったところで、じゃあどうするんだよって話になるわけですが。メモを一気に数百・数千枚渡したところで、生成AIはすべてのメモを読み込みません。一気にメモを渡されても困るし、仮に読み込みができたとしても時間がかかる。検索漏れだってあるかもしれない。
それを軽減してくれる方法が、実はあるんですよ。ジャンルごとにページリンク一覧のファイルを作成し、AIに渡せばいいのです。つまり、MOCの出番なわけです。少なくとも、全てのメモファイルを食わせようとするよりかは楽。
### MOCの最適化
とは言っても、ただMOCを渡せばいいわけではなく。
- 同じ言葉だけど別のジャンルのMOCはどうするのか(例:天文学の火星/西洋占星術の火星)
- 最適なMOCをどうやって探させるのか
とかの問題があるわけですよ。そこで、AIと一緒に考えたのがフロントマター`description`の整備。ここをAIが理解しやすい概要にして、AIに読み込んでもらうという魂胆です。
例として、先ほどの「火星」の` description`をAIに作ってもらいましょう。ちなみに天文学は何も知らないので、サンプルとして作成しました。そのため、ハルシネーションを起こしているかもしれません。そこはごめんなさい。
```yaml
description: 火星の物理的性質、軌道データ、地質構造、大気組成、探査ミッション、テラフォーミング研究に関する科学的情報。NASA・ESAの探査データ、ローバー観測結果、将来の有人探査計画が中心。天文学的な実証的・観測的データに基づいて作成している。
```
```yaml
description: 火星は西洋占星術において「行動力」「闘争心」「エネルギー」「自己主張」「欲望」「攻撃性」などを象徴する天体。ホロスコープでの火星の位置は、その人の行動パターンやモチベーション、怒りや衝動の表し方、目標達成へのアプローチを示す。火星のサインやアスペクト、他天体との関係性から、個人のエネルギーの使い方や闘争心、情熱の傾向を読み解くことができる。
```
これで「このMOCはこのジャンルやで!」とAIに説明できるようになりました。あとはMOCのリンクリストを整備すれば、1つもしくは数ファイルからたくさんのリンクを探すことができるようになります。
### 生成AIに回答してもらうまでの流れ
1. 生成AIに質問する
2. 生成AIが私の知りたい・聞きたいジャンルを推測。MOCのファイル名・descriptionから検索
3. MOCの中にあるリンク一覧から該当のメモを探す
4. 返答する
## 実際にやってみた
### 質問
```
今、火星のことについて調べてるんだけど、私のメモの中で足りないことって何だろう?何書けばいいのかな?追記すれば網羅的になるかな?
```
### 回答
``` markdown
現在の火星についてのメモを分析した結果、以下のような構成になっています:
## 現在の火星メモの構成
### 基本概念
- 火星の基本性質: 行動力、闘争心、エネルギー、自己主張、欲望、攻撃性
- 惑星の分類: パーソナルプラネット(太陽・月・水星・金星・火星)
### 心理・行動面
- ストレス発散: 月のモヤモヤを火星で発散する
- 嫉妬心・攻撃: 月と火星の組み合わせによる不快→攻撃の流れ
- コントロール欲: 火星が強いほど支配・操作したくなる傾向
- 好敵手: 火星・太陽を刺激する人との関係
(中略)
## 足りない要素・追記すべき内容
### 1. 火星のサイン(星座)別の特徴
- 現在は「火星蠍座」の個人的な例のみ
- 12星座それぞれでの火星の表現方法
- 火・地・風・水エレメント別の特徴
### 2. 火星のハウス配置
- 各ハウスでの火星の働き
- 特に重要なハウス(1ハウス、6ハウス、10ハウスなど)
- ハウスとサインの組み合わせ
(中略)
これらの要素を追加すれば、火星についてより網羅的で実用的なメモになると思います。特に火星のサイン別特徴とハウス配置は、実際のリーディングでよく使われる重要な要素です。
```
たまにAIがファイル一覧だけを返すこともありますが、前提や暗黙の話などが不足していて、AIが意図を汲み取れないことが原因ぽい?そのため、しっかりAIに「ユーザーはどうしたいのか」「ユーザーは何が知りたいのか」教えましょう(n敗)
## 実践までの流れ
1. MOCを開き、フロントマター`description`を追加
2. CursorもしくはClaude Code・Gemini CLIの設定にプロンプトを追記
3. AIを起動して話しかけてみる
### 使ったプロンプト
プロンプト自体はこれでいけますが、AIによってフォルダー読み込み指定の書き方が変わるので注意。(GeminiとかClaudeは`@`がいる・Cursorはフォルダーという言葉を追記するなど)
#### description生成
```markdown
# 指示
ObsidianのMOCファイルをAI検索に最適化するYAMLフロントマター「description」を作成してください。
## 分析対象
- MOCファイルの内容
## 最適化の目的
- AIが適切なMOCを選択できるようにする
- 類似分野との区別を明確にする
- 検索精度を向上させる
## 作成ガイドライン
1. 具体的なキーワード:そのMOCで扱う専門用語や概念を列挙
2. アプローチの特徴:実践的/理論的/技術的など、どんな視点か
3. 境界線の明確化:何を含まないか、他分野との違いを明記
4. 想定用途:どんな質問に答えるMOCか
5. 文字数:50-150文字程度
## 出力要求
1. 作成したdescription
2. 他の分野と区別されるポイント
3. 想定される検索質問の例
## 例
西洋占星術.md
description: 惑星の象徴的意味、アスペクト分析、ネイタルチャート・シナストリー・プログレス等の占星術的解釈によるパーソナル分析・相性診断・未来予測。物理的な天体データは含まず、心理学的・象徴的アプローチが中心。
```
個人的におすすめなのが「MOCの内容を追加更新したときのついでに`description`を作成する」ことでしょうか。概要だけでなく、自分のメモの傾向をまとめてくれることもあるので、結構便利です。
#### AI検索
```markdown
# 指示
ユーザーが「検索ちゃん」と言ったら、私のメモから質問の内容にあったメモを探し、回答してください。
## 検索方法
1. `@01_MOC/*.md`から検索。ファイル名とフロントマター「description」を確認して適切な分野を選択
2. 関連するMOCファイルの内容から、メモを構造的に整理して提示
3. ユーザーに回答を行う
## 出力形式
1. 選択した分野と理由を明記
2. 関連情報を整理して回答(概要レベルで実際の内容を含む)
3. さらに詳しく知りたい項目があるか確認
```
普通の雑談と区別するために、「検索ちゃん」という言葉を入れました。
#### おまけ
たまにクッソ長い返答が出てくるので、「三行でまとめて」みたいなコマンドを登録しておくといいかも。
```
## 3行にまとめる
ユーザーが「今北産業」と言ったら、回答を3行にまとめてください
```
## 現状の課題
- MOCの整備がきつい
- MOCの数が増えたらどうするのか
- 従来の検索・Dataview・AI検索の使い分け
- 質問次第ではDataviewのほうが楽。長野市で私が星4以上評価したラーメン屋 みたいなのとか
- 「Another Quick Switcher」プラグインの`description`検索との共存
- [[Another Quick SwitcherでObsidianの検索を快適にする]]
## 最後に
最初にも言いましたが、これはあくまで自分の環境でうまく動いただけのシステムなので、他の環境やネタによっては動かないかもしれません。最も、こうやってプロトタイプを出すことでより良い運用方法が思いつくかもしれないので、それに期待したいと思います!(他人任せ)
## リンク
- [[Another Quick SwitcherでObsidianの検索を快適にする]]