Home
Login

Python-Bibliothek für eine Speicherschicht für KI-Anwendungen mit Unterstützung für MongoDB-Integration und semantische Suche

MITPython 290RichmondAlakememorizz Last Updated: 2025-06-30

Detaillierte Projektbeschreibung von MemoRizz

Projektübersicht

MemoRizz ist eine Python-Bibliothek zur Speicherverwaltung, die speziell für KI-Anwendungen entwickelt wurde. Sie bietet KI-Agenten die Möglichkeit, Informationen persistent, kontextsensitiv und semantisch durchsuchbar zu speichern. Durch die nahtlose Integration von MongoDB und Vektor-Embedding-Technologien verleiht dieses Projekt Agenten komplexe kognitive Funktionen, einschließlich der Verfolgung von Gesprächsverläufen, der Verwaltung der Tool-Nutzung und der Aufrechterhaltung konsistenter Rollen.

⚠️ Wichtiger Hinweis: MemoRizz ist eine experimentelle Bibliothek und dient ausschließlich zu Bildungszwecken. Die Verwendung in Produktionsumgebungen oder mit sensiblen Daten wird nicht empfohlen.

Kernfunktionen

🧠 Persistenter Speicher

  • Ermöglicht KI-Agenten, sich zwischen Sitzungen zu erinnern
  • Unterstützt die Speicherung und den Abruf von Langzeitinformationen
  • Kontextsensitive Speicherverwaltung

🔍 Semantische Suche

  • Findet relevante Informationen mithilfe natürlicher Sprache
  • Ähnlichkeitssuche basierend auf Vektor-Embeddings
  • MongoDB Atlas Vektorsuche-Integration

🛠️ Tool-Integration

  • Automatische Erkennung und Ausführung von Funktionen
  • Konvertiert Python-Funktionen in von LLM aufrufbare Tools
  • Semantische Indizierung und natürliche Spracherkennung von Tools

👤 Rollensystem

  • Erstellt konsistente, spezialisierte Agenten-Rollen
  • Passt das Verhalten und den Antwortstil des Agenten an
  • Festlegung von Rollenhintergrund und Zielen

📊 Vektorsuche

  • Effizienter Abruf mit MongoDB Atlas Vektorsuche
  • Automatisches Embedding und Indizierung gespeicherter Informationen
  • Unterstützung für die Klassifizierung verschiedener Speichertypen

Systemarchitektur

┌─────────────────┐
│ MemAgent        │ ← Hochstufige Agenten-Schnittstelle
├─────────────────┤
│ Persona         │ ← Agenten-Persönlichkeit und -Verhalten
├─────────────────┤
│ Toolbox         │ ← Funktionsregistrierung und -erkennung
├─────────────────┤
│ Memory Provider │ ← Speicherabstraktionsschicht
├─────────────────┤
│ Vector Search   │ ← Semantische Ähnlichkeit und Abruf
├─────────────────┤
│ MongoDB         │ ← Persistentes Speicher-Backend
└─────────────────┘

Installationsanforderungen

  • Python 3.7+
  • MongoDB Atlas Konto (oder lokales MongoDB mit Vektorsuche)
  • OpenAI API-Schlüssel (für Embeddings und LLM-Funktionen)

Installationsmethode

pip install memorizz

Grundlegendes Anwendungsbeispiel

1. Grundlegende Agenten-Einrichtung

import os
from memorizz.memory_provider.mongodb.provider import MongoDBConfig, MongoDBProvider
from memorizz.memagent import MemAgent
from memorizz.llms.openai import OpenAI

# API-Schlüssel festlegen
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"

# MongoDB-Speicheranbieter konfigurieren
mongodb_config = MongoDBConfig(uri="your-mongodb-atlas-uri")
memory_provider = MongoDBProvider(mongodb_config)

# MemAgent erstellen
agent = MemAgent(
    model=OpenAI(model="gpt-4"),
    instruction="You are a helpful assistant with persistent memory.",
    memory_provider=memory_provider
)

# Konversation starten - der Agent behält die Erinnerung zwischen den Sitzungen
response = agent.run("Hello! My name is John and I'm a software engineer.")
print(response)

# Später in einer anderen Sitzung...
response = agent.run("What did I tell you about myself?")
print(response)  # Der Agent erinnert sich, dass John ein Softwareentwickler ist

2. Verwendung des Rollensystems

from memorizz.persona import Persona

# Rolle des Tech-Experten erstellen
tech_expert = Persona(
    name="TechExpert",
    role="Senior Software Engineer",
    goals="Help developers solve complex technical problems with detailed explanations.",
    background="10+ years experience in Python, AI/ML, and distributed systems."
)

