So implementieren Sie längeres ChatGPT-Gedächtnis mit diesen Tools
Updated on
Im Bereich der künstlichen Intelligenz ist die Fähigkeit, sich an vergangene Interaktionen zu erinnern und daraus zu lernen, ein Game Changer. Dies gilt insbesondere für KI-Chatbots wie ChatGPT, bei denen das Gedächtnis eine entscheidende Rolle für die Qualität der Interaktionen spielt. Die Einführung von langfristigem Gedächtnis in ChatGPTs Framework hat nicht nur seine Gesprächsfähigkeiten erweitert, sondern auch die Art und Weise verändert, wie es mit Benutzern interagiert. Diese neue Funktion, oft als "ChatGPT-Gedächtnis" bezeichnet, eröffnet eine Vielzahl von Möglichkeiten und ermöglicht es der KI, persönlichere, kontextbewusste und bedeutsamere Antworten zu geben.
ChatGPT-Gedächtnis ist ein Beweis für die Kombination fortschrittlicher Sprachmodelle mit innovativen Memory-Management-Techniken. Es geht darum, die bereits beeindruckenden Fähigkeiten von ChatGPT aufzugreifen und sie weiter auszubauen. Durch die Nutzung des langfristigen Gedächtnisses kann ChatGPT nun Details aus vergangenen Gesprächen behalten, sich an Benutzerpräferenzen anpassen und nicht nur relevante, sondern auch kontextuell genaue Antworten geben. Dieser Durchbruch hat erhebliche Auswirkungen auf die Zukunft von KI-Chatbots und legt den Grundstein für intelligentere, ansprechendere und menschenähnlichere Interaktionen.
Ohne weitere Umschweife wollen wir uns mit der Frage beschäftigen, was ChatGPT-Gedächtnis eigentlich ist:
Was ist ChatGPT-Gedächtnis und warum brauchen Sie es?
Die Kontextlänge oder die Menge an Informationen aus einer vorherigen Unterhaltung, die ein Sprachmodell verwenden kann, um zu verstehen und zu antworten, ist ein entscheidender Aspekt bei der Erstellung leistungsstarker LLM-basierter Anwendungen. Es ist ähnlich wie die Anzahl der Bücher, die ein Berater gelesen hat und auf die er zurückgreifen kann, um praktische Ratschläge anzubieten. Selbst wenn die Bibliothek umfangreich ist, ist sie nicht unendlich.
Die Optimierung der Verwendung der verfügbaren Kontextlänge des Modells ist entscheidend, insbesondere in Hinblick auf Faktoren wie Kosten, Latenz und Modellzuverlässigkeit, die durch die Menge des an ein LLM-API wie OpenAI gesendeten und empfangenen Textes beeinflusst werden.
Kontextlänge, externes Gedächtnis: Wie können sie ChatGPT unterstützen?
Um die Beschränkungen der Kontextlänge in KI-Modellen wie ChatGPT und GPT-4 zu umgehen, kann eine externe Speicherquelle an das Modell angehängt werden. Dadurch wird die effektive Kontextlänge des Modells erheblich erhöht, was für fortgeschrittene Anwendungen, die auf transformerbasierten LLM-Modellen basieren, ein entscheidender Faktor ist.
Das ChatGPT-Memory-Projekt (opens in a new tab) bietet ein ausgezeichnetes Beispiel für diesen Ansatz. Es verwendet Redis' Vektordatenbank, um eine intelligente Speicherverwaltungsmethode zu erstellen, die es ChatGPT ermöglicht, historische Benutzerinteraktionen pro Sitzung zu zwischenspeichern und basierend auf dem aktuellen Kontext einen adaptiven Prompt zu erstellen.
Mit der Einführung von GPT-4 erhöhte sich die Kontextlänge von ChatGPT von 4.096 Tokens auf 32.768 Tokens. Die Kosten für die Verwendung von OpenAI's APIs für ChatGPT oder GPT-4 werden aufgrund der Anzahl der Tokens berechnet, die in den Unterhaltungen verwendet werden. Daher besteht ein Trade-off zwischen der Verwendung von mehr Tokens zur Verarbeitung längerer Dokumente und der Verwendung von relativ kleineren Prompts zur Minimierung der Kosten.
Allerdings erfordern wirklich leistungsstarke Anwendungen eine große Menge an Kontextlänge. Hier kommen die folgenden Lösungen ins Spiel:
Erstellen Sie Gedächtnis für ChatGPT mit MemoryGPT
MemoryGPT, ein Projekt mit dem Ziel, ein ChatGPT mit langfristigem Gedächtnis zu erstellen, zielt darauf ab, sich an das zu erinnern, was Sie sagen, und Ihre Unterhaltung entsprechend zu personalisieren. Dieser Ansatz ist anpassungsfähiger als das aktuelle Standardverhalten, da er nur die vorherigen k Nachrichten abruft, die für die aktuelle Nachricht relevant sind, und nicht mehr auf die Tokenlänge kommt. MemoryGPT bietet adaptives Gedächtnis, das die Tokenlimit-Einschränkungen herkömmlicher Puffergedächtnistypen überwindet.
Implementierung von ChatGPT-Gedächtnis mit Redis und MemoryGPT
Das ChatGPT-Memory-Projekt (opens in a new tab) auf GitHub bietet eine detaillierte Anleitung zur Implementierung von langfristigem Gedächtnis für ChatGPT mit Redis. Hier ist eine vereinfachte Version der Schritte:
-
Richten Sie Ihre Umgebung ein: Sie benötigen Ihren OpenAI API-Schlüssel und müssen eine Redis-Datenbank einrichten. Sie können eine kostenlose Redis-Datenbank hier (opens in a new tab) erstellen.
-
Installieren Sie die Abhängigkeiten: Das Projekt verwendet den Poesie-Paketmanager. Sie können die erforderlichen Abhängigkeiten mit
poetry install
installieren. -
Starten Sie den FastAPI-Webserver: Sie können den Webserver mit
poetry run uvicorn rest_api:app --host 0.0.0.0 --port 8000
starten. -
Starten Sie die Benutzeroberfläche: Sie können die Benutzeroberfläche mit
poetry run streamlit run ui.py
starten. -
Verwenden Sie es mit dem Terminal: Die Bibliothek ist modular aufgebaut, und Sie können jeden einzelnen Bestandteil separat verwenden. Eine detaillierte Anleitung zur Verwendung jedes Bestandteils finden Sie in der README (opens in a new tab) des Projekts.
Hier ist eine vereinfachte Version des Codes, den Sie verwenden werden, um den Chatbot einzurichten:
# Importieren Sie die erforderlichen Module
from chatgpt_memory.environment import OPENAI_API_KEY, REDIS_HOST, REDIS_PASSWORD, REDIS_PORT
Durch RedisDataStoreConfig importieren Sie RedisDataStoreConfig. Durch RedisDataStore importieren Sie RedisDataStore. Durch ChatGPTClient importieren Sie ChatGPTClient. Durch ChatGPTConfig importieren Sie ChatGPTConfig. Durch MemoryManager importieren Sie MemoryManager.
Instanziieren Sie ein Objekt der Klasse EmbeddingConfig mit dem OpenAI-API-Schlüssel
embedding_config = EmbeddingConfig(api_key=OPENAI_API_KEY)
Instanziieren Sie ein Objekt der Klasse EmbeddingClient mit dem Objekt embedding_config
embed_client = EmbeddingClient(config=embedding_config)
Instanziieren Sie ein Objekt der Klasse RedisDataStoreConfig mit den Verbindungsdaten zu Redis
redis_datastore_config = RedisDataStoreConfig( host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, )
Instanziieren Sie ein Objekt der Klasse RedisDataStore mit dem Objekt redis_datastore_config
redis_datastore = RedisDataStore(config=redis_datastore_config)
Instanziieren Sie ein Objekt der Klasse MemoryManager mit dem Objekt redis_datastore und dem Objekt embed_client
memory_manager = MemoryManager(datastore=redis_datastore, embed_client=embed_client, topk=1)
Instanziieren Sie ein Objekt der Klasse ChatGPTConfig mit dem OpenAI-API-Schlüssel und verbose auf True gesetzt
chat_gpt_config = ChatGPTConfig(api_key=OPENAI_API_KEY, verbose=True)
Instanziieren Sie ein Objekt der Klasse ChatGPTClient mit dem Objekt chat_gpt_config und dem Objekt memory_manager
chat_gpt_client = ChatGPTClient( config=chat_gpt_config, memory_manager=memory_manager )
Initialisieren Sie die Variable conversation_id mit None
conversation_id = None
Starten Sie die Schleife des Chatbots
while True:
Fordern Sie den Benutzer zur Eingabe auf
user_message = input("\n Bitte geben Sie Ihre Nachricht ein: ")
Verwenden Sie das Objekt ChatGPTClient, um eine Antwort zu generieren
response = chat_gpt_client.converse(message=user_message, conversation_id=conversation_id)
Aktualisieren Sie die Variable conversation_id mit der conversation_id aus der Antwort
conversation_id = response.conversation_id
Geben Sie die vom Chatbot generierte Antwort aus
print(response.chat_gpt_answer)
Dieser Code ermöglicht es Ihnen, mit dem KI-Assistenten zu sprechen und sein Gedächtnis mit Hilfe einer externen Redis-Datenbank zu erweitern.
## MemoryGPT im Einsatz
[MemoryGPT](https://memorygpt.io/) ist eine praktische Anwendung des Langzeitgedächtniskonzepts in ChatGPT. Es ist darauf ausgelegt, Details aus früheren Gesprächen abzurufen und sein Verhalten an Ihre Vorlieben anzupassen. MemoryGPT ist besonders nützlich für Coach-Agenten, als Begleiter für Ratschläge und Unterstützung, zur Steigerung der Produktivität und für neugierige Menschen, die gerne mit neuester Technologie experimentieren und sie an ihre Grenzen bringen möchten.
## FAQ
### Wie verbessert das Langzeitgedächtnis die Fähigkeiten von ChatGPT?
Durch das Langzeitgedächtnis kann ChatGPT den Kontext früherer Gespräche behalten und somit personalisierte und relevante Antworten liefern. Es überwindet die Begrenzungen der Kontextlänge in KI-Modellen und macht Gespräche interessanter und sinnvoller.
### Was ist die Rolle von Redis bei der Implementierung des Langzeitgedächtnisses für ChatGPT?
Redis wird als Vektordatenbank verwendet, um die historischen Benutzerinteraktionen pro Sitzung zu speichern. Es bietet eine intelligente Methode zur Speicherverwaltung, die es ChatGPT ermöglicht, diese Interaktionen zu zwischenspeichern und anhand des aktuellen Kontexts adaptive Aufforderungen zu erstellen.
### Wie hilft die Vektorisierung des Gesprächsverlaufs dabei, ChatGPT den Kontext zu liefern?
Die Vektorisierung des Gesprächsverlaufs wandelt die Textdaten in ein Format um, das das KI-Modell verstehen kann. Diese Vektoren repräsentieren die semantische Bedeutung des Gesprächsverlaufs und können verwendet werden, um dem Modell relevante Kontextinformationen zu liefern und seine Fähigkeit zur Generierung passender Antworten zu verbessern.
import JSONldScript from '../../../components/jsonld-script';
<JSONldScript
faq={{
data: [
{
question: 'Wie verbessert das Langzeitgedächtnis die Fähigkeiten von ChatGPT?',
answer: 'Durch das Langzeitgedächtnis kann ChatGPT den Kontext früherer Gespräche behalten und somit personalisierte und relevante Antworten liefern. Es überwindet die Begrenzungen der Kontextlänge in KI-Modellen und macht Gespräche interessanter und sinnvoller.'
},
{
question: 'Was ist die Rolle von Redis bei der Implementierung des Langzeitgedächtnisses für ChatGPT?',
answer: 'Redis wird als Vektordatenbank verwendet, um die historischen Benutzerinteraktionen pro Sitzung zu speichern. Es bietet eine intelligente Methode zur Speicherverwaltung, die es ChatGPT ermöglicht, diese Interaktionen zu zwischenspeichern und anhand des aktuellen Kontexts adaptive Aufforderungen zu erstellen.'
},
{
question: 'Wie hilft die Vektorisierung des Gesprächsverlaufs dabei, ChatGPT den Kontext zu liefern?',
answer: 'Die Vektorisierung des Gesprächsverlaufs wandelt die Textdaten in ein Format um, das das KI-Modell verstehen kann. Diese Vektoren repräsentieren die semantische Bedeutung des Gesprächsverlaufs und können verwendet werden, um dem Modell relevante Kontextinformationen zu liefern und seine Fähigkeit zur Generierung passender Antworten zu verbessern.'
}
]
}}
/>