Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Backends de stockage

PRX-Memory prend en charge plusieurs backends de stockage pour persister les mémoires et leurs embeddings vectoriels. Le crate prx-memory-storage fournit une interface unifiée que tous les backends implémentent.

Backends disponibles

BackendValeur de configSupport vectorielPersistanceIdéal pour
JSONjsonIntégré dans les entréesBasé sur fichierDéveloppement, petits ensembles de données
SQLitesqliteColonnes vectorielles intégréesBasé sur fichierProduction, ensembles de données moyens
LanceDBlancedbIndex vectoriel natifBasé sur répertoireGrands ensembles de données, recherche ANN rapide

Backend par défaut

Le backend par défaut est JSON (PRX_MEMORY_BACKEND=json), qui ne nécessite aucune configuration supplémentaire. Pour les déploiements en production, SQLite est recommandé.

Backend JSON

Le backend le plus simple stocke toutes les mémoires dans un seul fichier JSON. Il est idéal pour le développement, les tests et les petits ensembles de mémoire (moins de 10 000 entrées).

bash
PRX_MEMORY_BACKEND=json
PRX_MEMORY_DB=./data/memory-db.json

Avantages :

  • Zéro configuration -- spécifiez simplement un chemin de fichier.
  • Lisible par l'homme -- inspectez et modifiez avec n'importe quel éditeur de texte.
  • Portable -- copiez le fichier pour déplacer toute votre base de mémoire.

Limitations :

  • Le fichier entier est chargé en mémoire au démarrage.
  • Les opérations d'écriture réécrivent le fichier complet.
  • Pas de recherche vectorielle indexée -- scan par force brute pour la similarité.

Backend SQLite

SQLite fournit des transactions ACID, des requêtes indexées et un support de colonnes vectorielles intégré pour une recherche par similarité efficace.

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

Voir Stockage SQLite pour la configuration détaillée.

Backend LanceDB (optionnel)

LanceDB fournit une recherche vectorielle native par plus proche voisin approximatif (ANN) avec stockage en colonnes. Activez-le avec le flag de fonctionnalité lancedb-backend :

bash
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backend
bash
PRX_MEMORY_BACKEND=lancedb
PRX_MEMORY_DB=./data/lancedb

Flag de fonctionnalité requis

Le support LanceDB n'est pas inclus dans la compilation par défaut. Vous devez activer le flag de fonctionnalité lancedb-backend au moment de la compilation.

Choisir un backend

ScénarioBackend recommandé
Développement localJSON
Production avec <100k entréesSQLite
Production avec >100k entréesLanceDB
Besoin d'un stockage lisible par l'hommeJSON
Besoin de transactions ACIDSQLite
Besoin d'une recherche vectorielle ANN rapideLanceDB

Opérations de stockage

PRX-Memory fournit des outils pour la maintenance du stockage :

OutilDescription
memory_exportExporter toutes les mémoires dans un format portable
memory_importImporter des mémoires depuis un export
memory_migrateMigrer entre les backends de stockage
memory_compactOptimiser le stockage et récupérer l'espace
memory_reembedRé-embéder toutes les mémoires avec un nouveau modèle

Étapes suivantes

Released under the Apache-2.0 License.