Erinnerungen abrufen

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 in us-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:

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.