時間軸なのか、抽象度なのか、情報源の信頼度なのか。決めずに「ネットワークRAG」「ナレッジグラフ」という単語だけが先走っていた。これはエンジニアがよくやる失敗だ。
ナレッジグラフより先にやること
流行りに乗って「ナレッジグラフを入れれば記憶問題は全部解決する」と思いがちだが、それは誤解だ。私は個人開発の記事生成基盤で、すでに3つのストア(会話ログ用のPersonaDB、根拠テキストを保持するEvidenceStore、長期記憶用のPersonalMemory)を運用している。これらをRedmineのチケット管理とどう繋ぐかを決めないまま新しいDBを足すのは、ただのコスト増だ。
グラフDBの候補として実際に触ったのがNeo4j(提供元:Neo4j, Inc.)のAuraDBだ。無料のFreeプランはノード20万・リレーション40万まで、クレジットカード登録不要で1インスタンス使える。有料のProfessionalプランは従量課金で月65ドル〜が目安になる。
比較対象は今使っているSupabaseのpgvector(Freeプランは500MB・プロジェクト2つまで無料)。SQLのJOINで多段の関連を辿るpgvectorに対し、Neo4jはインデックスフリー隣接構造を持つため、3ホップ以上の関連探索(「この記事のネタ→元チケット→関連する過去記事→そのペルソナの感情変化」のような多段リンク)はグラフDBのほうが素直に書ける。
使える人: すでに関連性の深いエンティティが数百〜数千件あり、多段の関連探索クエリを書きたい人。使えない人: エンティティ数が数十件規模で、まだ「何を階層化するか」も決まっていない人。後者は今の私だ。
落とし穴もある。AuraDB Freeは3日間アクセスがないとインスタンスが一時停止する。夜間バッチで動かす個人開発の使い方とは相性が悪い。CypherというNeo4j独自のクエリ言語を覚えるコストも、SQLに慣れたエンジニアには地味に効く。
運用8日目の棚卸しログ
8月16日にチケットを切ってから8日、実装には入らず棚卸しだけを進めた。EvidenceStore、PersonalMemory、PersonaDB.episode_log、Redmineの4つを実物ベースで洗い出したところ、すでにリンクが存在する組み合わせが2つ(PersonaDB↔Redmineのチケット番号参照、EvidenceStore↔記事本文の引用箇所)あり、新規に作る必要があるのは「Redmineのチケットと記事ネタを紐づける層」だけだと分かった。7階層どころか、実際に必要なのはまず1層で十分だった。
検証バックログ(#493〜#497)はまだ安定していないため、着手はそちらの完了後にした。既存の不具合と新設計の問題を混ぜて原因追跡できなくなるのを避けるためだ。
8月の副業収益とAPIコスト
8月の副業収入は47,800円(ブログ広告12,300円、アフィリエイト18,000円、Redmine連携スクリプトのテンプレート販売17,500円)。一方でAPI・インフラ費用は9,640円で、Claude APIの記事生成コストが大半を占める。粗利は38,160円、KPI進捗75%という数字に対しては伸び代がまだある。
結論:まず1層から
自腹で試すならNeo4j AuraDB Freeの無料枠だけで十分だ。Professionalに月65ドル払う判断は、ノード数が20万に近づいてから考える。今の私にはまだ早い。
次にやることは決まっている。Redmineのチケット番号と記事ネタをPersonaDB側にリンクとして1行足すこと。それだけで「7階層」構想の1層目が動き出す。大きな設計図より、今日書けるリンク1本を優先する。
🛒 関連のおすすめ商品
- メール便で! 24V車用 トラックに T10 LED ホワイト イエロー ...
- おもしろTシャツ みかん箱 ドライ生地 ポリエステル 文字Tシャツ プレゼ...
- おもしろTシャツ みかん箱 濃色 綿生地 半袖 メンズ レディース 男女兼...
- マジックザギャザリング M21 JP 050 大慌ての棚卸し (日本語版 ...
- 50歳の棚卸し/講談社/住吉美紀(単行本)