Memary : un projet open source pour améliorer la mémoire à long terme de l'agent à l'aide de graphes de connaissances

Introduction générale

Memary est un projet open source innovant visant à fournir des solutions de gestion de la mémoire à long terme pour les intelligences autonomes. Le projet aide les intelligences à dépasser les limites des fenêtres contextuelles traditionnelles pour obtenir une expérience d'interaction plus intelligente grâce à des graphes de connaissances et des modules de mémoire spécialisés.Memary utilise un mécanisme de génération automatique de mémoire pour mettre à jour automatiquement les mémoires pendant les interactions avec les intelligences, et affiche ces mémoires à travers un tableau de bord unifié. Le système prend en charge plusieurs configurations de modèles, y compris les modèles Llama et LLaVA exécutés localement, ainsi que les modèles GPT dans le nuage. En outre, Memary offre un support multi-graphique, permettant aux développeurs de créer des instances indépendantes d'intelligences pour différents utilisateurs, ce qui permet une gestion personnalisée des mémoires.

Memary:利用知识图谱增强Agent长期记忆的开源项目

Architecture générale de Memary

 

Memary:利用知识图谱增强Agent长期记忆的开源项目

Agent de mémoire

 

Memary:利用知识图谱增强Agent长期记忆的开源项目

Graphes de connaissances Memary

 

Memary:利用知识图谱增强Agent长期记忆的开源项目

Modules de mémoire

 

Liste des fonctions

  • Génération et mise à jour automatisées de la mémoire
  • Stockage et récupération de graphes de connaissances
  • Entités de suivi du flux de mémoire et horodatages
  • Fréquence et actualité de la gestion de l'Entity Knowledge Store (EKS)
  • Méthodes de recherche récursive pour optimiser la recherche dans les graphes de connaissances
  • Le raisonnement multi-sauts prend en charge le traitement de requêtes complexes
  • Prise en charge de l'extension des outils personnalisés
  • Gestion de la cartographie corporelle multi-intelligence
  • Compression de la mémoire et optimisation de la fenêtre contextuelle
  • Extraction de sujets et classification des entités
  • Fonction d'analyse de la ligne du temps

 

Utiliser l'aide

1. configuration de l'installation

1.1 Exigences de base

  • Version de Python requise : <= 3.11.9
  • Il est recommandé d'utiliser un environnement virtuel pour l'installation

1.2 Méthode d'installation
a) Installer en utilisant pip.

pip install memary

b) Installation locale.

  • Créer et activer un environnement virtuel
  • Dépendances d'installation. pip install -r requirements.txt

1.3 Configuration du modèle
Memary propose deux modes de fonctionnement :

  • Mode local (par défaut) : utiliser Ollama modèle opérationnel
    • LLM : Llama 3 8B/40B (recommandé)
    • Modèle visuel : LLaVA (recommandé)
  • Mode nuage :
    • LLM : gpt-3.5-turbo
    • Modèle de vision : gpt-4-vision-preview

2. préparation à l'environnement

2.1 Configuration du fichier .env

OPENAI_API_KEY="YOUR_API_KEY"
PERPLEXITY_API_KEY="YOUR_API_KEY"
GOOGLEMAPS_API_KEY="YOUR_API_KEY"
ALPHA_VANTAGE_API_KEY="YOUR_API_KEY"
# 数据库配置(二选一):
FALKORDB_URL="falkor://[[username]:[password]]@[falkor_host_url]:port"
或
NEO4J_PW="YOUR_NEO4J_PW"
NEO4J_URL="YOUR_NEO4J_URL"

2.2 Mise à jour de la configuration de l'utilisateur

  • compilateur streamlit_app/data/user_persona.txt Définition des caractéristiques de l'utilisateur
  • Facultatif : Modifier streamlit_app/data/system_persona.txt Ajustement des caractéristiques du système

3. utilisation de base

3.1 Lancement de l'application

cd streamlit_app
streamlit run app.py

3.2 Exemples de code

from memary.agent.chat_agent import ChatAgent
# 初始化聊天智能体
chat_agent = ChatAgent(
"Personal Agent",
memory_stream_json,
entity_knowledge_store_json,
system_persona_txt,
user_persona_txt,
past_chat_json,
)
# 添加自定义工具
def multiply(a: int, b: int) -> int:
"""乘法计算工具"""
return a * b
chat_agent.add_tool({"multiply": multiply})
# 移除工具
chat_agent.remove_tool("multiply")

4. configuration multi-intelligence

S'applique lors de l'utilisation de la base de données FalkorDB :

# 用户 A 的个人智能体
chat_agent_user_a = ChatAgent(
"Personal Agent",
memory_stream_json_user_a,
entity_knowledge_store_json_user_a,
system_persona_txt_user_a,
user_persona_txt_user_a,
past_chat_json_user_a,
user_id='user_a_id'
)
# 用户 B 的个人智能体
chat_agent_user_b = ChatAgent(
"Personal Agent",
memory_stream_json_user_b,
entity_knowledge_store_json_user_b,
system_persona_txt_user_b,
user_persona_txt_user_b,
past_chat_json_user_b,
user_id='user_b_id'
)

5. les fonctions de gestion de la mémoire

5.1 Flux de mémoire

  • Capture automatique de toutes les entités et de leurs horodatages
  • Aide à l'analyse de la chronologie
  • Fonction d'extraction de thème

5.2 Magasin de connaissances sur les entités

  • Suivi de la fréquence et de l'opportunité des citations d'entités
  • Classement de la pertinence des entités
  • fonction de classification des entités
  • Analyses variables dans le temps

5.3 Fonctions de cartographie des connaissances

  • Optimisation de la recherche récursive
  • Prise en charge du raisonnement multi-sauts
  • Mécanisme de mise à jour automatique
© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...