Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

SQLite-хранение

SQLite-бэкенд предоставляет надёжный, файловый движок хранения с ACID-транзакциями, индексированными запросами и встроенной поддержкой векторных столбцов для эффективного поиска по сходству. Это рекомендуемый бэкенд для продакшен-развёртываний с количеством воспоминаний до 100 000.

Конфигурация

bash
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.db

Файл базы данных создаётся автоматически при первом запуске. Все таблицы, индексы и векторные столбцы инициализируются PRX-Memory.

Обзор схемы

SQLite-бэкенд хранит воспоминания в структурированной схеме:

СтолбецТипОписание
idTEXTУникальный идентификатор воспоминания
textTEXTСодержимое воспоминания
scopeTEXTОбласть видимости воспоминания (global, project и т.д.)
tagsTEXTJSON-массив тегов
importanceREALОценка важности (0.0–1.0)
created_atTEXTВременная метка ISO 8601
updated_atTEXTВременная метка ISO 8601
embeddingBLOBВекторный эмбеддинг (если включено)
metadataTEXTДополнительные метаданные JSON

Векторное хранение

При включённых эмбеддингах векторные данные хранятся как BLOB-столбцы в той же таблице, что и запись воспоминания. Совместное расположение упрощает запросы и исключает накладные расходы на JOIN.

Поиск по векторному сходству использует вычисление косинусного сходства методом полного перебора по сохранённым векторам. Для наборов данных до 100 000 записей это обеспечивает время запроса менее секунды (p95 менее 123 мс по результатам бенчмарков).

Обслуживание

Уплотнение

Со временем удаления и обновления могут оставлять фрагментированное пространство. Используйте memory_compact для освобождения места:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "memory_compact",
    "arguments": {}
  }
}

Резервное копирование

Файл базы данных SQLite можно создать резервную копию, просто скопировав файл при остановленном сервере:

bash
cp ./data/memory.db ./data/memory.db.backup

WARNING

Не копируйте файл базы данных во время работы сервера. SQLite использует журналирование с опережающей записью (WAL), и копирование файла во время записи может создать повреждённую резервную копию. Сначала остановите сервер или используйте инструмент memory_export для безопасного экспорта.

Миграция с JSON

Для миграции с JSON-бэкенда на SQLite:

  1. Экспортируйте воспоминания с помощью memory_export.
  2. Измените конфигурацию бэкенда на SQLite.
  3. Импортируйте экспортированные данные с помощью memory_import.

Или используйте инструмент memory_migrate для прямой миграции.

Следующие шаги

Released under the Apache-2.0 License.