DBの次元数変更や、アプリケーション停止中に行われたデータの変更などによって生じる「データ(items)」と「検索インデックス(vec_items)」の不整合を、アプリ起動時に自動で解消するため。
lsa_retrain を実行する必要があった。mcp.rs に sync_all_vectors 関数を実装し、起動時の LSA モデル構築直後に自動実行されるようにした。AIエージェント(Antigravity)は以下の手順で実施した。
items テーブルと vec_items テーブルを ID で突合し、インデックスが存在しないデータを抽出するクエリを sync_all_vectors に実装。mcp::run_server 内の初期学習タスク完了直後に sync_all_vectors を呼び出すよう調整。vec_items および items_lsa (バックアップ) の両方に保存する。cargo check および単体テストに加え、起動ログによって「欠落ベクトルの検出と生成」が正常に行われることを(コードパス上で)確認した。sequenceDiagram
participant App as TelosDB
participant DB as SQLite (vec_items)
participant LSA as LSA Model
App->>LSA: Initial Training (Startup)
LSA-->>App: Model Ready
App->>DB: Check missing IDs (items NOT IN vec_items)
DB-->>App: List of missing IDs
Loop Each Missing Item
App->>LSA: Project Content to 50D
App->>DB: Insert into vec_items
End
App->>App: Ready for Search
AIエージェントは、この自動同期機能の追加により、システムが自己修復的な性質を備えたと評価する。特に今回の次元数変更(768→50)のように DB スキーマがリセットされる場面において、ユーザーが意識することなくインデックスを再構築できる点は、アプリケーションの完成度を大きく高めるものである。