# Rolle auf den Agenten anwenden
agent.set_persona(tech_expert)
agent.save()

# Der Agent wird nun als Tech-Experte antworten
response = agent.run("How should I design a scalable microservices architecture?")

3. Tool-Integration

from memorizz.database.mongodb import MongoDBTools, MongoDBToolsConfig

# Tool-Datenbank konfigurieren
tools_config = MongoDBToolsConfig(
    uri="your-mongodb-atlas-uri",
    database_name="my_tools_db"
)

# Tools mit Dekorator registrieren
with MongoDBTools(tools_config) as tools:
    toolbox = tools.mongodb_toolbox()
    
    @toolbox
    def calculate_compound_interest(principal: float, rate: float, time: int) -> float:
        """Calculate compound interest for financial planning."""
        return principal * (1 + rate) ** time
    
    @toolbox
    def get_weather(city: str) -> str:
        """Get current weather for a city."""
        # Dein Wetter-API-Integrationscode
        return f"Weather in {city}: 72°F, sunny"

# Tools zum Agenten hinzufügen
agent.add_tool(toolbox=tools)

# Der Agent kann diese Tools nun automatisch erkennen und verwenden
response = agent.run("What's the weather in San Francisco and calculate interest on $1000 at 5% for 3 years?")

Speichertypen

MemoRizz unterstützt verschiedene Speicherkategorien zur Organisation von Informationen:

  • Conversation: Chat-Verlauf und Konversationskontext
  • Task: Zielorientierte Informationen und Fortschrittsverfolgung
  • Workflow: Informationen zu mehrstufigen Prozessen
  • General: Faktenwissen und deklarative Informationen
  • Working: Temporärer Arbeitsbereich (LLM-Kontext)

Erweiterte Funktionen

Speichern und Abrufen von Speicherinhalten

# Informationen mit automatischem Embedding speichern
agent.store_memory("I prefer Python for backend development", memory_type="general")

# Später werden semantisch relevante Abfragen diese Informationen abrufen
response = agent.run("What programming languages do I like?")
# Der Agent wird die gespeicherte Präferenz finden und verwenden

Speicherverwaltung mit Metadaten

# Informationen mit Metadaten speichern
agent.store_memory(
    content="Completed project X with React and Node.js",
    memory_type="task",
    metadata={"project": "X", "technologies": ["React", "Node.js"]}
)

# Spezifische Speicherinhalte abrufen
memories = agent.retrieve_memories(
    query="projects with React",
    memory_type="task",
    limit=5
)

Umgebungskonfiguration

# Erforderlich
export OPENAI_API_KEY="your-openai-api-key"
export MONGODB_URI="your-mongodb-atlas-uri"

# Optional
export MONGODB_DB_NAME="memorizz"  # Standard-Datenbankname

Einrichtungsschritte

  1. Erstellen Sie einen MongoDB Atlas Cluster
  2. Aktivieren Sie die Vektorsuche auf dem Cluster
  3. Erstellen Sie eine Datenbank und Sammlungen für Ihren Agenten
  4. Rufen Sie die Verbindungszeichenfolge ab

Häufig gestellte Fragen (FAQ)

  • MongoDB-Verbindung: Stellen Sie sicher, dass Ihre IP in Atlas auf der Whitelist steht
  • Vektorsuche: Überprüfen Sie, ob die Vektorsuche auf dem Cluster aktiviert ist
  • API-Schlüssel: Überprüfen Sie, ob der OpenAI API-Schlüssel gültig ist und Guthaben vorhanden ist

Beispielprojekte

Vollständige funktionierende Beispiele finden Sie im Verzeichnis examples/:

  • Grundlegender Agent: Ein einfacher Konversationsagent mit Speicher
  • Spezialisierter Agent: Ein technischer Experte mit Rollen
  • Tool-Integration: Ein Agent mit benutzerdefinierten Funktionsaufrufen
  • Speicherverwaltung: Erweiterte Speicherung und Abruf von Speicherinhalten

Technischer Lernwert

Diese Bibliothek demonstriert die folgenden Schlüsselkonzepte:

  • KI-Agenten-Architektur: Speicher, Inferenz und Tool-Nutzung
  • Vektordatenbanken: Semantische Suche und Abruf
  • LLM-Integration: Funktionsaufrufe und Kontextverwaltung
  • Software-Design: Klare Abstraktionen und skalierbare Architektur

Star History Chart