AI Context Abstraction Layer ADR-003: 埋め込みモデルの再設計
新しい埋め込みモデル設計を説明する意思決定記録。
ステータス
承認済み
コンテキスト
元の ActiveContext 設計では、埋め込みモデルが埋め込みバージョンハッシュとしてハードコードされていました。
class Ai::ActiveContext::Collections::Code # class implementing an ActiveContext Collection
embeddings_v1: { model: 'text_embedding_005_vertex', dimensions: 768 }
embeddings_v2: { model: 'text_embedding_004_vertex', dimensions: 512 }
end
以前の設計の制限
- ユーザーによるモデル選択をサポートできず、ユーザーが独自のモデルを選択する必要がある Duo Self-hosted を利用する Self-Managed インスタンスのブロッカーになる
- 新しいモデルを追加するには、ハードコードされたバージョンハッシュの更新と手動のバックフィルプロセスが必要になり、保守負荷が生じる
既存の Model Configuration 機能
他の AI 機能向けには、既存の Model Configuration 機能 がすでにあります。しかし、これは埋め込みモデルを切り替える際に必要なバックフィルプロセスをサポートできません。
決定
私たちは、バックグラウンドでバックフィルプロセスをトリガーするワンクリックのモデル切り替えにより、柔軟なモデル選択をサポートできるよう埋め込みモデルを再設計することを決定しました。
再設計の主なコンセプトは次のとおりです。
- Model Metadata - 埋め込みモデル設定はハードコードではなく、
Ai::ActiveContext::Collectionレコードのmetadataに永続化される - Collection ごとに 3 つのモデル設定 - 各 Collection には
current_indexing_embedding_model、next_indexing_embedding_model、search_embedding_modelがある - 非同期切り替えプロセス - モデル切り替えにより、Active Context Tasks フレームワーク を活用する一連のバックグラウンドプロセスがトリガーされる
- AIGW Model Switching フレームワークとの同期 - 各 Collection には対応する Embeddings AI Feature キーがあり、AI Gateway でサポートされ、
Ai::FeatureSettingレコードと同期される
詳細については、Embedding Models 設計ドキュメントを参照してください。
最終更新 July 30, 2026: Merge pull request #483 from kyama0/translation/batch-2026-07-29-1 (
c955a93f)