Pourquoi utiliser MemoriPy ?
Une mémoire courte et longue pour vos agents IA
MemoriPy sert à donner un historique exploitable à un agent IA. Le but n’est pas seulement de garder une liste de messages. La bibliothèque associe chaque interaction à un prompt, une réponse, un embedding, des concepts, un horodatage, un compteur d’accès et un facteur de déclin. Ce format aide votre agent à retrouver des échanges utiles, sans renvoyer tout l’historique au modèle.
La mémoire courte accueille les interactions récentes, la mémoire longue récupère les éléments qui reviennent souvent, et le code prévoit un passage vers la mémoire longue quand un échange dépasse un seuil de consultations. Par défaut, ce seuil est lié au compteur access_count. Les souvenirs peu utiles perdent du poids avec le temps, et les souvenirs réutilisés gagnent en poids.
Cette logique sert surtout aux chatbots, aux assistants personnels, aux agents de support ou aux agents d’apprentissage. Un assistant peut ainsi retenir une préférence, un nom de projet, un choix technique ou une réponse déjà donnée. Il évite de repartir de zéro à chaque échange. Il garde aussi un contexte plus propre qu’une simple concaténation de messages.
MemoriPy reste une brique de développement, il ne fournit pas une interface de chat prête à publie, il vous donne les classes et les mécanismes pour brancher la mémoire à votre propre agent. Cette approche laisse de la liberté côté architecture, mais elle demande un minimum de code Python.
Un rappel du contexte fondé sur les concepts et les embeddings
MemoriPy ne cherche pas seulement les anciens messages avec des mots identiques, il combine plusieurs signaux pour retrouver les interactions proches d’une requête. La bibliothèque exploite les embeddings, les concepts extraits, la similarité cosinus, un facteur de déclin et un score lié aux accès précédents. Le résultat sert à proposer au modèle un contexte plus ciblé.
Le système crée aussi un graphe de concepts. Quand plusieurs concepts apparaissent ensemble, MemoriPy ajoute des liens entre eux qui gagnent du poids au fil des interactions. Lors d’une recherche, la bibliothèque active les concepts liés à la requête. Cette propagation aide à faire remonter des souvenirs qui ne reprennent pas les mêmes mots, mais qui gardent un lien logique avec la demande.
Le projet utilise aussi un regroupement sémantique. Les interactions proches peuvent être placées au sein de clusters par KMeans. Lors d’une recherche, MemoriPy identifie le groupe le plus proche, puis récupère plusieurs interactions issues de ce groupe, ce qui limite le bruit quand l’historique grossit.
Ce mélange convient bien aux agents qui doivent suivre un sujet sur plusieurs échanges. Par exemple, un assistant de support peut garder en mémoire un problème déjà décrit, un assistant de code peut retrouver une contrainte technique évoquée plus tôt, ou un agent de recommandation peut réutiliser des préférences déjà vues. Le filtrage reste lié à vos modèles d’embeddings et à vos données, et un mauvais historique produit de mauvais rappels.
Des connecteurs utiles pour plusieurs stacks IA
MemoriPy propose des classes prêtes pour plusieurs fournisseurs de modèles. Le dépôt contient des modèles pour OpenAI, Azure OpenAI, OpenRouter et Ollama. Les exemples couvrent aussi des cas avec OpenAI, Azure OpenAI, OpenRouter et Ollama. Cette variété aide les développeurs qui veulent tester un modèle local, un fournisseur cloud ou une API compatible Chat Completions.
La partie embeddings peut passer par OpenAI ou Ollama. Le code prévoit aussi text-embedding-3-small côté OpenAI, avec une dimension fixée à 1536. Côté Ollama, la dimension est détectée avec un texte de test. Cette logique évite certains soucis quand un modèle local ne renvoie pas la même taille de vecteur qu’un modèle cloud.
MemoriPy laisse aussi le choix du stockage. Par défaut, la mémoire peut rester en RAM avec InMemoryStorage. Pour garder un historique entre deux sessions, JSONStorage écrit les interactions dans un fichier JSON. Le dépôt contient aussi un adaptateur DynamoDB qui sert à stocker des ensembles de mémoire avec un identifiant set_id, ce qui est utile pour séparer plusieurs utilisateurs ou plusieurs contextes.
Cette approche colle bien aux prototypes et aux petits services IA. Vous pouvez démarrer avec un fichier JSON, puis passer vers DynamoDB si votre agent doit gérer plusieurs profils. Le projet expose aussi des classes abstraites, comme ChatModel, EmbeddingModel et BaseStorage, qui servent à brancher vos propres modèles ou votre propre stockage. Le package dépend de bibliothèques connues côté Python IA et recherche vectorielle. Parmi elles, on trouve openai, faiss-cpu, numpy, networkx, scikit-learn, langchain et ollama. Ces dépendances donnent de la souplesse, mais elles peuvent alourdir l’installation sur certains environnements.
MemoriPy : toutes les réponses à vos questions
Avec quels OS est compatible MemoriPy ?
MemoriPy est compatible avec Windows, macOS et Linux, à condition d’utiliser un environnement Python 3.8 ou plus récent. Il ne s’agit pas d’une application classique avec interface graphique, mais d’une bibliothèque Python installable avec pip install memoripy. Sa page PyPI indique « OS Independent », ce qui signifie que le package n’est pas limité à un seul système d’exploitation. Certaines dépendances ou usages locaux, comme faiss-cpu ou Ollama, peuvent toutefois demander une configuration différente selon l’OS.
Faut-il créer un compte pour utiliser MemoriPy ?
Vous n’avez pas besoin de compte pour utiliser MemoriPy en local. L’installation se fait avec pip, et l’usage passe par votre code Python. Une clé API est requise si vous utilisez OpenAI, Azure OpenAI ou OpenRouter. Ollama peut fonctionner en local sans compte.
MemoriPy est-il gratuit ou payant ?
MemoriPy est gratuit et open source sur PyPI et GitHub. Aucun abonnement officiel n’est proposé. Des coûts peuvent apparaître avec des services externes comme OpenAI ou AWS.