Auf dieser Seite wird beschrieben, wie Sie generierte und hochgeladene Erinnerungen aus der Memory Bank abrufen. Den gesamten Workflow zum Konfigurieren, Generieren und Verwenden von Memory Bank finden Sie in der Kurzanleitung zur REST API.
Sie haben folgende Möglichkeiten, generierte Erinnerungen abzurufen:
Get memory (Erinnerung abrufen): Ruft den vollständigen Inhalt einer einzelnen Erinnerung ab.
Erinnerungen auflisten: Erinnerungen auflisten
Erinnerungen abrufen: Erinnerungen mithilfe des bereichsbasierten Abrufs von Erinnerungen abrufen. Erinnerungen über die Ähnlichkeitssuche oder alle Erinnerungen im Umfang abrufen.
Umgebung einrichten
Bevor Sie beginnen können, müssen Sie Ihre Umgebung und Ihre Agent Engine-Instanz einrichten. In diesem Abschnitt wird davon ausgegangen, dass Sie eine Python-Entwicklungsumgebung eingerichtet haben oder eine Laufzeit mit einer Python-Entwicklungsumgebung (z. B. Colab) verwenden.
Bibliotheken importieren
Installieren Sie das Vertex AI SDK:
pip install google-cloud-aiplatform>=1.100.0
Vertex AI SDK-Client einrichten
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
Ersetzen Sie Folgendes:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Ihre Region. Für die Memory Bank von Vertex AI Agent Engine wird nur
us-central1
unterstützt.
Agent Engine-Instanz konfigurieren
Wenn Sie Erinnerungen aus Memory Bank abrufen möchten, benötigen Sie zuerst eine Instanz einer Agent Engine. Sie können entweder eine neue Instanz erstellen oder eine vorhandene Instanz abrufen. Neue Agent Engine-Instanzen sind leer, sofern Sie nicht zuerst Erinnerungen erstellen oder generieren.
Erstellen
agent_engine = client.agent_engines.create()
Vorhandene verwenden
agent_engine = client.agent_engines.get(name="AGENT_ENGINE_NAME")
Ersetzen Sie Folgendes:
- AGENT_ENGINE_NAME: Der Name der Agent Engine. Er sollte das Format
projects/.../locations/.../reasoningEngines/...
haben. Sie können Agent Engine-Instanzen nur inus-central1
für Vertex AI Agent Engine Memory Bank verwenden.
Gemerkte Informationen abrufen
Mit GetMemories
können Sie den vollständigen Inhalt einer einzelnen Erinnerung abrufen:
memory = client.agent_engines.get_memory(name="MEMORY_NAME")
Ersetzen Sie Folgendes:
- MEMORY_NAME: Ein vollständig qualifizierter Name des Speichers im Format „projects/.../locations/.../reasoningEngines/.../memories...“.
Erinnerungen auflisten
Mit ListMemories
können Sie alle Erinnerungen in Ihrem Erinnerungsspeicher abrufen.
pager = client.agent_engines.list_memories(name=agent_engine.api_resource.name)
for page in pager:
print(page)
Erinnerungen mithilfe des bereichsbasierten Abrufs abrufen
Mit RetrieveMemories
können Sie Erinnerungen für einen bestimmten Bereich abrufen. Es werden nur Erinnerungen zurückgegeben, die genau denselben Umfang (unabhängig von der Reihenfolge) wie die Abrufanfrage haben. So können Sie beispielsweise mit {"user_id": "123"}
alle Erinnerungen abrufen, die auf einen bestimmten Nutzer beschränkt sind. Wenn keine Erinnerungen zurückgegeben werden, sind für den angegebenen Bereich keine Erinnerungen im Memory Bank vorhanden.
Der Umfang einer Erinnerung wird beim Generieren oder Erstellen der Erinnerung definiert und kann nicht mehr geändert werden.
Mit RetrieveMemories
können Sie die folgenden Vorgänge für einen bestimmten Bereich ausführen:
Erinnerungen über die Ähnlichkeitssuche abrufen
Wenn Sie viele Erinnerungen für einen bestimmten Bereich haben, können Sie die Ähnlichkeitssuche verwenden, um nur die ähnlichsten Erinnerungen abzurufen. Dazu müssen Sie Parameter für die Ähnlichkeitssuche angeben. Memory Bank berücksichtigt bei der Ähnlichkeitssuche nur Erinnerungen, die genau denselben Umfang wie die Anfrage haben. Bei der Ähnlichkeitssuche werden die Einbettungsvektoren zwischen den Fakten der Erinnerungen und der Suchanfrage verglichen.
Die zurückgegebenen Erinnerungen werden von der ähnlichsten (kürzester euklidischer Abstand) zur am wenigsten ähnlichen (größter euklidischer Abstand) sortiert:
results = client.agent_engines.retrieve_memories(
name=agent_engine.api_resource.name,
scope=SCOPE,
similarity_search_params={
"search_query": "QUERY",
# Optional. Defaults to 3.
"top_k": 3
}
)
# RetrieveMemories returns a pager. You can use `list` to retrieve all memories.
list(results)
"""
Returns:
[
RetrieveMemoriesResponseRetrievedMemory(
memory=Memory(
name="projects/.../locations/.../reasoningEngines/.../memories/...",
...
fact="This is a fact."
},
distance=0.5
),
RetrieveMemoriesResponseRetrievedMemory(
memory=Memory(
name="projects/.../locations/.../reasoningEngines/.../memories/...",
...
fact="This is another fact."
},
distance=0.7
),
]
"""
Ersetzen Sie Folgendes:
QUERY: Die Abfrage, für die die Ähnlichkeitssuche durchgeführt werden soll. Sie können beispielsweise den letzten Nutzerbeitrag der Unterhaltung als Anfrage verwenden.
SCOPE: Ein Dictionary, das den Umfang der Ähnlichkeitssuche darstellt. Beispiel:
{"user_id": "123"}
. Es werden nur Erinnerungen mit demselben Umfang wie die Anfrage berücksichtigt.
Alle gemerkten Informationen abrufen
Wenn keine Parameter für die Ähnlichkeitssuche angegeben werden, gibt RetrieveMemories
alle Erinnerungen mit dem angegebenen Bereich zurück, unabhängig von ihrer Ähnlichkeit mit der aktuellen Unterhaltung.
results = client.agent_engines.retrieve_memories(
name=agent_engine.api_resource.name,
scope=SCOPE
)
# RetrieveMemories returns a pager. You can use `list` to retrieve all pages' memories.
list(results)
"""
Returns:
[
RetrieveMemoriesResponseRetrievedMemory(
memory=Memory(
name="projects/.../locations/.../reasoningEngines/.../memories/...",
...
fact="This is a fact."
}
),
RetrieveMemoriesResponseRetrievedMemory(
memory=Memory(
name="projects/.../locations/.../reasoningEngines/.../memories/...",
...
fact="This is another fact."
}
),
]
"""
Ersetzen Sie Folgendes:
- SCOPE: Ein Dictionary, das den Bereich für den Abruf darstellt. Beispiel:
{"user_id": "123"}
. Es werden nur Erinnerungen mit demselben Umfang wie die Anfrage zurückgegeben.