Бэкенд памяти на эмбеддингах
Бэкенд эмбеддингов хранит воспоминания как векторные эмбеддинги, обеспечивая поиск по семантическому сходству. Это самый мощный механизм вспоминания, позволяющий агентам находить контекстно-релевантные воспоминания даже при отсутствии точного совпадения ключевых слов.
Обзор
Бэкенд эмбеддингов:
- Преобразует текст воспоминаний в плотные векторные представления
- Хранит векторы в локальной или удалённой векторной базе данных
- Извлекает воспоминания по косинусному сходству с текущим запросом
- Поддерживает множество провайдеров эмбеддингов (Ollama, OpenAI и т.д.)
Как это работает
- При сохранении воспоминания его текст отправляется в модель эмбеддингов
- Полученный вектор сохраняется вместе с исходным текстом
- При вспоминании текущий контекст преобразуется в эмбеддинг и сравнивается с сохранёнными векторами
- Возвращаются 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" # или "pgvector"
path = "~/.local/share/openprx/embeddings.db"1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Поддерживаемые провайдеры эмбеддингов
| Провайдер | Модель | Размерность |
|---|---|---|
| Ollama | nomic-embed-text | 768 |
| OpenAI | text-embedding-3-small | 1536 |
| OpenAI | text-embedding-3-large | 3072 |