Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

エンベディングメモリバックエンド

エンベディングバックエンドは、メモリをベクトルエンベディングとして保存し、セマンティック類似度検索を可能にします。正確なキーワードが一致しなくても、文脈的に関連するメモリを見つけることができる最も強力なリコールメカニズムです。

概要

エンベディングバックエンドは:

  • メモリテキストを密なベクトル表現に変換
  • ローカルまたはリモートのベクトルデータベースにベクトルを保存
  • 現在のクエリとのコサイン類似度でメモリを検索
  • 複数のエンベディングプロバイダーをサポート(Ollama、OpenAI 等)

仕組み

  1. メモリが保存されると、テキストがエンベディングモデルに送信される
  2. 結果のベクトルが元のテキストと共に保存される
  3. リコール時に、現在のコンテキストがエンベッドされ、保存されたベクトルと比較される
  4. 最も類似度の高い Top-K のメモリが返される

設定

toml
[memory]
backend = "embeddings"

[memory.embeddings]
provider = "ollama"
model = "nomic-embed-text"
dimension = 768
top_k = 10
similarity_threshold = 0.5

[memory.embeddings.store]
type = "sqlite-vec"  # or "pgvector"
path = "~/.local/share/openprx/embeddings.db"

サポートされるエンベディングプロバイダー

プロバイダーモデル次元数
Ollamanomic-embed-text768
OpenAItext-embedding-3-small1536
OpenAItext-embedding-3-large3072

関連ページ

Released under the Apache-2.0 License.