Langzeitgedächtnis in Gemini 2.5 Chatbots integrieren
In der heutigen digitalen Welt sind Chatbots zu einem unverzichtbaren Bestandteil vieler Anwendungen geworden. Sie bieten Unterstützung, beantworten Fragen und interagieren mit Nutzern auf eine Weise, die oft menschlich erscheint. Doch die meisten großen Sprachmodelle (LLMs) sind von Natur aus zustandslos, was bedeutet, dass sie keine Erinnerungen an frühere Gespräche haben. Dies kann die Erstellung wirklich persönlicher und hilfreicher KI-Anwendungen erschweren. In diesem Artikel zeigen wir, wie Sie mithilfe der Gemini API und des Open-Source-Tools mem0 Langzeitgedächtnis in Ihre Gemini 2.5 Chatbots integrieren können.
Was ist Langzeitgedächtnis?
Langzeitgedächtnis ermöglicht es Chatbots, Details über die Nutzer aus früheren Gesprächen zu speichern. Dadurch können sie relevantere und persönlichere Antworten geben und vermeiden, dieselben Fragen immer wieder zu stellen. Dies führt zu einer verbesserten Benutzererfahrung und einem stärkeren Engagement.
Wie funktioniert mem0?
Das Tool mem0 wurde entwickelt, um KI-Agenten mit skalierbarem Langzeitgedächtnis auszustatten. Es adressiert die Einschränkungen fester Kontextfenster in LLMs. Der Prozess besteht aus vier Schritten:
- Extraktion relevanter Informationen aus Gesprächen mithilfe eines LLM mit dualem Kontext (eine Zusammenfassung des Gesprächs kombiniert mit aktuellen Nachrichten).
- Verarbeitung des Kontexts durch das LLM zur Extraktion neuer wichtiger Informationen und deren Vergleich mit bestehenden Informationen anhand semantischer Ähnlichkeit.
- Aktualisierung des Gedächtnisses (HINZUFÜGEN, AKTUALISIEREN, LÖSCHEN oder KEINE AKTION) für die Mem0g-Variante (Graph), Extraktion von Entitäten und Beziehungen.
- Verwendung der Vektorsuche, um relevante Erinnerungen für die Generierung von Antworten abzurufen.
Durch die Verwendung von Vektor-Embeddings speichert und ruft mem0 semantische Informationen ab und erhält den nutzerspezifischen Kontext über Sitzungen hinweg.
Einrichtung des Gedächtnisses
Um das Gedächtnis zu erstellen, müssen zwei Hauptkomponenten konfiguriert werden:
- LLM: Dieses Modell ist dafür verantwortlich, das Gespräch zu verarbeiten, den Inhalt zu verstehen und wichtige Informationen zu extrahieren, die als Erinnerungen gespeichert werden.
- Embedding-Modell: Dieses Modell wandelt die extrahierten Text-Erinnerungen in numerische Darstellungen (Vektoren) um, sodass mem0 relevante Erinnerungen effizient suchen und abrufen kann.
In diesem Beispiel verwenden wir die Gemini-Modelle für beide Aufgaben. Wir verwenden gemini-2.5-flash als unser LLM und text-embedding-004 als unser Embedding-Modell.
Speichern von Erinnerungen über den Nutzer
Um den Prozess des Hinzufügens von Erinnerungen zu simulieren und zu vereinfachen, verwenden wir Dummy-Gespräche zwischen mir (Philipp Schmid) und Gemini. Die Gespräche müssen im Nachrichtenformat hinzugefügt werden. Hier ein Beispiel:
conv1 = [
{"role": "user", "content": "Ich plane einen einwöchigen Urlaub Anfang September. Ich möchte irgendwo in Europa hin, wo ich tagsüber ernsthaft Mountainbiken kann und abends eine gute Auswahl an Belletristik und Sachbüchern zum Lesen habe. Empfehlungen für Reiseziele und Buchpaarungen?"},
{"role": "assistant", "content": "Das klingt nach einer fantastischen Woche! Ich empfehle die Österreichischen Alpen, insbesondere die Gegend um Innsbruck. Dort gibt es herausfordernde Radwege und eine atemberaubende Landschaft. Für Ihre Abende könnten folgende Buchpaarungen interessant sein:
* Belletristik: Der Distelfink von Donna Tartt. Ein langes, fesselndes Buch, in das man sich nach einem langen Tag des Radfahrens vertiefen kann.
* Sachbuch: Endurance: Shackleton's Incredible Voyage von Alfred Lansing. Eine packende wahre Geschichte über Überleben und Führung, die Ihren abenteuerlichen Geist ansprechen könnte.\n
Ich kann auch nach lokalen Buchhandlungen in Innsbruck suchen, die eine gute Auswahl an englischen und deutschen Büchern haben, wenn Sie möchten."},
{"role": "user", "content": "Innsbruck ist ein großartiger Vorschlag! Ich habe gehört, die Trails dort sind episch. Ich habe bereits Endurance gelesen, aber Der Distelfink klingt interessant. Können Sie mir ein wenig mehr über die Handlung erzählen, ohne zu viel zu verraten? Gibt es auch gute Sci-Fi- oder techbezogene Sachbücher, die Sie empfehlen würden?"},
{"role": "assistant", "content": "Natürlich. Der Distelfink beginnt mit einem jungen Jungen, der einen Terroranschlag in einem Kunstmuseum überlebt. In der Folge nimmt er ein berühmtes Gemälde mit, und die Geschichte folgt seinem Leben, während er Trauer, Liebe und die Unterwelt navigiert, während er heimlich das Kunstwerk behält. Es ist eine wunderschön geschriebene und komplexe Geschichte.\n
Für eine Sci-Fi-Empfehlung könnte Ihnen Project Hail Mary von Andy Weir gefallen. Es ist eine spannende Geschichte über einen einsamen Astronauten auf einer Mission zur Rettung der Menschheit, voller cleverer Problemlösungen und wissenschaftlicher Details. Was techbezogene Sachbücher angeht, könnte The Age of AI: And Our Human Future von Henry Kissinger, Eric Schmidt und Daniel Huttenlocher für Sie von Interesse sein. Es untersucht die gesellschaftlichen Auswirkungen von KI aus einer politischen und philosophischen Perspektive."}
]
Langzeitgedächtnis-Chatbot mit Gemini 2.5
Durch die Integration von Langzeitgedächtnis in Gemini 2.5 können wir interaktive Chatbots erstellen, die in der Lage sind, Informationen aus früheren Gesprächen zu speichern und abzurufen. Dies ermöglicht eine personalisierte und kontextbewusste Benutzererfahrung. Hier ist ein einfaches Beispiel, wie Sie einen Chatbot mit Gedächtnis erstellen können:
def chat_with_memories(history: list[dict], user_id: str = "default_user") -> str:
# Relevante Erinnerungen abrufen
relevant_memories = memory.search(query=history[-1]["parts"][0]["text"], user_id=user_id, limit=5)
memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories["results"])
# Generiere die Antwort des Assistenten
memory_system_prompt = f"{system_prompt}\nUser Memories:\n{memories_str}"
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=history,
config={"system_instruction": memory_system_prompt}
)
history.append({"role": "model", "parts": [{"text": response.text}]})
# Neue Erinnerungen aus dem Gespräch erstellen
messages = [{"role": "user" if i % 2 == 0 else "assistant", "content": part["parts"][0]["text"]} for i, part in enumerate(history)]
memory.add(messages, user_id=user_id)
return history
Fazit
Die Integration von Langzeitgedächtnis in Gemini 2.5 Chatbots ermöglicht es, die zustandslose Natur von LLMs zu überwinden. Durch das Speichern und Abrufen von Informationen aus früheren Gesprächen können wir KI-Assistenten entwickeln, die persönlicher, kontextbewusster und wirklich hilfreich sind. Dies führt dazu, dass sie Benutzerpräferenzen erinnern, auf früheren Interaktionen aufbauen und eine reichhaltigere und natürlichere Konversationserfahrung bieten.
Quellenliste:
- Quelle: Integrating Long-Term Memory with Gemini 2.5
- mem0: Open-Source Tool for Long-Term Memory
- Google GenAI Python SDK
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!